Java Development Kit : 자바 개발 키트
Java Runtime Environment : 자바 실행 환경
Object Oriented Programming : 객체 지향 프로그래밍
데이터를 객체로 취급하여 프로그램하여 반영한 것이며, 순차적으로 프로그램이 동작하는게 아닌 객체와 객체의 상호작용을 통해 프로그램이 동작하는 것을 말한다.
메모리를 자동으로 관리한다.
객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거한다
멀티 스레드를 쉽게 구현할 수 있다.
동적 로딩(Dynamic Loading)을 지원한다.
애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적로딩해서 객체를 생성한다.
자바가상머신(JVM)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. (운영체제에 독립적)
객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어이다.
확장자가 .java인 파일(소스 파일)을 작성
이 소스 파일을 컴파일러로 (javac.exe)로 컴파일
.class인 바이트 코드 파일 생성
바이트 코드 파일은 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석 후 해당 운영 체제에 맞게 기계어로 번역
https://docs.oracle.com/javase/8/docs/api/index.html
소스 코드 내에서 직접 입력된 값
int a = 10; // 10이 리터럴
소수점 이 없는 정수 리터럴 : 10진수
0으로 시작되는 리터럴 : 8진수
0x 또는 0X로 시작하고 A~F(a~f)로 구성된 리터럴은 16진수
char 는 음수 불가(문자열로는 가능)
E(e) 가 있는 리터럴 : 10진수 지수와 가수로 간주
5E7 → 5 x 10의 7승
0.12E-5 → 0.12 x 10의 -5승
float : 4byte
double : 8byte
자바는 실수 리터럴의 기본 타입을 double로 간주
float 타입에 실수 리터럴을 그냥 저장할 수 없다. 반드시 뒤에 ‘f’나 ‘F’를 붙여야한다.
‘ 로 감싼 문자가 아니라 직접 유니코드 정수값을 저장 가능 → 10진수 또는 16진수 사용
// A를 10진수와 16진수로한 표기 예시
char c = 65;
char c = '\u0041'; // 유니코드라는 의미로 '\u + 16진수값'
// char 변수에 저장된 유니코드를 알고 싶다면 char 타입 변수를 int 타입 변수에 저장
char c = 'A';
int uniCode = c; // 65
long 타입의 변수를 초기화할 때에는 정수값 뒤에 소문자 ‘l’이나 대문자 ‘L’을 붙일 수 있다.
String은 기본 타입인 아닌 클래스 타입
문자열을 String 변수에 대입하면 문자열이 변수에 직접 저장되는 것이 아니라 String 객체가 생성되고, String 변수는 String 객체의 번지를 참조한다.
자바를 처음 배울 때 공부했던 내용이라 현재 코딩 테스트나 프로젝트를 공부하면서 자연스럽게 잊고 있었던 부분들이 있었다. 다시 학습하는 과정에서 "아, 맞다" 하고 떠오르는 순간들이 있어 재미있었다. 면접을 대비해서 자바의 기본 개념들을 더 확실히 다져야겠다는 생각이 든다.