Hamutaro - Hamtaro 4

Backend/Java 27

[JAVA] StringBuilder ์ฃผ์š” ๋ฉ”์†Œ๋“œ

StringBuilder๋ž€? Java์—์„œ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค StringBuilder์˜ ์ฃผ์š” ๋ฉ”์†Œ๋“œ append()๋ฌธ์ž์—ด, ๋ฌธ์ž, ์ˆซ์ž, boolean ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ StringBuilder ๊ฐ์ฒด์˜ ๋์— ์ถ”๊ฐ€ StringBuilder sb = new StringBuilder("Hello");sb.append(" World");System.out.println(sb.toString()); // ์ถœ๋ ฅ: "Hello World"  insert()์ง€์ •๋œ ์œ„์น˜์— ๋ฌธ์ž์—ด ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‚ฝ์ž… StringBuilder sb = new StringBuilder("Hello");sb.insert(5, " World");System.out.println(sb.toString()); // ์ถœ..

Backend/Java 2024.07.24

[JAVA] final ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด์„œ

final ํ‚ค์›Œ๋“œ์˜ ์‚ฌ์šฉ1. final ๋ณ€์ˆ˜   - ์ดˆ๊ธฐํ™” ํ›„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉ. ์ƒ์ˆ˜์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…final int MAX_HEIGHT = 100;MAX_HEIGHT = 200; // ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ   * ํ•„์š”ํ•œ ์ด์œ    - ์ƒ์ˆ˜ ์„ ์–ธ : ์ƒ์ˆ˜ ๊ฐ’์„ ์„ ์–ธํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€   - ๋ณด์•ˆ ๋ฐ ๋ฌด๊ฒฐ์„ฑ : ํ•œ ๋ฒˆ ์ดˆ๊ธฐํ™”๋œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€   * final๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ    - ์ค‘์š”ํ•œ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์–ด, ํ”„๋กœ๊ทธ๋žจ์˜ ๋กœ์ง์ด ๊นจ์ง€๊ฑฐ๋‚˜ ์˜ˆ์ƒ์น˜๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค 2. final ๋ฉ”์„œ๋“œ    - final ๋ฉ”์„œ๋“œ๋Š” ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉclass Parent { ..

Backend/Java 2024.06.25

[JAVA] Arrays.asList()์™€ List.of()์˜ ์ฐจ์ด์ 

Arrays.asList()๋ฐฐ์—ด์„ ๊ณ ์ • ํฌ๊ธฐ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ 1. ๊ณ ์ •ํฌ๊ธฐ   - ์ด ๋ฆฌ์ŠคํŠธ๋Š” ๊ณ ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค   - ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด UnsupportedOperationException ๋ฐœ์ƒ 2. ์›๋ณธ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ   - ๋ฆฌ์ŠคํŠธ๋Š” ์›๋ณธ ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด, ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์›๋ณธ ๋ฐฐ์—ด๋„ ๋ณ€๊ฒฝ 3. ํƒ€์ž…์œ ์ถ”   - ๋ฐฐ์—ด์˜ ํƒ€์ž…์„ ์œ ์ถ”ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑString[] array = {"apple", "banana", "cherry"};List list = Arrays.asList(array);list.set(1, "blueberry"); // ๊ฐ€๋Šฅ// list.add("date"); // UnsupportedOperationException ๋ฐœ์ƒSy..

Backend/Java 2024.06.10

[JAVA] ๋žŒ๋‹ค์‹๊ณผ ์ŠคํŠธ๋ฆผ ํ•„ํ„ฐ

๋žŒ๋‹ค์‹์ด๋ž€?JAVA8 ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง€๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต์„ ์ค„์ธ๋‹ค ๋žŒ๋‹ค์‹์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•- ๋‘ ์ˆซ์ž์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋žŒ๋‹ค์‹(int a, int b) -> a + b ๋žŒ๋‹ค์‹์˜ ๊ตฌ์„ฑ ์š”์†Œ1. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก   - ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ์ƒ๋žต๊ฐ€๋Šฅ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž… ์ถ”๋ก ํ•จ2. ํ™”์‚ดํ‘œ (->)   - ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋žŒ๋‹ค ๋ณธ๋ฌธ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ3. ๋žŒ๋‹ค ๋ณธ๋ฌธ   - ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹์ด๊ฑฐ๋‚˜ ์ค‘๊ด„ํ˜ธ๋กœ ์—ฌ๋Ÿฌ ๊ตฌ๋ฌธ์„ ๊ฐ์Œ€ ์ˆ˜ ์žˆ๋‹ค ๋žŒ๋‹ค์‹ ์˜ˆ์ œ// ๊ธฐ๋ณธ์ ์ธ ๋žŒ๋‹ค์‹ ์˜ˆ์ œRunnable r = () -> System.out.println("Hello, World!");r.run();// ๋ฆฌ์ŠคํŠธ ์ •๋ ฌList list = Arrays.asList("apple", ..

