Java 기초부터 마스터까지 — 1화
JVM, 클래스, 컬렉션으로 시작하는 Java
본 블로그 작성 글들은, 강의를 목표로 하고 제작되었습니다. 또한 작성된 글의 정보도 틀렸을 수 있으니, 주의해주세요.
Java는 JVM 위에서 실행되는 정적 타입 프로그래밍 언어다. 운영체제마다 JVM이 구현되어 있어서 같은 바이트코드를 여러 환경에서 실행할 수 있다.
소스 코드는 바이트코드가 된다
Java 소스 파일은 컴파일을 거쳐 .class 바이트코드가 된다. JVM은 이 바이트코드를 읽고 현재 환경에서 실행한다.
Main.java
↓ javac
Main.class
↓ JVM
프로그램 실행
클래스에서 프로그램을 시작한다
public class Main {
public static void main(String[] args) {
Player player = new Player("Rose");
player.takeDamage(25);
System.out.println(player.getHealth());
}
}
class Player {
private final String name;
private int health = 100;
Player(String name) {
this.name = name;
}
void takeDamage(int amount) {
health = Math.max(0, health - amount);
}
int getHealth() {
return health;
}
}
private 필드는 클래스 내부에서만 직접 접근할 수 있다. 생성자는 객체가 만들어질 때 필요한 초기값을 받고, 메서드는 객체의 동작을 표현한다.
컬렉션에는 타입을 지정한다
List<String> items = new ArrayList<>();
items.add("Potion");
items.add("Key");
for (String item : items) {
System.out.println(item);
}
제네릭의 String은 리스트에 저장할 값의 타입을 뜻한다. 컴파일러가 잘못된 타입의 값이 들어가는 것을 미리 확인할 수 있다.
Java 객체의 메모리는 Garbage Collector가 정리한다. 하지만 데이터베이스 연결이나 파일처럼 닫아야 하는 자원은 try-with-resources로 수명을 관리한다.
Java를 시작할 때는 JVM의 모든 내부 구조보다 클래스, 메서드, 예외, 컬렉션을 이용해 작은 프로그램 하나를 완성하는 것이 먼저다. 그 뒤 Gradle이나 Maven으로 프로젝트와 외부 라이브러리를 관리하면 된다.