JAVA · 기초 문법
기본 타입 & 래퍼 클래스 & 오토박싱
Java의 원시 타입(primitive)과 래퍼 클래스(Wrapper)의 차이, 오토박싱/언박싱의 원리.
기초 문법입문primitivewrapperautoboxingIntegerequals
핵심 설명
Java의 원시 타입(primitive)과 래퍼 클래스(Wrapper)의 차이, 오토박싱/언박싱의 원리.
Java code
public class Types {
public static void main(String[] args) {
// 원시 타입 (primitive)
int i = 42;
long l = 100_000_000L;
double d = 3.141592653589793;
float f = 3.14f;
boolean b = true;
char c = 'A';
byte bt = 127;
short s = 32767;
// 래퍼 클래스 (Wrapper)
Integer boxed = 100; // 오토박싱
int unboxed = boxed; // 언박싱
// Integer 캐시: -128~127은 같은 객체
Integer a = 127;
Integer b2 = 127;
System.out.println(a == b2); // true (캐시)
Integer c2 = 128;
Integer d2 = 128;
System.out.println(c2 == d2); // false! (새 객체)
System.out.println(c2.equals(d2)); // true (값 비교)
// 유용한 래퍼 메서드
System.out.println(Integer.MAX_VALUE); // 2147483647
System.out.println(Integer.toBinaryString(42)); // 101010
System.out.println(Integer.parseInt("FF", 16)); // 255
System.out.println(Double.isNaN(0.0 / 0.0)); // true
// 타입 캐스팅
double pi = 3.99;
int truncated = (int) pi; // 3 (소수점 버림)
long bigNum = 1_000_000_000L;
int overflow = (int) bigNum; // 오버플로우 주의!
}
}학습 팁
Integer == Integer는 -128~127 범위에서만 true를 반환합니다 (캐시). 래퍼 클래스 비교는 항상 .equals()를 사용하세요.
주의할 점
반복문 안에서 오토박싱을 남용하면 성능 저하가 심각합니다. Long sum = 0L; for(...) sum += i;는 매 반복마다 Long 객체를 생성합니다.
자주 묻는 질문
기본 타입 & 래퍼 클래스 & 오토박싱란 무엇인가요?
Java의 원시 타입(primitive)과 래퍼 클래스(Wrapper)의 차이, 오토박싱/언박싱의 원리.
기본 타입 & 래퍼 클래스 & 오토박싱 학습 시 주의할 점은 무엇인가요?
반복문 안에서 오토박싱을 남용하면 성능 저하가 심각합니다. Long sum = 0L; for(...) sum += i; 는 매 반복마다 Long 객체를 생성합니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.