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

Java17

[JAVA] Lambda Lambda(๋žŒ๋‹ค)๊ฐ€ ๋ญ์˜ˆ์š”๋žŒ๋‹ค๋Š” ์ •์˜ํ•˜์ž๋ฉด ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ˜•ํƒœ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์ด๋‹ค.์ด์ „์— ์ •์˜ํ–ˆ๋˜ ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ์ง€์นญํ•˜๋Š” ์šฉ์–ด์ด๊ธฐ๋„ ํ•˜๋ฉด์„œ ๋Œ€์ถฉ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ด์„œ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ ... ์ด๊ฒŒ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ์—ฌ๊ฒจ์„œ ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฑฐ + ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์˜ ์ด์œ ๋กœ ๋‚˜์˜จ ํ•จ์ˆ˜์ด๋‹ค. ๋žŒ๋‹ค ์™œ ์“ฐ๋ƒ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. public class LambdaTest { public static void main(String[] args) { MyInterface m1 = new MyInterface() { //1.์ต๋ช…์„ ์ด์šฉํ•œ MyInterface ๊ตฌํ˜„๋ถ€ @Override public int max(int a, int b){ .. 2024. 7. 24.
[JAVA] Comparable? Comparator? ์„œ๋ก ๊ฐ์ฒด ๊ฐ„์˜ sort๋ฅผ ์ˆ˜ํ–‰ํ•˜๋˜ ์ค‘ Comparable์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ๊ณผ Comparator๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ์กด์žฌํ•ด ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฑธ ์–ด๋А ์ƒํ™ฉ์— ์จ์•ผ ํ•˜๋‚˜..๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค. ๊ณตํ†ต์ - ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค.- ์›ํ•˜๋Š” ๊ฐ์ฒด์— ์ถ”๊ฐ€ํ•˜๊ณ , ๊ฐ๊ฐ ์š”๊ตฌ๋กœ ํ•˜๋Š” ๋ฉ”์„œ๋“œ(๋น„๊ต ๋ฉ”์„œ๋“œ)๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. Comparable- compareTo(T o) return: int- ์ž๊ธฐ ์ž์‹ ๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•œ๋‹ค.- ์ž๊ธฐ ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๊ฐ€ ๋” ํฌ๋ฉด ์–‘์ˆ˜, ์ƒ๋Œ€๊ฐ€ ๋” ํฌ๋ฉด ์Œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.- ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ ์ข€ ๋‹ค๋ฅธ๋ฐ, ๊ธฐ์ค€๊ฐ’์— ๋น„๊ต๋Œ€์ƒ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์„œ๋กœ์˜ ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ์ฐจ์ด๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.- ๋ญ”์†Œ๋ฆฌ๋ƒํ•˜๋ฉด ์˜ˆ์‹œ๋ฅผ ๋ณด์žString str = "abcd";System.out.println(str.com.. 2024. 7. 23.
[JAVA] Generic ์„œ๋ก ์–ด๋””์„ ๊ฐ€ ์ž๋ฐ”๋กœ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ ๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ArrayList ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์žฅ์„ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.์ € ์•ˆ์— ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํƒ€์ž…์„ ๋„ฃ์œผ๋ฉด ๊ทธ ํƒ€์ž…์— ๋งž๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์ด Generic์ด๋‹ค. Generic Generic์€ ๋ฐ์ดํ„ฐ ํ˜•์‹์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๋„๋ก ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ด๊ฑธ ์กฐ๊ธˆ ๋” ์žˆ์–ด ๋ณด์ด๊ฒŒ ํ‘œํ˜„ํ•˜์ž๋ฉด ์ปดํŒŒ์ผ ๋•Œ ํƒ€์ž…์„ ์ฒดํฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.Generic์€ ๊ฐ์ฒด์˜ ํƒ€์ž…์— ๋Œ€ํ•œ ์•ˆ์ „์„ฑ์„ ๋†’์ด๊ณ , ํ˜• ๋ณ€ํ™˜์˜ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.๊ฐ€ ํ‘œ๋ฉด์ ์ธ ์ด์œ ์ด์ง€๋งŒ, ํ•œ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์™œ ์“ฐ๋Š”์ง€ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.์„œ๋ก ์—์„œ ์–ธ๊ธ‰ํ•œ ArrayList์˜ ํƒ€์ž…์ด ๋งŒ์•ฝ ์ง€์ •๋˜์–ด ์žˆ๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ž๋Š” ์ˆ˜๋งŽ์€ ํƒ€์ž…์˜ Array.. 2024. 7. 22.
[JAVA] ์ถ”์ƒ ์„œ๋ก ์ด์ „ ๊ธ€์—์„œ ๊ฐ€๋ณ๊ฒŒ ์ •์˜ํ•œ ์ถ”์ƒ์— ๋Œ€ํ•ด ์ž‘์„ฑํ–ˆ๋‹ค. ์ถ”์ƒ ํด๋ž˜์Šค์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ๊ฐ€ ์ƒ์†์€ ํ•˜๋Š”๋ฐ ๋ง‰์ƒ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜๋ฅผ ๊ณ„์†ํ•˜๋‹ค ๋ณด๋‹ˆ '์ด๋Ÿด ๊ฑฐ๋ฉด ๋ถ€๋ชจ ํด๋ž˜์Šค ์ชฝ์— ๊ตณ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ๋‚˜..?' ํ•ด์„œ ๋‚˜์˜ค๊ฒŒ ๋œ ํด๋ž˜์Šค์ด๋‹ค. ํ‚ค์›Œ๋“œ๋กœ๋Š” abstract๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ตฌํ˜„๋ถ€๋Š” ;๋กœ ๋Œ€์ฒดํ•œ๋‹ค.-> ์ƒ์† ์ „์šฉ ๋ฉ”์„œ๋“œ๋ผ๋Š” ๋œป์œผ๋กœ ์ž์‹์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๋ฌด์กฐ๊ฑด ์žฌ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค. ํŠน์ง•์œผ๋กœ๋Š” ๊ตฌํ˜„๋ถ€๊ฐ€ ์—†๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๋งŒํผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค(์ฐธ์กฐ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค) ๋งŒ์•ฝ ์ƒ์† ๋ฐ›์€ abstract ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜๋ฅผ ์•ˆ ํ–ˆ๋‹ค๋ฉด ์ž์‹ ํด๋ž˜์Šค๋„ abstract ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค์˜ ๋ชฉ์ ์€ ๊ตฌํ˜„์„ ๊ฐ•์ œํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์ด ํ–ฅ์ƒ๋˜๊ฒŒ๋” ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. abstract class .. 2024. 7. 20.
[JAVA] ๋‹คํ˜•์„ฑ Encapsulation- ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.- ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์„ private์„ ์„ ์–ธํ•ด ์™ธ๋ถ€์—์„œ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จ- ์ ‘๊ทผ ๊ฒฝ๋กœ๋Š” getter, setter๋กœ๋งŒ ์œ ๋„ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. Singleton- ๊ฐ์ฒด๋ฅผ ์ฒ˜์Œ ํ•œ๋ฒˆ ์„ ์–ธํ•ด ๋‘๊ณ ,์žฌ์‚ฌ์šฉํ•จ- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ํ•„์š” ์—†๊ฑฐ๋‚˜, ๊ฐ์ฒด์˜ ๋น„์šฉ์ด ์ปค ์‚ฝ์ž…/์‚ญ์ œ์— ๋ถˆํŽธํ•จ์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐclass SingletonClass { private static SingletonClass Instance; //privateํ•œ Instance ๊ฐ์ฒด๋ฅผ static์œผ๋กœ ์ƒ์„ฑ private SingletonClass() { //์ƒ์„ฑ์ž ์‚ฌ์šฉ์„ ์ œํ•œ Instance = new SingletonClass(); // ํด๋ž˜์Šค ๋กœ๋”ฉ์ค‘ ์ƒ์„ฑ }public s.. 2024. 7. 18.
[JAVA] ์ฝ”๋“œ ์™ธ ์ž‘์„ฑํ•  ๊ฒƒ๋“ค ์„œ๋ก ์ด ๊ธ€์˜ ์ œ๋ชฉ์„ ์–ด๋–ป๊ฒŒ ์ •ํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋ณดํ†ต ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋ฌธ๋ฒ•์ ์ธ ์ฝ”๋“œ ์™ธ์— ์ž‘์„ฑํ•  ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Annotation(์ฃผ์„)- ์ปดํŒŒ์ผ๋Ÿฌ, JVM, ํ”„๋ ˆ์ž„ ์›Œํฌ๋“ค์ด ์ฐธ๊ณ ํ•˜๋Š” ์ฃผ์„์ด๋‹ค.- ์†Œ์Šค์ฝ”๋“œ์— ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.- ์šฉ๋„์— ๋งž์ง€ ์•Š์€ Annotation์„ ๋„ฃ๋Š”๋‹ค๋ฉด ์ปดํŒŒ์ผ ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ๋‹ค.- @Deprecated: ํ•ด๋‹น ๋ฉ”์„œ๋“œ(๋ณ€์ˆ˜)๊ฐ€ ํ•˜์œ„ ๋ฒ„์ „์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ์‚ญ์ œํ•˜๊ธฐ ๊ณค๋ž€ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.- @Override: ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ์ฃผ์„์ด๋‹ค.- @SuppressWarnings: ์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ๋Š” ์ฃผ์„์ด๋‹ค. Package + Impor.. 2024. 7. 17.