Java는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체지향 프로그래밍(Object Oriented Programming, OOP) 언어다.
: 특정 CPU나 OS에 따라 다르게 작동하는 언어들과 달리 JRE(Java Runtime Environment: JVM(자바 가상머신) + 표준 클래스 라이브러리)가 존재하는 모든 환경에서 실행이 가능하다.
: 모든 기능을 객체로 만들어 사용하는 언어로 유지보수가 쉽고, 확장성이 높다.
: 람다식과 스트림으로 인해 컬렉션의 요소를 필터링, 매핑, 집계 처리하기 쉽고, 코드가 간결해진다.
: 메모리 생성과 소멸을 직접하지 않아도 가비지 컬렉터를 통해 사용하지 않는 메모리를 수거가능하다.
: JVM은 자바 프로그램을 실행시키는 도구로, 소스 코드인 .java파일을 javac 컴파일러가 바이트코드인 .class파일로 변환시키면 JVM이 바이트코드를 운영체제에 맞는 기계어로 변환시키는 역할을 한다. (자바가 운영체제에 독립적인 이유)
: JVM + 표준 클래스 라이브러리 (Runtime, 자바 프로그램 실행을 위해)
: JRE + 개발에 필요한 도구 (Development, 자바 프로그램 개발을 위해)
: 값이 변할 수 있는 데이터를 임시로 저장하기 위해서 값을 저장할 수 있는 메모리 공간를 확보하고, 식별 가능한 이름을 붙인 것
: 변하지 않는 값의 데이터를 임시로 저장하기 위해서 값을 저장할 수 있는 메모리 공간를 확보하고, 식별 가능한 이름을 붙인 것
: 변수가 저장될 때 값이 차지하는 메모리 공간의 크기와, 값의 저장 방식을 결정한다.
: 문자 그대로의 값 그 자체
타입 | 메모리 공간 | 리터럴 표현 범위 |
---|---|---|
byte | 1byte | -128 ~ 127 |
short | 2byte | -32768 ~ 32767 |
int | 4byte | -2,147,483,648 ~ 2,147,483,647 |
long | 8byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
: 컴퓨터는 실수를 부동소수점 방식으로 저장하기 때문에 오차를 갖는다.
타입 | 메모리 공간 | 정밀도 |
---|---|---|
float | 4byte | 7자리 |
double | 8byte | 15자리 |
: 참(true) 또는 거짓(false)을 저장할 수 있는 데이터 타입
타입 | 메모리 공간 |
---|---|
boolean | 1byte |
: 오직 하나의 문자 리터럴을 저장할 수 있는 데이터 타입
타입 | 메모리 공간 |
---|---|
char | 2byte |
: 논리 타입 boolean을 제외한 7개 기본 타입은 서로 변환이 가능하다.
: "" 큰따옴표로 감싸진 문자열
메서드 | 설명 |
---|---|
charAt() | ()내의 인덱스에 해당하는 문자를 반환 |
compareTo() | 해당 문자열과 ()내의 문자열을 대소문자 구분해 비교(같으면 0, 해당 문자열이 작으면 음수, 크면 양수 반환) |
compareToIgnoreCase() | compareTo()와 같지만 대소문자 구분하지 않음 |
concat() | 해당 문자열에 ()내 문자열을 붙여 반환 |
indexOf() | 해당 문자열에서 ()내 문자에 해당하는 첫 인덱스를 반환 |
trim() | 해당 문자열의 맨 앞, 뒤의 공백 제거 |
toLowerCase(), toUpperCase() | 해당 문자열 전체를 소문자, 대문자로 변경 |
: 문자열을 구분자로 쪼개주는 클래스(토큰: 쪼개진 문자열), import java.util.StringTokenizer로 사용
메서드 | 설명 |
---|---|
countTokens() | 남아있는 토큰의 개수 반환 |
hasMoreElements(), hasMoreTokens() | 현재 위치 뒷 문자열에서 하나 이상 토큰을 사용할 수 있는 경우 true, 아니면 false 반환 |
nextElement(), nextToken() | 다음 토큰 반환(nextElement()는 Object 반환, nextToken()은 String 반환) |
: 여러 문자열을 더할 때 새로운 인스턴스들을 생성하지 않도록 하는 클래스
메서드 | 설명 |
---|---|
append() | 해당 문자열에 ()내 문자열을 연결 |
toString() | 문자열로 반환 |
: 독립적인 버퍼 공간을 사용해 문자열의 값을 변경하거나 추가 가능한 클래스
메서드 | 설명 |
---|---|
append() | 해당 문자열에 ()내 문자열을 연결(concat()보다 빠름) |
capacity() | 현재 버퍼 크기 반환 |
delete(시작 인덱스, 끝 인덱스), deleteCharAt() | 문자열 특정 부분 삭제 |
insert(인덱스, 문자열) | 해당 문자열의 지정 인덱스 위치에 문자열 추가 |