๐กCS/Java7 [Java] String, StringBuffer, StringBuilder ์๋ฐ์์ ๋ํ์ ์ผ๋ก ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ์๋ฃํ ํด๋์ค๋ก String, StringBuffer, StringBuilder๋ฅผ ์ง์ํ๋ค. 3๊ฐ์ง ํด๋์ค๋ ๋ชจ๋ ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋์ง๋ง, ์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฐ์์๊ฐ ๋ฌ๋ผ์ง๋ค. String ์๋ฐ์์ String ๊ฐ์ฒด์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. ์ฆ, ๋ถ๋ณ์ ์์ฑ์ ๊ฐ๋๋ค.(immutable) ์ฐธ๊ณ ) String ๋ด๋ถ ์ฝ๋ public final class String implements java.io.Serializable, Comparable { private final byte[] value; } ์์ ๋ฅผ ํตํด ์ดํด๋ณด์. public static void main(String[] args) { String str = "Hello"; str += "Worl.. 2023. 6. 9. [Java] equals()์ hashCode()(+ ๋์ผ์ฑ, ๋๋ฑ์ฑ) equals์ hashCodeํจ์ ๋ชจ๋ Java ๊ฐ์ฒด์ ๋ถ๋ชจ ๊ฐ์ฒด์ธ Object ํด๋์ค์ ์ ์๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฐ์ฒด๋ Object ํด๋์ค์ ์ ์๋ equals์ hashCodeํจ์๋ฅผ ์์๋ฐ๋๋ค. ๋์ผ์ฑ(Identity), ๋๋ฑ์ฑ(Equality) ํจ์๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์์๋๋ฉด ์ข์ ๊ฐ๋ ์ธ ๊ฒ ๊ฐ์์ ๋จผ์ ์ ๋ฆฌํ์๋ค. ๋์ผ์ฑ(Identity) ๋์ผ์ฑ์ ๋น๊ต ๋์์ ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๊ฐ์์ ์๋ฏธํ๋ค. ์๋ฐ์์ ๋น๊ต์ฐ์ฐ์(==)๋ฅผ ํตํด ํ์ธํ ์ ์๋ค. public class Main { static class Person{ int age; public Person(int age) { this.age = age; } } public static void main(String[] args) { Pe.. 2023. 6. 9. [Java] Call by value vs Call by reference ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์๋ค. ๐ Call by value ๐ Call by reference Java์์์ ํ๋ผ๋ฏธํฐ ์ ๋ฌ ๋ฐฉ๋ฒ Java์์๋ ์ด ๋ ๊ฐ์ง์ ๋ฐฉ๋ฒ ์ค Call by value๋ง ์ฌ์ฉํ๋ค. Call by value (๊ฐ์ ์ํ ํธ์ถ) ๋ฉ์๋ ํธ์ถ ์์ ์ฌ์ฉ๋๋ ์ธ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ๊ฐ(value)๋ฅผ ๋ณต์ฌํ์ฌ ๋ณด๋ธ๋ค. ์์ ํ์ public class Main { public static void main(String[] args) { int a = 1; int b = 2; modify(a, b); System.out.println(a); System.out.println(b); } static void modify(int a, int b) { a .. 2023. 6. 8. ์์ ํ์ (Primitive), ์ฐธ์กฐ ํ์ (Reference) ์์ ํ์ , ๊ธฐ๋ณธํ(Primitive Type) ๐ ํน์ง - ์ด 8๊ฐ์ง์ ํ์ ์กด์ฌ - ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ์ ์ฅํ๋ค. - ์ฌ์ฉํ๊ธฐ ์ ์ ๋ฐ๋์ ์ ์ธ๋์ด์ผ ํ๋ค. - ๋น๊ฐ์ฒด ํ์ ์ผ๋ก null ๊ฐ์ ๊ฐ์ง ์ ์๋ค. ๋ง์ฝ Primitive type์ Null์ ๋ฃ๊ณ ์ถ๋ค๋ฉด Wrapper Class๋ฅผ ํ์ฉํ๋ค. - Stack์ ์ ์ฅ๋๋ค. ๐ ์ข ๋ฅ - ๋ ผ๋ฆฌํ (boolean): true์ false ์ค ํ๋๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง - ๋ฌธ์ํ (char): ํ๋์ ๋ฌธ์๋ง ์ ์ฅ ๊ฐ๋ฅ - ์ ์ํ (byte, short, int, long) - ์ค์ํ (float, double) 1byte (8bit) 2byte (16bit) 4byte (32bit) 8byte (64bit) ๋ ผ๋ฆฌ ํ boolean ๋ฌธ์ ํ char ์ ์ ํ by.. 2023. 6. 7. ์ ๊ทผ ์ ์ด์(private, default, protected, public) private ํด๋น ํด๋์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค. public class Main { private String access; private String getAccess() { return this.access; } } access๋ณ์์ getAccess ๋ฉ์๋๋ ์ค์ง Main ํด๋์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ๋ค๋ฅธ ํด๋์ค์์๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค. default ์ ๊ทผ ์ ์ด์๋ฅผ ๋ณ๋๋ก ์ค์ ํ์ง ์๋๋ค๋ฉด ํด๋น ๋ณ์, ๋ฉ์๋๋ defauilt ์ ๊ทผ ์ ์ด์๊ฐ ๋์ด ํด๋น ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค. ๐ name/Park.java (name ํจํค์ง) package name; public class Park { String lastname = "Park"; } ๐name/Kim.java (name ํจํค์ง) package.. 2023. 6. 7. ํด๋์ค, ๊ฐ์ฒด, ์ธ์คํด์ค๋? ํด๋์ค(class) ์ ์: ๊ฐ์ฒด๋ฅผ ์ ์ํด ๋์ ๊ฒ, ๊ฐ์ฒด์ ์ค๊ณ๋ ๋๋ ํ ์ฉ๋: ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ์ฒด๋ ํด๋์ค์ ์ ์๋ ๋๋ก ์์ฑ๋๋ค. ํด๋์ค๋ ์์ฑ(field)์ ๋์(method)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. class Main { // field area private int a = 0; // method area public void run() { a += 1; } } ๊ฐ์ฒด(Object) ์ ์: ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์, ํด๋์ค๋ฅผ ํตํด ์์ฑํ ๋์ ์ฉ๋: ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ๊ณผ ์์ฑ์ ๋ฐ๋ผ ๋ค๋ฆ ์ธ์คํด์ค(Instance) ์ ์: ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํ๋ ์ค์ฒด, ๋ฐํ์์ ๋์ํ๋ ๊ฐ์ฒด๋ก ๊ตฌ์ฒด์ ์ธ ์ค์ฒด์ด๋ค. ๊ฐ์ฒด์ ์ธ์คํด์ค ๐กํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ๋ง๋๋.. 2023. 6. 7. ์ด์ 1 2 ๋ค์