[JAVA] λ©”λͺ¨λ¦¬ μ‚¬μš© μ˜μ—­

2023. 11. 5. 19:03Β·πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅)/JAVA

T1) java λͺ…λ Ήμ–΄λ‘œ JVM이 κ΅¬λ™λœλ‹€λ©΄ JVM은 μš΄μ˜μ²΄μ œμ—μ„œ 할당받은 λ©”λͺ¨λ¦¬ μ˜μ—­(Runtime Data Area)을 μ–΄λ–»κ²Œ κ΅¬λΆ„ν•΄μ„œ μ‚¬μš©ν• κΉŒ?

 

λ©”λͺ¨λ¦¬ μ˜μ—­(Runtime Data Area)

  • λ©”μ†Œλ“œ μ˜μ—­(Method) : 
    • λ°”μ΄νŠΈμ½”λ“œ νŒŒμΌμ„ 읽은 λ‚΄μš©μ΄ μ €μž₯λ˜λŠ” μ˜μ—­μ΄λ‹€.
    • ν΄λž˜μŠ€λ³„λ‘œ μƒμˆ˜, 정적 ν•„λ“œ, λ©”μ†Œλ“œ μ½”λ“œ, μƒμ„±μž μ½”λ“œ 등이 μ €μž₯λœλ‹€.
  • νž™ μ˜μ—­(Heap) :
    • 객체가 μƒμ„±λ˜λŠ” μ˜μ—­μ΄λ‹€.
    • 객체의 λ²ˆμ§€(μ£Όμ†Œ)λŠ” λ©”μ†Œλ“œ μ˜μ—­κ³Ό μŠ€νƒ μ˜μ—­μ˜ μƒμˆ˜μ™€ λ³€μˆ˜μ—μ„œ μ°Έμ‘°ν•  수 μžˆλ‹€.
  • μŠ€νƒ μ˜μ—­(Stack) :
    • λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œλ§ˆλ‹€ μƒμ„±λ˜λŠ” ν”„λ ˆμž„(Frame)이 μ €μž₯λ˜λŠ” μ˜μ—­μ΄λ‹€.
    • λ©”μ†Œλ“œ 호좜이 λλ‚˜λ©΄ ν”„λ ˆμž„μ€ μžλ™ μ œκ±°λœλ‹€.
    • ν”„λ ˆμž„ λ‚΄λΆ€μ—λŠ” 둜컬 λ³€μˆ˜ μŠ€νƒμ΄ μžˆλ‹€. ν”„λ ˆμž„ λ‚΄λΆ€μ—μ„œ κΈ°λ³Έ νƒ€μž… λ³€μˆ˜μ™€ μ°Έμ‘° νƒ€μž… λ³€μˆ˜κ°€ μƒμ„±λ˜κ³  μ œκ±°λœλ‹€.

 

κ²°λ‘  :

==, != μ—°μ‚°μžλ‘œ 객체λ₯Ό 비ꡐ할 λ•Œ μ°Έμ‘°νƒ€μž…μ˜ λ³€μˆ˜μΈ κ²½μš°μ—λŠ” 같은 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” μ§€ ν™•μΈν•˜λŠ” 것이닀. κ·Έλ ‡κΈ°λ•Œλ¬Έμ— 같은 κΈ€μžμ—¬λ„ μ°Έμ‘°ν•˜λŠ” λ³€μˆ˜κ°€ λ‹€λ₯Ό 경우 κ°™μ§€ μ•Šμ€ κ²ƒμ΄λΌλŠ” 결둠이 λ‚˜μ˜¨λ‹€.

public class StringVarTest {
	public static void main(String[] args) {
		String str1 = "λ¬Έμžμ—΄ μ°Έμ‘° λ³€μˆ˜";
		String str2 = "λ¬Έμžμ—΄ μ°Έμ‘° λ³€μˆ˜";
		String str3 = new String("λ¬Έμžμ—΄ μ°Έμ‘° λ³€μˆ˜");
		
		System.out.println(str1);
		System.out.println(str2);
		System.out.println(str3);
		System.out.println(str1 == str2);
		System.out.println(str1 == str3);
		
	}
}

 

좜λ ₯κ²°κ³Ό :

 

