Skip to content

Commit 5439e06

Browse files
committed
docs(java): 래퍼, Class 클래스 초안
1 parent b4f59b5 commit 5439e06

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

  • content/posts/java-mid1-wrapper-class-class
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: '래퍼(Wrapper), Class 클래스'
3+
date: '2026-03-18T08:15:58+09:00'
4+
categories: ["Java"]
5+
tags: ["java.lang", "Wrapper", "Class", "System", "Math", "Random"]
6+
draft: true
7+
---
8+
9+
## Wrapper 클래스
10+
11+
### 기본형의 한계
12+
13+
- 언어에 지원을 받는데 한계가 있음(메서드, 컬렉션 프레임워크, 제네릭 등을 사용하지 못함)
14+
- `null`을 표현할 수 없음
15+
16+
### 래퍼 클래스 사용
17+
18+
- 래퍼 클래스는 기본형을 객체로 감싼 형태로 편리한 기능을 지원한다.
19+
- 래퍼 클래스는 불변이고 `equals`로 비교해야 한다.
20+
- 박싱(Boxing)은 기본형을 래퍼 클래스로 변경하는 작업이다. 반대로 래퍼 클래스를 기본형으로 변경하는 작업은 언박싱(Unboxing)이다.
21+
- 박싱은 `클래스.valueOf()` 형식을 사용한다.
22+
- 주요 메서드와 성능
23+
24+
### 오토 박싱(Autoboxing)
25+
26+
- 기본형을 참조형으로 박싱할 때는 `valueOf()` 메서드를 사용한다. 반대로 언박싱은 `기본형타입Value()` 메서드를 사용한다.
27+
- 박싱과 언박싱은 자주 사용하는 작업이다. Java는 Java 1.5부터 오토 박싱(Auto-boxing), 오토 언박싱(Auto-Unboxing)을 지원한다.
28+
- 오토 박싱과 오토 언박싱은 컴파일 단계에 코드가 자동으로 추가된다. 덕분에 기본형과 래퍼형 변환이 간편하다.
29+
30+
### 주요 메서드와 성능
31+
32+
- `valueOf()`: 래퍼 타입으로 변환한다. 숫자, 문자열 모두 지원한다.
33+
- `parseInt()`: 문자열을 기본형으로 변환한다.
34+
- `compateTo()`: 인수로 넘어온 값을비교한다. 크면 `1`, 같으면 `0`, 작으면 `-1`을 반환한다.
35+
- `Integer.sum()`, `Integer.min()`, `Integer.max()`: `static` 메서드, 덧셈, 최소값, 최대값 연산을 수행한다.
36+
37+
> [!NOTE] parseXXX() vs. valueOf()
38+
>
39+
> - 래퍼타입을 반환할 때는 `valueOf()`를 사용하고 기본형을 반환할 때는 `parseXXX()`를 사용한다.
40+
41+
## Class 클래스
42+
43+
- 클래스의 정보(메타 데이터)를 다루는 클래스
44+
- 실행중인 클래스의 속성과 메서드 정보를 조회하고 조작할 때 사용한다.
45+
- 타입 정보 얻기
46+
- 리플렉션
47+
- 동적 로딩과 생성
48+
- 애노테이션 처리
49+
50+
## System 클래스
51+
52+
## Math, Random 클래스
53+
54+
## 질문
55+
56+
### 래퍼 클래스는 왜 `equals`로 비교해야 할까?
57+
58+
- 래퍼 클래스는 객체다. `==`를 사용하면 참조값을 비교한다. 실제 내부의 값을 비교하기 위해서는 `equals`를 사용해야 한다.
59+
60+
## 마치며

0 commit comments

Comments
 (0)