μΆμ²
ChatGPT
μλ°μμ μμ νμ (primitive types)κ³Ό Wrapper ν΄λμ€λ μλ‘ λ€λ₯Έ λ κ°μ§ νμ μμ€ν μ μ 곡νλ€. μμ νμ κ³Ό Wrapper ν΄λμ€λ μλ‘ λ³΄μμ μ΄λ©°, Wrapper ν΄λμ€κ° μ‘΄μ¬νλ μ΄μ μ κ·Έ νμμ±μ λν΄ μ΄ν΄νλ κ²μ΄ μ€μνλ€.
1. μμ νμ (Primitive Types)
μλ°μμ μμ νμ μ κΈ°λ³Έμ μΈ λ°μ΄ν° νμ μΌλ‘, λ€μκ³Ό κ°μ 8κ°μ§κ° μλ€:
- byte
- short
- int
- long
- float
- double
- char
- boolean
μ΄λ€μ λ©λͺ¨λ¦¬μ μ±λ₯μ μ΅μ ννκΈ° μν΄ μ€κ³λ κΈ°λ³Έ λ°μ΄ν° νμ μ΄λ€. μμ νμ μ κ°λ§ μ μ₯νλ©°, κ°μ²΄μ λ©μλλ μμ±μ κ°μ§ μ μλ€.
μμνμ μ μ‘΄μ¬ μ΄μ / μ₯μ
1. μ±λ₯κ³Ό λ©λͺ¨λ¦¬ ν¨μ¨μ±
- λ©λͺ¨λ¦¬ μ¬μ©λ: μμ νμ μ μ§μ μ μΈ κ° μ μ₯ λ°©μμΌλ‘ λ©λͺ¨λ¦¬λ₯Ό μ κ² μ¬μ©νλ€. μλ₯Ό λ€μ΄, int νμ μ 4λ°μ΄νΈλ§ μ¬μ©νμ¬ μ μλ₯Ό μ μ₯ν©λλ€. λ°λ©΄, Wrapper ν΄λμ€ (Integer)λ κ°μ²΄μ΄λ―λ‘, κ°μ²΄ ν€λμ λ©νλ°μ΄ν°λ₯Ό ν¬ν¨νμ¬ λ λ§μ λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§νλ€.
- μ±λ₯: μμ νμ μ μ°μ°μ μ§μ μ μΌλ‘ CPU λͺ λ Ήμ΄λ‘ μνλκΈ° λλ¬Έμ λΉ λ₯΄λ€. λ°λ©΄, Wrapper ν΄λμ€λ κ°μ²΄λ₯Ό μμ±νκ³ λ©μλλ₯Ό νΈμΆνλ λ± μΆκ°μ μΈ μ€λ²ν€λκ° λ°μνλ―λ‘ μ°μ° μλκ° λ릴 μ μλ€.
2. κ°λ¨ν λ°μ΄ν° μ²λ¦¬
- λ¨μμ±: μμ νμ μ λ°μ΄ν° μ²λ¦¬ μ λ¨μμ±μ μ 곡νλ€. λ¨μν μ°μ°μ΄λ λΉκ΅ μμ μ μνν λ κ°μ²΄ μμ±κ³Ό κ°μ 볡μ‘ν κ³Όμ μ νΌν μ μλ€.
3. λ°μ΄ν° ꡬ쑰μ μκ³ λ¦¬μ¦
- κ³ μ μ°μ°: νΉμ λ°μ΄ν° ꡬ쑰λ μκ³ λ¦¬μ¦μμλ μ°μ° μλκ° μ€μν κ²½μ°κ° μλ€. μμ νμ μ μ΄λ¬ν μν©μμ μ΅μ νλ μ±λ₯μ μ 곡νλ€. μλ₯Ό λ€μ΄, λ°°μ΄μ κ²½μ° μμ νμ λ°°μ΄ (int[], char[] λ±)μ κ°μ²΄ λ°°μ΄ (Integer[], Character[])λ³΄λ€ λ©λͺ¨λ¦¬ μ¬μ©λκ³Ό μ±λ₯ μΈ‘λ©΄μμ ν¨μ¨μ μ΄λ€.
2. Wrapper ν΄λμ€ (Wrapper Classes)
Wrapper ν΄λμ€λ μμ νμ μ κ°μ²΄λ‘ λν(wrapping)νλ ν΄λμ€μ΄λ€. μλ°μμ μ 곡νλ Wrapper ν΄λμ€λ λ€μκ³Ό κ°λ€:
- Byte (for byte)
- Short (for short)
- Integer (for int)
- Long (for long)
- Float (for float)
- Double (for double)
- Character (for char)
- Boolean (for boolean)
Wrapper ν΄λμ€λ μμ νμ μ κ°μ κ°μ²΄λ‘ λ³ννμ¬ λ€μν κΈ°λ₯μ μ 곡νλ€.
Wrapper ν΄λμ μ‘΄μ¬ μ΄μ / μ₯μ
1. κ°μ²΄μ κ΄λ ¨λ κΈ°λ₯ μ 곡
Wrapper ν΄λμ€λ μμ νμ κ°μ κ°μ²΄λ‘ λ³νν μ μκ² ν΄μ£Όλ©°, μ΄λ₯Ό ν΅ν΄ λ€μκ³Ό κ°μ κΈ°λ₯μ μ 곡νλ€:
- λ©μλ νΈμΆ: κ°μ²΄λ‘μ λ©μλλ₯Ό νΈμΆν μ μλ€. μλ₯Ό λ€μ΄, Integer ν΄λμ€μ parseInt() λ©μλλ₯Ό μ¬μ©ν μ μλ€.
- κΈ°λ³Έ λ°μ΄ν° νμ μ λν μΆκ° κΈ°λ₯: μ«μλ₯Ό λ¬Έμμ΄λ‘ λ³ννκ±°λ, νΉμ μ«μμ λ²μλ λΉνΈλ₯Ό κ²μ¬νλ κΈ°λ₯ λ±μ μ 곡νλ€.
2. 컬λ μ νλ μμν¬μμ νΈνμ±
μλ° μ»¬λ μ νλ μμν¬λ κ°μ²΄λ§μ μ μ₯ν μ μκΈ° λλ¬Έμ, μμ νμ μ μ¬μ©ν μ μλ€. λ°λΌμ, ArrayList<Integer>μ κ°μ 컬λ μ μ μμ νμ μ μ μ₯νλ €λ©΄ ν΄λΉ νμ μ Wrapper ν΄λμ€λ₯Ό μ¬μ©ν΄μΌ νλ€.
3. μλ λ°μ±(Autoboxing)κ³Ό μλ μΈλ°μ±(Unboxing)
μλ° 5λΆν° λμ λ μλ λ°μ±κ³Ό μλ μΈλ°μ± κΈ°λ₯μ μμ νμ κ³Ό Wrapper ν΄λμ€ κ°μ λ³νμ μλμΌλ‘ μνν΄μ€λ€:
- μλ λ°μ±: μμ νμ μ μλμΌλ‘ ν΄λΉ Wrapper ν΄λμ€λ‘ λ³ννλ€.
- μλ μΈλ°μ±: Wrapper ν΄λμ€λ₯Ό μμ νμ μΌλ‘ μλ λ³νλ€.
μ
Integer intObject = 10; // μλ λ°μ±
int intValue = intObject; // μλ μΈλ°μ±
3.4. λΆλ³μ± (Immutability)
Wrapper ν΄λμ€λ λΆλ³ κ°μ²΄(immutable objects)λ‘ μ€κ³λμ΄ μλ€. μ¦, νλ² μμ±λ Wrapper κ°μ²΄μ κ°μ λ³κ²½λ μ μλ€. μ΄λ λ°μ΄ν°μ 무결μ±μ μ μ§νκ³ , λ©ν°μ€λ λ© νκ²½μμμ μμ μ±μ 보μ₯νλ λ° λμμ μ€λ€.
3.5. κΈ°ν μ νΈλ¦¬ν° λ©μλ
Wrapper ν΄λμ€λ μ μ©ν μ νΈλ¦¬ν° λ©μλλ₯Ό μ 곡νλ€.
- Integer.parseInt(String s): λ¬Έμμ΄μ μ μλ‘ λ³ννλ€.
- Double.toString(double d): double κ°μ λ¬Έμμ΄λ‘ λ³ννλ€.
- Character.isDigit(char ch): λ¬Έμκ° μ«μμΈμ§ κ²μ¬νλ€.
ChatGPTμ μΆμ²
μ κ° μ 곡ν μλ°μ μμ νμ κ³Ό Wrapper ν΄λμ€μ λν μ€λͺ μ μλ° νλ‘κ·Έλλ°μ λν κΈ°λ³Έμ μΈ μ§μκ³Ό μλ° κ³΅μ λ¬Έμ, κ΅μ‘ μλ£λ₯Ό λ°νμΌλ‘ μμ±λμμ΅λλ€. λ€μμ κ΄λ ¨λ μλ£μ μ°Έκ³ ν μ μλ μΆμ²μ λλ€:
- μλ° κ³΅μ λ¬Έμ
- Java Language Specification (JLS): μλ° μΈμ΄ μ¬μμμ μμ νμ κ³Ό Wrapper ν΄λμ€μ μ μμ λμμ λν΄ λ€λ£¨κ³ μμ΅λλ€.
- Java Language Specification (JLS)
- μλ° κ³΅μ νν 리μΌ
- Oracle Java Tutorials: μλ°μ κΈ°λ³Έ λ°μ΄ν° νμ κ³Ό Wrapper ν΄λμ€μ λν μ€λͺ μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
- Oracle Java Tutorials - Autoboxing and Unboxing
- μ±
- "Effective Java" by Joshua Bloch: μλ°μ μμ νμ , Wrapper ν΄λμ€, λ° κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ κ°λ μ μ€λͺ ν©λλ€. μλ° νλ‘κ·Έλλ°μ λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£¨κ³ μμ΅λλ€.
- "Java: The Complete Reference" by Herbert Schildt: μλ°μ κΈ°λ³ΈλΆν° κ³ κΈ κ°λ κΉμ§ νλκ² λ€λ£¨λ©°, μμ νμ κ³Ό Wrapper ν΄λμ€μ μ©λμ μ°¨μ΄λ₯Ό μ€λͺ ν©λλ€.
- μ¨λΌμΈ μλ£
- Baeldung: μλ° νλ‘κ·Έλλ° κ΄λ ¨ λ€μν νν 리μΌκ³Ό κ°μ΄λλ₯Ό μ 곡νλ©°, μμ νμ κ³Ό Wrapper ν΄λμ€μ κ΄ν λ΄μ©μ λ€λ£Ήλλ€.
- Baeldung - Java Primitive Types vs Wrapper Classes
- μλ° API λ¬Έμ
- Java SE API Documentation: java.lang ν¨ν€μ§μ μλ Wrapper ν΄λμ€μ λν μμΈν μ€λͺ μ μ 곡ν©λλ€.
- Java SE API Documentation - Wrapper Classes
μ΄ μλ£λ€μ μλ°μ μμ νμ κ³Ό Wrapper ν΄λμ€μ κ°λ , κΈ°λ₯, κ·Έλ¦¬κ³ μ¬μ© μ¬λ‘μ λν μ λ’°ν μ μλ μ 보λ₯Ό μ 곡ν©λλ€.
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] "λ³μμ λ©μλλ₯Ό μΊ‘μ²νλ€" μλ―Έ (0) | 2024.08.19 |
---|---|
[μ©μ΄][Java] ν΄λ‘μ (Closure) (0) | 2024.08.19 |
[Java][JVM] κ°λΉμ§ 컬λ μ Garbage Collection (0) | 2024.08.19 |
[JVM][GC] λ©λͺ¨λ¦¬ λ¨νΈν (0) | 2024.08.19 |
[Java] μ΄λ Έν μ΄μ (0) | 2024.08.19 |