Backend/Java 2024.04.04

[JAVA] ์ž๋ฐ” ์ปฌ๋ ‰์…˜(Collection) ํ”„๋ ˆ์ž„์›Œํฌ

์ž๋ฐ” ์ปฌ๋ ‰์…˜(Collection) ํ”„๋ ˆ์ž„์›Œํฌ๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” API๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ, ๊ฒ€์ƒ‰, ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต ์ฃผ์š” Collection (1) Collection ์ธํ„ฐํŽ˜์ด์ŠคList : ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์š”์†Œ์˜ ์ง‘ํ•ฉ, ์ค‘๋ณต ํ—ˆ์šฉArrayList : ๋™์  ๋ฐฐ์—ด, index๋ฅผ ํ†ตํ•œ ๋น ๋ฅธ ์ ‘๊ทผ ๊ฐ€๋Šฅ, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋А๋ฆผLinkedList : ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋น ๋ฆ„, index๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์ด ๋А๋ฆผSet : ์ˆœ์„œ๊ฐ€ ์—†์Œ, ์ค‘๋ณต ๋ถˆ๊ฐ€๋ŠฅHashSet : ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜, ์ˆœ์„œ ๋ณด์žฅ ๋˜์ง€ ์•Š์Œ, ๋น ๋ฅธ ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…LinkedHashSet : ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•จTreeSet : ์ •๋ ฌ๋œ ์ง‘ํ•ฉQueue : ์š”์†Œ๋ฅผ FIFO ๋ฐฉ..

Backend/Java 2022.01.18

[JAVA] Wrapper Class

Wrapper Class๋ž€? 8๊ฐœ์˜ ๊ธฐ๋ณธ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด(Object)๋กœ ํฌ์žฅํ•ด์ฃผ๋Š” ํด๋ž˜์ŠคWrapper Class๋Š” ๊ฐ๊ฐ์˜ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์•„, ํ•ด๋‹น๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์คŒ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…Wrapper ClassbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean  Wrapper Class์˜ ์ฃผ์š” ๋ฉ”์†Œ๋“œ 'Integer' ํด๋ž˜์Šค์˜ 'parseInt()' ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•จString str = "123";int number = Integer.parseInt(str); // ๋ฌธ์ž์—ด "123"์„ ์ •์ˆ˜ 123์œผ๋กœ ๋ณ€ํ™˜ Wrapper Class์˜ ํŠน์ง• 1. ..

Backend/Java 2022.01.14

[JAVA] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€?

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(singleton pattern) ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ์‚ฌ์šฉ๋จconst URL = 'DB์ฃผ์†Œ'const createConnection = url => ({"url" : url})class DB { constructor(url) { if(!DB.instance){ DB.instance = createConnection(url) } return DB.instance } connect(){ return this.instance }}const a = new DB(URL)const b = new DB(URL)console.log(a===b)-> DB.instance ์ธ์Šคํ„ด์Šค..

Backend/Java 2022.01.11

[JAVA] ํ”„๋กœ์„ธ์Šค(Process)์™€ ์Šค๋ ˆ๋“œ(Thread)

ํ”„๋กœ์„ธ์Šค (Process) 1. ์ •์˜์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šคํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜์ง€ ์•Š์Œํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ž„ -> ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ ์—†์Œ2. ๋ฉ”๋ชจ๋ฆฌ์™€ ์ž์›๊ด€๋ฆฌ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ์ฃผ์†Œ ๊ณต๊ฐ„(๋ฉ”๋ชจ๋ฆฌ)์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๊ณต์œ ํ•˜์ง€ ์•Š์Œ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๋ณดํ˜ธ๋˜์–ด ์žˆ์Œํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ํ†ต์‹ ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณต์žกํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง (ex.ํŒŒ์ดํ”„, ์†Œ์ผ“ ๋“ฑ)3. ์‹คํ–‰ ๋ฐ ์„ฑ๋Šฅํ”„๋กœ์„ธ์Šค๊ฐ„์˜ Context Switching์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์ž์› ์†Œ๋ชจ๋„ ๋งŽ์Œํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋œ ์ž์›์„ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•จ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํฌ์ง€๋งŒ ์•ˆ์ •์ ์ž„ ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ์ž์›..

Backend/Java 2022.01.11

[JAVA] ์ž…์ถœ๋ ฅ(I/O) ๋ณด์กฐ ์ŠคํŠธ๋ฆผ : BufferedReader, BufferedWriter

https://docs.oracle.com/javase/tutorial/essential/io/streams.html Essential Java Classes > Basic I/O)" data-og-description="The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of update..

Backend/Java 2022.01.11