Code States | Java 기초 (1)

yeonk·2022년 5월 11일
1
post-thumbnail

1. JAVA


Write Once, Run Anywhere

  • 운영체제에 독립적

    • JRE가 설치된 환경에서 실행 가능

    • JRE(Java Runtime Environment): 자바 가상머신 + 표준 클래스 라이브러리

  • 객체 지향 언어(Object Oriented Programming, OOP)
  • 함수형 프로그래밍
  • 자동 메모리 관리 (Garbage Collection)






JVM(Java Virtual Machine)

  • 자바 프로그램을 실행
  • 자바 언어를 변환한 바이트코드를 운영체제에 맞는 기계어로 변환
  • 컴파일(Compiler): 프로그래밍 언어를 기계어로 변환하는 과정

  • javabytecode운영체제에 맞는 기계어






JDK(Java Development Kit)

JRE + 개발에 필요한 도구

  • OracleJDK: 오라클에서 관리하는 버전

  • OpenJDK: 오픈소스






클래스(Class)

객체를 찍어내는 틀
클래스를 활용하면 동일한 구조의 객체 생성이 용이

  • 메서드: 클래스 내부에 정의된 함수

  • main(): 자바 프로그램의 진입점(Entry point)으로 가장 먼저 실행

  • static: 클래스에 속한 것을 지정하는 키워드 (객체가 아닌 클래스를 위한 것)

  • void: 데이터를 반환(return)하지 않는 경우 사용 (리턴할 경우엔 타입 명시)






접근 제어자(Access Modifier)

  • 접근 권한 정의 키워드
  • public, protected, default, private로 총 4가지 권한이 있음
  • public: 모든 접근 허용

  • protected: 같은 패키지 내 객체, 상속 관계 객체 접근 허용

  • default: 같은 패키지 내 객체 접근 허용

  • private: 같은 클래스 내 객체 접근 허용






2. 타입(Type)


데이터 타입에 따라 메모리 공간 확보
기본타입참조타입이 있음

  • 기본 타입(primitive type): 데이터의 실제 값

    • 정수 타입: byte, short, int, long
    • 실수 타입: float, double
    • 문자 타입: char
    • 논리 타입: Boolean
  • 참조 타입(reference type): 데이터가 저장된 주솟값, 기본형을 제외한 나머지가 이에 해당






정수 타입

byte, short(2byte), int(4byte), long(8byte) 4개의 타입

  • long 타입 변수에 값 할당 시 L을 붙여줌 (컴파일러가 인지하게 하기 위함)






실수 타입

float(4byte), double(8byte)

  • 타입에 따라 f 또는 d 를 붙인다.

  • double형은 디폴드 값이기 때문에 d 생략 가능






논리 타입

boolean(1byte)

  • 참, 거짓을 표현할 때 사용






문자 타입

char(2byte)

  • 하나의 문자 저장 (그 이상의 문자를 저장하기 위해서는 문자열 사용)

  • 변수에 대입 시 문자에 해당하는 유니코드(정수) 값이 저장






오버플로우와 언더플로우

  • 오버플로우: 자료형의 범위 이상의 값을 표현한 경우

  • 언더플로우: 자료형의 범위 이하의 값을 표현한 경우






3. 문자열(String)


String 클래스를 문자열 타입으로 사용함
char의 배열

  • 참조형

  • 선언 (선언 방식에 따라 비교 연산자 사용 결과가 달라질 수 있음)

// 1
String 변수;
변수 = "문자열";

// 2
String 변수 = "문자열"; 

// 3
String 변수 = new String("문자열");






String 메서드

  • charAt(): 해당 문자열의 특정 인덱스에 해당하는 인덱스 반환
String str = new String("Hello");

System.out.println(str.charAt(0)); // 'H' 출력



  • compareTo()
    • 해당 문자열을 인수로 전달된 문자열과 사전 순으로 비교
    • 대소문자 구분 O (구분이 필요 없을 땐 compareToIgnoreCase() 사용)
    • 인수로 전달된 문자열 보다 작으면 음수, 크면 양수, 같으면 0반환
String str = new String("abcd");
System.out.println(str.compareTo("bc"));



  • concat(): 해당 문자열과 인수로 전달된 문자열을 추가한 새로운 문자열 반환
String str = new String("java");
System.out.println(str.concat("짱"));



  • indexOf(): 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 인덱스 반환 (없으면 -1 반환)
String str = new String("Hello");
System.out.println(str.indexOf('H'));



  • trim(): 해당 문자열의 양쪽 끝 공백 문자 제거
String str = new String("Hello       ");
System.out.println(str.trim());



  • toLowerCase(): 해당 문자열을 모두 소문자 변환
  • toUpperCase(): 해당 문자열을 모두 대문자 변환
String str = new String("HelLo");
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());



  • int lastIndexOf(int ch): 해당 문자열에서 특정 문자가 마지막으로 등장하는 인덱스 반환

  • split(String regex): 해당 문자열을 정규 표현식에 따라 나눠서 반환

  • substring(int beginIndex): 해당 문자열의 전달된 인덱스부터 끝까지를 새로운 문자열로 반환

  • length(): 해당 문자열의 길이 반환

  • isEmpty(): 문자열의 길이가 0이면 true 반환






StringTokenizer

문자열을 지정한 구분자로 문자열을 분리해주는 클래스

  • java.util.StringTokenizer 를 import 해서 사용할 수 있음

  • 자주 사용되는 메서드

    • int countTokens(): 남아있는 token 개수 반환

    • boolean hasMoreElements(), boolean hasMoreTokens(): 현재 위치 이후 문자열에서 하나 이상의 토큰을 사용할 수 있는 경우 True 반환

    • Object nextElement(), String nextToken(): 다음 토큰 반환 (nextElement는 Object, nextToken은 String 반환)






참고 자료


Class StringBuffer

0개의 댓글