*μΆ”κ°€ :

  • μ°Έμ‘° νƒ€μž… 아직 λ²ˆμ§€λ₯Ό μ €μž₯ν•˜κ³  μžˆμ§€ μ•Šλ‹€λŠ” 뜻으둜 null(널) 값을 κ°€μ§ˆ 수 있고, μ΄ˆκΈ°κ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μ΄ˆκΈ°κ°’μ΄ null인 경우 μ°Έμ‘°ν•˜κ³  μžˆλŠ” λ²ˆμ§€κ°€ μ—†λ‹€λŠ” 뜻이기 λ•Œλ¬Έμ— μŠ€νƒμ˜μ—­μ— μƒμ„±λœλ‹€.
  • λ˜ν•œ λ³€μˆ˜κ°€ null인 μƒνƒœμ—μ„œ 객체의 λ°μ΄ν„°λ‚˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ € ν•  λ•Œ μ˜ˆμ™Έκ°€ λ°œμƒν•˜λŠ”λ° 이λ₯Ό NullPointerException이라 ν•œλ‹€. 
  • μ–΄λ–€ λ³€μˆ˜μ—μ„œλ„ 객체λ₯Ό μ°Έμ‘°ν•˜μ§€ μ•ŠμœΌλ©΄ ν•΄λ‹Ή κ°μ²΄λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•  수 μ—†λŠ” 객체가 되고 νž™ λ©”λͺ¨λ¦¬μ— μ‘΄μž¬ν•˜μ§€λ§Œ μœ„μΉ˜ 정보가 μ—†κΈ° λ•Œλ¬Έμ— μ‚¬μš©ν•  수 μ—†κ²Œλœλ‹€. κ·Έλ ‡κ²Œ 되면 μžλ°”μ—μ„œλŠ” ν•΄λ‹Ή 객체λ₯Ό μ“°λ ˆκΈ°λ‘œ μ·¨κΈ‰ν•˜κ³  μ“°λ ˆκΈ° μˆ˜μ§‘κΈ°(Garbage Collector)λ₯Ό μ‹€ν–‰μ‹œμΌœ μžλ™μœΌλ‘œ μ œκ±°ν•œλ‹€.

 

 

 

좜처 및 μ°Έκ³  : 이것이 μžλ°”λ‹€(ꡐ윑 ν˜„μž₯μ—μ„œ κ°€μž₯ 많이 μ“°μ΄λŠ” JAVA ν”„λ‘œκ·Έλž˜λ°μ˜ κΈ°λ³Έμ„œ)
https://search.shopping.naver.com/book/catalog/34238594620?cat_id=50010920&frm=PBOKMOD&query=%EC%9D%B4%EA%B2%83%EC%9D%B4%EC%9E%90%EB%B0%94%EB%8B%A4&NaPm=ct%3Dlocm18y8%7Cci%3D0e64b25f86693278b2d96906cbe4b981fe74c6d5%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3D95e00da716b01b77d749d200eae34c788eb63950
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅) > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] λ¬Έμžμ—΄ 자λ₯΄κΈ° Β· 뢄리( substring() Β· split() )  (0) 2023.11.07
[JAVA] λ¬Έμžμ—΄ 길이 Β· λ¬Έμžμ—΄ λŒ€μ²΄  (0) 2023.11.06
[JAVA] 데이터 νƒ€μž… λΆ„λ₯˜  (0) 2023.11.04
[JAVA] Switch Expressions (Java 12이후)  (0) 2023.11.03
[JAVA] NaNκ³Ό Infinity  (0) 2023.11.02
'πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅)/JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [JAVA] λ¬Έμžμ—΄ 자λ₯΄κΈ° · 뢄리( substring() · split() )
  • [JAVA] λ¬Έμžμ—΄ 길이 · λ¬Έμžμ—΄ λŒ€μ²΄
  • [JAVA] 데이터 νƒ€μž… λΆ„λ₯˜
  • [JAVA] Switch Expressions (Java 12이후)
JinSeong
JinSeong
μž¬λ―Έμ—†μœΌλ©΄ μ•ˆν•œλ‹€.
  • JinSeong
    As you think, so shall you become.
    JinSeong
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (96)
      • πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅) (76)
        • JAVA (20)
        • HTML (1)
        • JSP (46)
        • SPRING (2)
        • ORACLE(DB) (6)
        • CSS (1)
      • πŸ“† Today I Learned(μ½”λ”©ν…ŒμŠ€νŠΈ) (0)
        • JAVA (0)
      • Computer Science (9)
        • 컴퓨터 ꡬ쑰 (9)
        • 운영체제 (0)
        • 자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜ (0)
        • λ°μ΄ν„°λ² μ΄μŠ€ (0)
      • μ°½κ³  (11)
        • κΈ°μ΄ˆμ§€μ‹ (7)
        • 파일창고 (0)
        • κΈ°μˆ μ§€μ‹μ°½κ³  (0)
        • 버그버그 πŸ‘€ (4)
      • ToolsπŸ”§ (0)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    DB
    λ ˆμ§€μŠ€ν„°
    no converter found for
    ν™˜κ²½λ³€μˆ˜ 차이
    java json리턴 μ—λŸ¬
    java버전 ν‘œν˜„
    spring μŠ€μΌ€μ€„λŸ¬
    CPU
    μ œμ–΄μž₯치
    ALU
    이클립슀 μ˜€λ²„λΌμ΄λ”© λ©”μ†Œλ“œ μžλ™ 생성 κΈ°λŠ₯
    java μŠ€μΌ€μ€„λŸ¬
    substring()
    λͺ…λ Ήμ–΄
    JAVAλ¬Έμžμ—΄μžλ₯΄κΈ°
    jdkꡬ뢄
    Oracle
    SQL
    java κ°μ²΄νƒ€μž…ν™•μΈ
    instanceof μ—°μ‚°μž
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
JinSeong
[JAVA] λ©”λͺ¨λ¦¬ μ‚¬μš© μ˜μ—­
μƒλ‹¨μœΌλ‘œ

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