Java 핵심 개념¶
Java 입문자를 위한 타입·제어 흐름·객체 모델 개요입니다. 언어 규칙은 Java Language Specification을 기준으로 하며 객체 배치와 실제 메모리 크기는 JVM 구현·버전·옵션에 따라 달라집니다. 예제는 JDK 17 이상에서 각 public 클래스를 같은 이름의 별도 파일로 컴파일한다고 가정합니다.
목차¶
객체지향 프로그래밍¶
Java는 객체지향 기능을 제공합니다. 다음 네 항목은 교육용 분류이며 Java 명세가 규정한 유일한 원칙 목록은 아닙니다.
- 캡슐화 (Encapsulation): 데이터와 메소드를 하나의 단위로 묶음
- 상속 (Inheritance): 기존 클래스를 확장하여 새 클래스 생성
- 다형성 (Polymorphism): 하나의 인터페이스로 다양한 구현
- 추상화 (Abstraction): 복잡한 시스템을 단순화
자료형과 변수¶
기본 자료형 (Primitive Types)¶
| 타입 | 크기 | 범위 |
|---|---|---|
byte |
1 byte | -128 ~ 127 |
short |
2 bytes | -32,768 ~ 32,767 |
int |
4 bytes | -2³¹ ~ 2³¹-1 |
long |
8 bytes | -2⁶³ ~ 2⁶³-1 |
float |
4 bytes | 부동소수점 |
double |
8 bytes | 부동소수점 |
char |
16-bit 값 | UTF-16 코드 단위. 보조 문자는 두 char 사용 |
boolean |
언어 차원의 저장 크기 미규정 | true/false |
참조 자료형 (Reference Types)¶
- String: 문자열
- Array: 배열
- Class: 사용자 정의 클래스
- Interface: 인터페이스
클래스와 객체¶
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
상속과 다형성¶
public class Animal {
public void speak() {
System.out.println("동물이 소리를 냅니다.");
}
}
public class Dog extends Animal {
@Override
public void speak() {
System.out.println("멍멍!");
}
}
public class Cat extends Animal {
@Override
public void speak() {
System.out.println("야옹!");
}
}
학습 완료 증거¶
java -version과 javac -version을 기록하고 각 예제를 파일별로 컴파일해 예상 출력을 확인합니다. 객체 크기나 성능은 JOL, JFR 또는 재현 가능한 벤치마크로 대상 JVM에서 별도 측정합니다.