๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ก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.