Write Once, Run Anywhere
운영체제에 독립적
JRE가 설치된 환경에서 실행 가능
JRE(Java Runtime Environment): 자바 가상머신 + 표준 클래스 라이브러리
- 자바 프로그램을 실행
- 자바 언어를 변환한 바이트코드를 운영체제에 맞는 기계어로 변환
컴파일(Compiler): 프로그래밍 언어를 기계어로 변환하는 과정
java
→ bytecode
→ 운영체제에 맞는 기계어
JRE + 개발에 필요한 도구
OracleJDK
: 오라클에서 관리하는 버전
OpenJDK
: 오픈소스
객체를 찍어내는 틀
클래스를 활용하면 동일한 구조의 객체 생성이 용이
메서드
: 클래스 내부에 정의된 함수
main()
: 자바 프로그램의 진입점(Entry point)으로 가장 먼저 실행
static
: 클래스에 속한 것을 지정하는 키워드 (객체가 아닌 클래스를 위한 것)
void
: 데이터를 반환(return)하지 않는 경우 사용 (리턴할 경우엔 타입 명시)
- 접근 권한 정의 키워드
public
,protected
,default
,private
로 총 4가지 권한이 있음
public
: 모든 접근 허용
protected
: 같은 패키지 내 객체, 상속 관계 객체 접근 허용
default
: 같은 패키지 내 객체 접근 허용
private
: 같은 클래스 내 객체 접근 허용
데이터 타입에 따라 메모리 공간 확보
기본타입과 참조타입이 있음
기본 타입(primitive type): 데이터의 실제 값
참조 타입(reference type): 데이터가 저장된 주솟값, 기본형을 제외한 나머지가 이에 해당
byte, short(2byte), int(4byte), long(8byte) 4개의 타입
float(4byte), double(8byte)
타입에 따라 f
또는 d
를 붙인다.
double형은 디폴드 값이기 때문에 d
생략 가능
boolean(1byte)
char(2byte)
하나의 문자 저장 (그 이상의 문자를 저장하기 위해서는 문자열 사용)
변수에 대입 시 문자에 해당하는 유니코드(정수) 값이 저장
오버플로우: 자료형의 범위 이상의 값을 표현한 경우
언더플로우: 자료형의 범위 이하의 값을 표현한 경우
String 클래스를 문자열 타입으로 사용함
char의 배열
참조형
선언 (선언 방식에 따라 비교 연산자 사용 결과가 달라질 수 있음)
// 1
String 변수;
변수 = "문자열";
// 2
String 변수 = "문자열";
// 3
String 변수 = new String("문자열");
charAt()
: 해당 문자열의 특정 인덱스에 해당하는 인덱스 반환String str = new String("Hello");
System.out.println(str.charAt(0)); // 'H' 출력
compareTo()
compareToIgnoreCase()
사용)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 반환
문자열을 지정한 구분자로 문자열을 분리해주는 클래스
java.util.StringTokenizer
를 import 해서 사용할 수 있음
자주 사용되는 메서드
int countTokens()
: 남아있는 token 개수 반환
boolean hasMoreElements()
, boolean hasMoreTokens()
: 현재 위치 이후 문자열에서 하나 이상의 토큰을 사용할 수 있는 경우 True 반환
Object nextElement()
, String nextToken()
: 다음 토큰 반환 (nextElement는 Object, nextToken은 String 반환)