[Java] μλ° μμ μ 볡_ 5μ₯ μ°Έμ‘°μλ£ν (λ¬Έμμ΄)

π μ±
μκ°νκΈ°
λ΄κ° μ¬μ©ν μλ°μμ μ 볡 μ±
λ§ν¬!
γ΄ κΉλν μ§μ, μ΄μ§μ€νΌλΈλ¦¬μ±

μ΄ μ± μ κ³ λ₯΄κ² λ μ΄μ λ μΉκ΅¬μ μΆμ²μ΄μλ€. κ΅μ₯ν κΌΌκΌΌνκ² μ νμμ΄ μ΄ν΄νκΈ° μ½λ€λ μ΄μ λ‘ μΉκ΅¬λ μ΄ μ± μ 골λλ€κ³ νλ€. λλ κ·Έλμ κ·Έλ₯ λ°λΌμλ€. μ€μ λ‘ μ± μ μ΄ν΄λ³΄λ κ΅μ₯ν κΌΌκΌΌνκ² μ 리λμ΄μλ€. λ€λ₯Έ μ± μ λ³Έ μ μ΄ μμ΄ λΉκ΅κ° λΆκ°νμ§λ§, λ΄ μκ°μΌλ‘ μ²μ μλ°λ₯Ό 곡λΆνλ€λ©΄ μ΄ μ± μ κ°μ§κ³ μΆ©λΆν λ°λΌκ° μ μμ λ― νλ€. λͺ¨λλ€ νμ΄ν !!
π°
βοΈ κ°μ²΄ μμ±μ μ£Όμκ°_ 189p
β’ κ°μ²΄ μμ κ°μ λ³κ²½νλ©΄ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±
String str1 = new String("μλ
");
String str2 = str1;
str1 = "μλ
νμΈμ";
System.out.println(str1);
System.out.println(str2);
new μ°μ°μλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ₯Ό μμ±νλ€. new μ°μ°μλ μΈμ€ν΄μ€(λ©λͺ¨λ¦¬ μμ μ¬λΌκ° κ°μ²΄)λ₯Ό μμ±νλλ°, λ©λͺ¨λ¦¬ μμ μ€ ν μμμ λ°μ΄ν°λ₯Ό μ μ₯ν 곡κ°μ ν λΉλ°λλ€. κ·Έ 곡κ°μ μ°Έμ‘°κ°μ(μ¬κΈ°μ str1κ³Ό str2κ° λλ€) κ°μ²΄μκ² λ°ννμ¬ μ£Όκ³ μ΄μ΄μ μμ±μλ₯Ό νΈμΆνλ€.
μμκ° μ€μνλ€. str1μ "μλ "μ΄ λ€μ΄κ°λ κ²μ΄ 첫λ²μ§Έκ° λλ€. κ·Έ ν λλ²μ§Έκ° str1μ΄ str2μ λ€μ΄κ°λ κ²μΌλ‘, str2λ "μλ "μ κ°μ§κ² λλ€. μΈλ²μ§Έμ str1μ΄ "μλ "μμ "μλ νμΈμ"λ‘ λ³κ²½μ΄ λλ€.
μΆλ ₯μ΄ λ λ μ΄ μμμ λ§μΆ° μΆλ ₯μ΄ λλ€. str1μ λ§μ§λ§ μ½λ "μλ νμΈμ"λ‘ λ³κ²½λ λ°κ° μμΌλ "μλ νμΈμ"λ‘ μΆλ ₯μ΄ λ κ²μ΄λ€. str2λ "μλ "μ΄ μ μ λ ν λ³κ²½λ κ²μ΄ μμΌλ μ¬μ ν "μλ "μ κ°λ¦¬ν€κ³ μμ κ²μ΄λ€.
λ©λͺ¨λ¦¬λ [ λ©μλ(ν΄λμ€) μμ - μ€ν μμ - ν μμ ]μΌλ‘ λμ΄μλ€. μ΄λ Stringμ λ©μλ μμμ μ¬λΌκ°κ³ str1κ³Ό str2μ λ΄μ©μ΄ νμμμ λͺ λ²μ§μ μμ 건μ§μ λν μ 보λ₯Ό μ€ν μμμ 보κ΄νλ€. μ²μμ μ€ν μμμμ 100λ²μ§μ str1μ λ΄μ©μ΄ μλ€κ³ κ°λ¦¬ν¬ κ²½μ° ν μμ 100λ²μ§μ κ°λ©΄ "μλ "μ΄ μμ κ²μ΄λ€. κ·Έ ν str1μ κ·Έλλ‘ str2μ μ μ₯νμΌλ str2λ λκ°μ΄ 100λ²μ§μ "μλ "μ κ°λ¦¬ν€κ³ μμ κ²μ΄λ€. μ¬κΈ°μ str1μ΄ "μλ νμΈμ"λ‘ λ°λλ©΄ str1μ λ€λ₯Έ λ²μ§μ "μλ νμΈμ"κ° μκ² λ κ²μ΄λ€. κ·Έλ¦¬κ³ str2λ μ¬μ ν λκ°μ΄ 100λ²μ§λ₯Ό κ°λ¦¬ν€κ³ μμ κ²μ΄λ€.
β’ λ°°μ΄κ³Ό μ°¨μ΄μ
int[] array1 = new int[] {3, 4, 5};
int[] array2 = array1;
array1[0] = 6; array1[1] = 7; array[2] = 8;
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
λ°°μ΄μ 3κ³Ό 4, 5λ₯Ό array1μ λ£μκ³ , array2λ array1κ³Ό λμΌν λ°μ΄ν°λ₯Ό κ°μ§λ€. μ΄λ array1μ λν λ°μ΄ν°λ₯Ό 6κ³Ό 7, 8λ‘ μμ ν΄λ³΄κ² λ€. λΆλͺ μμμ λ¬Έμμ΄μ μμ νμλ λ κ°μ²΄μ κ°μ΄ κ°μ΄ μμ λμ§ μμλ€. νμ§λ§ λ°°μ΄μ λ€λ₯΄λ€. λ°°μ΄μ λ²μ§μ μλ‘μ΄ κ°μ΄ μ λ ₯λλ©΄ λ€λ₯Έ λ²μ§μ λ°μ΄ν°λ₯Ό μλ‘κ² λ§λλ κ²μ΄ μλ, λ³Έλμ μμΉμ μλ λ°μ΄ν°λ₯Ό μμ νμ¬ κ°μ λ£κ²λλ€.
κ·Έλ κΈ°μ κ²°κ³Όλ array1κ³Ό array2 λͺ¨λ 6,7,8μ μΆλ ₯νκ² λλ€.
⒠리ν°λ΄λ‘ μ λ ₯ν λ°μ΄ν°μ μ°¨μ΄
String str1 = new String("μλ
");
String str2 = "μλ
";
String str3 = "μλ
";
String str4 = new String("μλ
");
System.out.println(str1 == str4);
System.out.println(str2 == str3);
str2μ str3μ 리ν°λ΄μ λ°λ‘ μ λ ₯ν λ°μ΄ν°κ° λλ©°, κ·Έ λ°μ΄ν°λ μλ‘ κ°μ κ°μ κ°μ§λ€. λ§μ½ μ΄λ κ² λ¬Έμμ΄ λ¦¬ν°λ΄ λ°©μμΌλ‘ String κ°μ²΄λ₯Ό μμ±ν κ²½μ°, JVMμ λ¨Όμ String Poolμμ ν΄λΉ λ¬Έμμ΄μ΄ μλμ§ νμΈνλ€. κ·Έλ κ² κ°μ λ¬Έμμ΄μ΄ μλ€λ κ²μ΄ νμΈλλ©΄ κΈ°μ‘΄ λ¬Έμμ΄ κ°μ²΄μ μ°Έμ‘°λ₯Ό λ°ννκ² λκ³ λμΌν λ©λͺ¨λ¦¬ μ£Όμλ₯Ό 곡μ νκ² λλ€.
new μ°μ°μλ‘ κ°μ²΄λ₯Ό μμ±ν κ²½μ° String Poolμ΄ μλνμ§ μλλ€. newλ λ§€λ² μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ²΄λ₯Ό μμ±νκ³ , λμΌν κ°μ΄λΌλ λ©λͺ¨λ¦¬ μ£Όμλ λ¬λΌμ§κ² λλ€.
κ²°λ‘ μ μΌλ‘ str1κ³Ό str4λ μλ‘ λ€λ₯Έ μ£Όμκ°μ κ°μ§λ€. κ·Έλ¦¬κ³ str2μ str3μ μλ‘ κ°μ μ£Όμκ°μ κ°μ§λ€.
Q. newκ° μ νν 무μμΈκ°?
A. new μ°μ°μλ κ°μ²΄λ₯Ό μμ±νλ λ°©λ² μ€, μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ²΄λ₯Ό μμ±νλ λ°©λ²μ΄λ€. μΈλΆμμ κ°μ λ³κ²½ν λ λ€λ₯Έ κ°μ²΄μ λΆλ¦¬λμ΄ κ°μ΄ λ³κ²½νκΈΈ μν κ²½μ° new μ°μ°μλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ₯Ό μ μνλ©΄ λλ€.
βοΈ + μ°μ°_ 195p
β’ λ¬Έμμ΄ + λ¬Έμμ΄ μ°μ°
String str1 = "μλ
" + "νμΈμ" + "!";
System.out.println(str1);
κ°μ²΄λ λͺ κ° λ§λ€μ΄μ§κΉ? μ²μμ "μλ "κ³Ό "νμΈμ" κ·Έλ¦¬κ³ "!"κΉμ§ 3κ°μ κ°μ²΄κ° μμ±λ κ²μ΄λ€. κ·Έ ν + μ°μ°μλ‘ μ°κ²°μ΄ λ κ²μ΄λ€. "μλ " + "νμΈμ"λ‘ "μλ νμΈμ"κ° λ§λ€μ΄μ Έ μ΄ 4κ°μ κ°μ²΄κ° λκ³ "!"κ° μ°κ²°λλ©° "μλ νμΈμ!"κ° μμ±λμ΄ μ΄ 5κ°μ κ°μ²΄κ° λ§λ€μ΄μ§ κ²μ΄λ€.
β’ μλ£νμ λ°λ₯Έ + μ°μ°
System.out.println(1 + 2 + "μλ
");
System.out.println("μλ
" + 1 + 2);
첫λ²μ§Έ μ½λλΆν° μ΄ν΄λ³΄λ©΄ μ°μν΄μ λμ€λ 1κ³Ό 2λ‘ μλ£νμ΄ μ«μ μλ£νμΌλ‘ λμΌνλ€. μ΄λ κ² λμΌν μλ£νμ΄ μ°λ¬μ λμ¬ κ²½μ° λνκΈ° μ°μ°μΌλ‘ μμ©νμ¬ 3 + "μλ " ννλ‘ μ΄λ€μ§κ² λλ€. νμ§λ§ λλ²μ§Έ μ½λμ²λΌ "μλ "κ³Ό 1μ΄ +μ°μ°μλ‘ μ°κ²°λ κ²½μ° λ€λ₯Έ μλ£νμΌλ‘ μλ 1μ΄ λκ³ κ·Έ νμ λμ€λ 2 λν μλ 1λ‘ 1μ΄ μμ΄λ μ«μ μλ£νμΌλ‘ μΈμνμ§ μκΈ° λλ¬Έμ μλ 12κ° μ΅μ’ μ μΈ κ°μ΄ λ κ²μ΄λ€.