Amenable 2023. 3. 21. 21:35

1. λ³€μˆ˜ πŸƒβ€β™‚οΈ

  μžλ°”μ—μ„œ μžλ£Œν˜•μ€ 크게 'κΈ°λ³Έν˜•'κ³Ό 'μ°Έμ‘°ν˜•' 두 κ°€μ§€λ‘œ λ‚˜λˆŒ 수 μžˆλ‹€. κΈ°λ³Έν˜• λ³€μˆ˜λŠ” μ‹€μ œ κ°’(data)을 μ €μž₯ν•˜κ³ , μ°Έμ‘°ν˜• λ³€μˆ˜λŠ” μ–΄λ–€ 값이 μ €μž₯λ˜μ–΄ μžˆλŠ” μ£Όμ†Œ(memory address)λ₯Ό κ°’μœΌλ‘œ κ°–λŠ”λ‹€. κΈ°λ³Έν˜•μ—λŠ” 8κ°€μ§€μ˜ νƒ€μž…이 μžˆκ³ , 8개의 κΈ°λ³Έν˜•을 μ œμ™Έν•œ λ‚˜λ¨Έμ§€λŠ” λͺ¨λ‘ μ°Έμ‘°ν˜•이닀.

 

2. κΈ°λ³Έν˜• πŸŒοΈβ€β™‚οΈ

1. ꡬ뢄

  κΈ°λ³Έν˜•μ€ ν¬κ²Œ 'λ…Όλ¦¬ν˜•, λ¬Έμžν˜•, μ •μˆ˜ν˜•, μ‹€μˆ˜ν˜•'으둜 κ΅¬λΆ„ν•œλ‹€.

λ…Όλ¦¬ν˜• boolean
λ¬Έμžν˜• char
μ •μˆ˜ν˜• byte short int long
μ‹€μˆ˜ν˜• float double

2. 크기

  κΈ°λ³Έν˜•μ˜ ν¬κΈ°λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

  1 byte 2 byte 4 byte 8 byte
λ…Όλ¦¬ν˜• boolean      
λ¬Έμžν˜•   char    
μ •μˆ˜ν˜• byte short int long
μ‹€μˆ˜ν˜•     float double

3. κΈ°λ³Έ μžλ£Œν˜•

  4개의 μ •μˆ˜ν˜•(byte, short, int, long)μ€‘μ—μ„œ intν˜•μ΄ κΈ°λ³Έ μžλ£Œν˜•(default data type)이며, μ‹€μˆ˜ν˜•(float, double)μ€‘μ—μ„œλŠ” double이 κΈ°λ³Έ μžλ£Œν˜•μ΄λ‹€.

 

3. μƒμˆ˜μ™€ λ¦¬ν„°λŸ΄ πŸ€Ύβ€β™‚οΈ

  μƒμˆ˜(Constant)λŠ” λ³€μˆ˜μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ κ°’을 μ €μž₯ν•  μˆ˜ μžˆλŠ” κ³΅κ°„μ΄μ§€λ§Œ, λ³€μˆ˜μ™€ λ‹¬λ¦¬ ν•œλ²ˆ κ°’을 μ €μž₯ν•˜λ©΄ λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•  μˆ˜ μ—†λ‹€. μžλ°”μ—μ„œ μƒμˆ˜λŠ” final을 μ΄μš©ν•΄μ„œ μ„ μ–Έν•œλ‹€.

final int WIDTH = 20;
final int MAX_VALUE = 100;

  λ¦¬ν„°λŸ΄(Literal)μ΄λž€ κ·Έ μžμ²΄λ‘œ κ°’을 μ˜λ―Έν•˜λŠ” κ²ƒμ΄λ‹€. μ•„λž˜ μ˜ˆμ‹œλ₯Ό ν†΅ν•΄ λ³€μˆ˜, μƒμˆ˜, λ¦¬ν„°λŸ΄μ„ μ΄ν•΄ν•˜λ„둝 ν•˜μž.

 

4. μ„ μ–Έ μœ„μΉ˜μ— λ”°λ₯Έ λ³€μˆ˜μ˜ μ’…λ₯˜ πŸš΅β€β™€οΈ

  λ³€μˆ˜λŠ” 'ν΄λž˜μŠ€λ³€μˆ˜, μΈμŠ€ν„΄μŠ€λ³€μˆ˜, μ§€μ—­λ³€μˆ˜'κ°€ μžˆλ‹€. (λ©€λ²„λ³€μˆ˜ - λ©”μ„œλ“œ λ°–μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜)

  • μ§€μ—­λ³€μˆ˜ - λ©€λ²„λ³€μˆ˜λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ λ³€μˆ˜
  • ν΄λž˜μŠ€λ³€μˆ˜ - λ©€λ²„λ³€μˆ˜ μ€‘ static이 λΆ™μ€ λ³€μˆ˜
  • μΈμŠ€ν„΄μŠ€λ³€μˆ˜ - λ©€λ²„λ³€μˆ˜ μ€‘ static이 λΆ™μ§€ μ•Šμ€ λ³€μˆ˜
class Variables {
	int iv; // μΈμŠ€ν„΄μŠ€λ³€μˆ˜
	static int cv; // ν΄λž˜μŠ€λ³€μˆ˜
	
	void method() {
		int lv = 0; // μ§€μ—­λ³€μˆ˜
	}
}

  μ•„λž˜μ˜ κ·Έλ¦Όκ³Ό ν‘œλ₯Ό 톡해 λ³€μˆ˜μ˜ μ„ μ–Έμœ„μΉ˜, 생성 μ‹œκΈ°, μ†Œλ©Έ μ‹œκΈ°λ„ ν™•μΈν•˜λ„λ‘ ν•˜μž.

λ³€μˆ˜μ˜ μ’…λ₯˜ μ„ μ–Έμœ„μΉ˜ μƒμ„±μ‹œκΈ° μ†Œλ©Έμ‹œκΈ°
ν΄λž˜μŠ€λ³€μˆ˜
(class variable)
클래슀 μ˜μ—­ ν΄λž˜μŠ€κ°€ λ©”λͺ¨λ¦¬μ— μ˜¬λΌκ°ˆ λ•Œ ν”„λ‘œκ·Έλž¨ μ’…λ£Œ μ‹œ
μΈμŠ€ν„΄μŠ€λ³€μˆ˜
(instance variable)
μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜μ—ˆμ„ λ•Œ GC에 μ˜ν•΄ κ°μ²΄κ°€ μ—†μ–΄μ§ˆ λ•Œ
μ§€μ—­λ³€μˆ˜
(local variable)
클래슀 μ˜μ—­ μ΄μ™Έμ˜ μ˜μ—­
(λ©”μ„œλ“œ, μƒμ„±μž, μ΄ˆκΈ°ν™” λΈ”λŸ­ λ‚΄λΆ€)
λ³€μˆ˜ μ„ μ–Έλ¬Έμ΄ μˆ˜ν–‰λ˜μ—ˆμ„ λ•Œ μ„ μ–Έλœ μ˜μ—­μ„ λ²—μ–΄λ‚  λ•Œ

 

ν•΄λ‹Ή 글은 남ꢁ성 λ‹˜μ˜ Java의 정석을 μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.