1년 가까이 개발자를 하겠다고 열심히 Java부터 Springboot, DB, 인프라, 모니터링 등등 여러가지 툴과 소프트웨어들의 사용법을 배웠다. 하지만 이러한 프로그램들을 계속 수박 겉 핥기 식으로 배우니 뭔가 머리에 남는게 없는 것 같다. 그래서 다시 처음부터 잊기 쉬운 내용이나 잘 모르는 내용들을 회고하며 다시 자바부터 공부해보려고 한다.

우선 뭐... 표지는 이렇게 생겼고 객체지향에 중점을 둔 언어이다.
JVM이라는 게 있어 운영체제마다 다르게 만들 필요 없이 똑같이 실행된다.(OS에 따른 귀찮음이 사라진다.)
GC(가비지 컬렉션)이 있어서 메모리 관리도 비교적 편하다.
이걸 알려면 자바의 동작 구조를 알아야 한다.
개발자가 자바 소스코드를 작성한다.
자바 컴파일러(javac)가 자바 소스파일을 컴파일한다. 이게 끝나면 자바 바이트 코드(. class)가 나온다
!!자바 바이트 코드란?: JVM만이 읽을 수 있는 코드

자바에서는 모든 메서드 인자는 값으로 전달(call by value)
void modify(StringBuilder sb) {
sb.append(" world"); // 가능
sb = new StringBuilder(); // 이건 호출자에게 반영 안 됨
}
byte a = 1, b = 2;
byte c = a + b; // 오류 → int로 바뀌므로 형 변환 필요
int million = 1_000_000;
System.out.println('\uAC00'); // 가
if (1) {} // ❌ 컴파일 에러
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 2) break outer;
}
}