[JAVA] κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜

2021. 3. 14. 15:07Β·πŸ“ Language/✏ JAVA

κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜

컴퓨터 λ©”λͺ¨λ¦¬(RAM)λŠ” 값을 μ €μž₯ν•  수 μžˆλŠ” μˆ˜λ§Žμ€ μ£Όμ†Œλ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. κ·Έλž˜μ„œ 어디에 μ €μž₯ν•˜κ³  μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ €μž₯ν• μ§€ 정해놓지 μ•ŠμœΌλ©΄ ν”„λ‘œκ·Έλž¨ 개발이 무척 μ–΄λ ΅κ²Œ λœλ‹€.
이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜λΌλŠ” κ°œλ…μ„ μ‚¬μš©ν•œλ‹€.

 

1. λ³€μˆ˜

λ³€μˆ˜λŠ” 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— λΆ™μ΄λŠ” μ΄λ¦„μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ€ λ³€μˆ˜λ₯Ό 톡해 λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— 값을 μ €μž₯ν•˜κ³  읽을 수 μžˆλ‹€. 어디에 μ €μž₯ν•˜κ³  μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ €μž₯ν• μ§€λŠ” ν”„λ‘œκ·Έλž˜λ° 언어와 μš΄μ˜μ²΄μ œκ°€ μ •ν•œλ‹€.

 

1) λ³€μˆ˜ μ΄ˆκΈ°ν™”

μžλ°”μ—μ„œλŠ” λ³€μˆ˜μ— 값이 μ €μž₯λ˜μ§€ μ•ŠμœΌλ©΄ λ³€μˆ˜κ°€ μƒμ„±λ˜μ§€ μ•ŠλŠ”λ‹€. λ³€μˆ˜μ— μ΄ˆκΈ°κ°’μ΄ 졜초둜 μ €μž₯될 λ•Œ λ³€μˆ˜κ°€ μƒμ„±λ˜λŠ”λ° 이것을 λ³€μˆ˜ μ΄ˆκΈ°ν™”λΌκ³  ν•œλ‹€. λ³€μˆ˜κ°€ μ΄ˆκΈ°ν™”λ˜λ©΄ λ©”λͺ¨λ¦¬ λ²ˆμ§€ 정보λ₯Ό κ°–κ²Œ 되고 ν•΄λ‹Ή λ©”λͺ¨λ¦¬ λ²ˆμ§€μ— 값이 μ €μž₯λœλ‹€.

 

2. κΈ°λ³Έν˜• νƒ€μž…

κΈ°λ³Έν˜• νƒ€μž…μ—λŠ” boolean, char, byte, short, int, long, float, double 총 8κ°€μ§€μ˜ νƒ€μž…μ΄ μžˆλ‹€.

  • κΈ°λ³Έν˜• λ³€μˆ˜λŠ” 값을 κ·ΈλŒ€λ‘œ λ³€μˆ˜μ— μ €μž₯ν•œλ‹€.
  • 객체가 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— null 값을 κ°€μ§ˆ 수 μ—†λ‹€. λ§Œμ•½ null을 λ„£κ³  μ‹Άλ‹€λ©΄ Wrapper Classλ₯Ό ν™œμš©ν•΄μ•Ό ν•œλ‹€.
  • μš΄μ˜μ²΄μ œμ— 따라 μžλ£Œν˜•μ˜ 길이가 λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

κΈ°λ³Έν˜• νƒ€μž…

 

3. μ°Έμ‘°ν˜• νƒ€μž…

κΈ°λ³Έν˜• νƒ€μž…μ„ μ œμ™Έν•œ νƒ€μž…λ“€μ΄ λͺ¨λ‘ μ°Έμ‘°ν˜• νƒ€μž…μ΄λ‹€.

  • λŒ€ν‘œμ μœΌλ‘œ λ°°μ—΄, μ—΄κ±°, 클래슀, μΈν„°νŽ˜μ΄μŠ€ νƒ€μž…μ΄ μžˆλ‹€.
  • μ°Έμ‘°ν˜• λ³€μˆ˜λŠ” 객체의 레퍼런슀λ₯Ό λ³€μˆ˜μ— μ €μž₯ν•œλ‹€.

 

1) λ©”λͺ¨λ¦¬ μ˜μ—­

 

