μλ°μ λ³μμ λ°μ΄ν° νμ μ primitive typeκ³Ό reference typeμΌλ‘ λλλλ°,
primitive type(μμ νμ )κ³Ό reference type(μ°Έμ‘° νμ )μ λν΄ μμ보μ.
μμ νμ (primitive type)
primitive type(μμ νμ μ) μΈμ΄μμ μ¬μ μ μ λμ΄ μλ λ°μ΄ν° νμ μΌλ‘,
μ½κ² λ§ν΄, μ μ, μ€μ, λ¬Έμ, λ Όλ¦¬ 리ν°λ΄λ±μ μ€μ λ°μ΄ν° κ°μ μ μ₯νλ νμ μ΄λ€.
μ°Έμ‘° νμ (reference type)
reference type(μ°Έμ‘° νμ )μ κ°μ²΄(Object)μ λ²μ§λ₯Ό μ°Έμ‘°(μ£Όμλ₯Ό μ μ₯!!)νλ νμ μΌλ‘ λ©λͺ¨λ¦¬ λ²μ§ κ°μ ν΅ν΄ κ°μ²΄λ₯Ό μ°Έμ‘°νλ νμ μ΄λ€. (call by reference)
μμ νμ μ μ μΈν νμ λ€(λ¬Έμμ΄, λ°°μ΄, μ΄κ±°, ν΄λμ€, μΈν°νμ΄μ€)μ λ§νλ€.
Javaμμ μ€μ κ°μ²΄λ ν μμμ μ μ₯λλ©° μ°Έμ‘° νμ λ³μλ μ€ν μμμ μ€μ κ°μ²΄λ€μ μ£Όμλ₯Ό μ μ₯νμ¬, κ°μ²΄λ₯Ό μ¬μ©ν λ λ§λ€ μ°Έμ‘° λ³μμ μ μ₯λ κ°μ²΄μ μ£Όμλ₯Ό λΆλ¬μ μ¬μ©νλ λ°©μμ΄λ€.
- μ μ λ©λͺ¨λ¦¬ μ€ν(Stack) μμ
μ€ν μμμλ κΈ°λ³Ένμ λ³μκ° ν λΉλκ³ λ³μμ μ€μ κ°λ€μ΄ μ μ₯λλ€.
μ°Έμ‘° νμ μ λ³μλ€μ μ΄ μ€ν μμμμ ν μμμ μμ±λ κ°μ²΄λ€μ μ£Όμ κ°μ μ μ₯νκ³ μλλ€.
κ°μ²΄ μμ λ©μλμ μμ μ΄ μ’ λ£λλ©΄ ν λΉλμλ λ©λͺ¨λ¦¬ 곡κ°μ λ°νλμ΄ λΉμμ§λ€.
- λμ λ©λͺ¨λ¦¬ ν(Heap) μμ
ν μμμλ κ°μ²΄μ λ°°μ΄μ΄ μμ±λλ€.
κ·Έλ¦¬κ³ μ°Έμ‘°νμ (λ°°μ΄, ν΄λμ€, μΈν°νμ΄μ€ λ±)λ€μ΄ μ΄ κ°μ²΄λ€μ μ£Όμλ₯Ό μ€ν μμμ μ μ₯νλ€.
κΈ°λ³Ένμ λ³μλ€κ³Όλ λ€λ₯΄κ² ν¬κΈ°κ° μ ν΄μ Έ μμ§ μλ€.
νλ‘κ·Έλ¨ μ€νμ λ©λͺ¨λ¦¬μ λμ μΌλ‘ ν λΉλλ€.
μ°Έμ‘°νλ λ³μκ° μμΌλ©΄ μλ°μ κ°λΉμ§ 컬λ ν°κ° μ κ±°νλ€.
κ°λΉμ§ 컬λ ν°(Garbage collector) : λ©λͺ¨λ¦¬μ ν μμμ ν λΉλ λ μ΄μ μ¬μ©λμ§ μλ κ°μ²΄λ₯Ό μ κ±° νλ μν
μ΄λ κ² κ°μ²΄λ₯Ό μ κ±°νλ©° λ©λͺ¨λ¦¬κ° κ΄λ¦¬λλ€.
Boxing, Unboxing
Boxing(λ°μ±)μ μμ νμ μ μ°Έμ‘° νμ μΌλ‘ λ³ν μν€λ κ²μ λ§νκ³ , Unboxing(μΈλ°μ±)μ μ°Έμ‘° νμ μ μμ νμ μΌλ‘ λ³ν μν€λ κ²μ λ§νλ€.
μμ νμ κ³Ό μ°Έμ‘° νμ μ°¨μ΄
κΈ°λ₯μ μΌλ‘ μμ νμ κ³Ό μ°Έμ‘° νμ μ ν¬κ² 2κ°μ§ μ°¨μ΄κ° μλ€.
1. Null ν¬ν¨ κ°λ₯ μ¬λΆ
μμνμ μ nullμ λ΄μ μ μμ§λ§, μ°Έμ‘° νμ μ κ°λ₯νλ€.
// λΆκ°λ₯
int i = null;
// κ°λ₯
Integer integer = null;
2. μ λλ¦ νμ μμ μ¬μ© κ°λ₯ μ¬λΆ
μμνμ μ μ λλ¦ νμ μμ μ¬μ©ν μ μμ§λ§, μ°Έμ‘° νμ μ κ°λ₯νλ€.
// λΆκ°λ₯
List<i> list;
// κ°λ₯
List<Integer> list;
μμ νμ μ μ₯μ
μμ νμ μ μ±λ₯ μμ μ΄μ μ΄ μλ€.
1. μ κ·Όμλ
μμνμ μ 'μ€ν' λ©λͺ¨λ¦¬μ κ°μ΄ μ‘΄μ¬νλ€.
λ°λ©΄μ μ°Έμ‘°νμ μ νλμ μΈμ€ν΄μ€μ΄κΈ° λλ¬Έμ 'μ€ν' λ©λͺ¨λ¦¬μλ μ°Έμ‘°κ°λ§ μκ³ , μ€μ κ°μ ν λ©λͺ¨λ¦¬μ μ‘΄μ¬νλ€.
κ·Έλ¦¬κ³ κ°μ νμλ‘ ν λλ§λ€ μΈλ°μ± κ³Όμ μ κ±°μ³μΌ νλ μμνμ
κ³Ό λΉκ΅ν΄μ μ κ·Ό μλκ° λλ €μ§κ² λλ€.
μμΈμ μΌλ‘ μμ² ν° μ«μλ₯Ό 볡μ¬ν΄μΌ νλ€λ©΄, μ°Έμ‘°κ°λ§ λκΈΈ μ μλ μ°Έμ‘°νμ
μ΄ μ’μ μ λ μλ€.
2. λ©λͺ¨λ¦¬ μ
μμνμ μ΄ μ¬μ©νλ λ©λͺ¨λ¦¬μ°Έμ‘°νμ μ΄ μ¬μ©νλ λ©λͺ¨λ¦¬
boolean - 1bit | Boolean – 128 bits |
byte - 8bits | Byte - 128bits |
short, cagr - 16bits | Short, Charater - 128bits |
int, float - 32bits | Integer, Float - 128bits |
long, double - 64bits | Long, Double - 196bits |
μμ νμ λ³΄λ€ μ°Έμ‘° νμ μ΄ μ¬μ©νλ λ©λͺ¨λ¦¬μμ΄ μλμ μΌλ‘ λλ€.
λ°λΌμ λ©λͺ¨λ¦¬ μ¬μ©μ μΌλ‘λ μμ νμ μ΄ μ°Έμ‘° νμ λ³΄λ€ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ€.
μ°Έκ³ μ¬μ΄νΈ
μμνμ , μ°Έμ‘°νμ (Primitive Type, Reference Type)
'Algorithm > Data Structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ£κ΅¬μ‘°] μ°μ μμ ν remove, poll λ©μλμ λν΄ (0) | 2022.12.16 |
---|---|
[Java] int ν(Primitive type)λ°°μ΄μ Listλ‘ + λ΄λ¦Όμ°¨μ( Stream μ¬μ©) (0) | 2022.11.22 |
[Python] ν μλ£κ΅¬μ‘° / νν(heapq) (0) | 2022.09.19 |
Python Deque(Double-Ended Queue) + Stack, Queue κ°λ¨κ°λ (0) | 2021.12.23 |
Arrays.sort ( μ¬μ μμλλ‘ μ λ ¬ν΄μ£Όλ λ©μλ) (0) | 2021.10.25 |