JVM λ©”λͺ¨λ¦¬ μ˜μ—­

 

  1. λ©”μ„œλ“œ μ˜μ—­
    • JVM이 μ‹œμž‘ν•  λ•Œ μƒμ„±λ˜κ³  λͺ¨λ“  μŠ€λ ˆλ“œκ°€ κ³΅μœ ν•˜λŠ” μ˜μ—­μ΄λ‹€.
    • 클래슀 λ‘œλ”κ°€ 클래슀 정보. 즉, 정적 ν•„λ“œ, μƒμˆ˜, λ©”μ„œλ“œ μ½”λ“œ, μƒμ„±μž μ½”λ“œ 등을 클래슀 λ³„λ‘œ λΆ„λ₯˜ν•΄μ„œ μ €μž₯ν•œλ‹€.
  2. νž™ μ˜μ—­
    • 객체와 λ°°μ—΄ 등이 μƒμ„±λ˜λŠ” μ˜μ—­μ΄λ‹€.
    • μŠ€νƒ μ˜μ—­μ˜ λ³€μˆ˜λ‚˜ λ‹€λ₯Έ 객체의 ν•„λ“œμ—μ„œ μ°Έμ‘°ν•œλ‹€.
    • μ–΄λ–€ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” λ³€μˆ˜λ‚˜ ν•„λ“œκ°€ μ—†λ‹€λ©΄ κ·Έ κ°μ²΄λŠ” μ“°λ ˆκΈ°λ‘œ μ·¨κΈ‰ν•˜μ—¬ GCλ₯Ό μ‹€ν–‰μ‹œμΌœ μžλ™μœΌλ‘œ μ œκ±°ν•œλ‹€.
  3. μŠ€νƒ μ˜μ—­
    • λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œλ§ˆλ‹€ ν”„λ ˆμž„μ„ μΆ”κ°€ν•˜κ³  λ©”μ„œλ“œκ°€ μ’…λ£Œλ˜λ©΄ ν•΄λ‹Ή ν”„λ ˆμž„μ„ μ œκ±°ν•˜λŠ” λ™μž‘μ„ μˆ˜ν–‰ν•œλ‹€.
    • ν”„λ ˆμž„ λ‚΄λΆ€μ—λŠ” 둜컬 λ³€μˆ˜ μŠ€νƒμ΄ μ‘΄μž¬ν•˜μ—¬ κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜κ°€ μΆ”κ°€λ˜κ±°λ‚˜ μ œκ±°λœλ‹€.
    • μƒμ„±λ˜λŠ” μ‹œμ μ€ μ΄ˆκΈ°ν™”κ°€ 될 λ•Œμ΄κ³  블둝을 λ²—μ–΄λ‚˜λ©΄ μŠ€νƒμ—μ„œ μ œκ±°λœλ‹€.

 

2) ==, != μ—°μ‚°

κΈ°λ³Έν˜• λ³€μˆ˜μ—μ„œλŠ” 값이 같은지, μ•„λ‹Œμ§€λ₯Ό μ‘°μ‚¬ν•˜μ§€λ§Œ μ°Έμ‘°ν˜• λ³€μˆ˜μ—μ„œλŠ” λ™μΌν•œ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ”μ§€λ₯Ό νŒλ‹¨ν•œλ‹€.

 

3) nullκ³Ό NullPointerException

μ°Έμ‘°ν˜• λ³€μˆ˜κ°€ null 값을 κ°€μ§€λŠ” 건 νž™ μ˜μ—­μ˜ 객체λ₯Ό μ°Έμ‘°ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” λœ»μ΄λ‹€. λ”°λΌμ„œ null을 κ°€μ§€λ©΄ μ°Έμ‘°ν˜• λ³€μˆ˜μ— μ €μž₯된 μ£Όμ†Œ 값이 μ—†λŠ” 것일 뿐 μŠ€νƒ μ˜μ—­μ— μƒμ„±λ˜κΈ°λŠ” ν•œλ‹€. μ΄λ•Œ, null κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”λœ μ°Έμ‘° λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ NullPointerException 였λ₯˜κ°€ λ°œμƒν•œλ‹€.

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Language/✏ JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [JAVA] 쀑첩 ν΄λž˜μŠ€μ™€ 쀑첩 μΈν„°νŽ˜μ΄μŠ€
  • [JAVA] 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€
  • [JAVA] 상속
  • [JAVA] 클래슀
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[JAVA] κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”