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

Java19

[java] ๋‹คํ˜•์„ฑ ๋‹คํ˜•์„ฑ์ด๋ž€?๊ฐ™์€ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฐœ๋…์„ ์˜๋ฏธํ•œ๋‹ค.์ฃผ๋กœ ์ž๋™ํ˜•๋ณ€ํ™˜+์žฌ์ •์˜(์˜ค๋ฒ„๋ผ์ด๋”ฉ)์œผ๋กœ ์ด๋ฃจ์–ด ์ง€๋ฉฐ, ์ด๋กœ ์ธํ•ด ์ฝ”๋“œ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์˜ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋‹คํ˜•์„ฑ์€ OOP(๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ) ์›์น™ ์ค‘์˜ ํ•˜๋‚˜๋กœ ์ฃผ์š” ๊ธฐ์ˆ ์ค‘์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋‹ค. ์˜ˆ์‹œ:Animal ์ธํ„ฐํŽ˜์ด์Šคpackage ex;public interface Animal { void sound();} Cat ํด๋ž˜์Šคpackage ex;public class Cat implements Animal { public void sound() { System.out.println("์•ผ์˜น"); }} Dog ํด๋ž˜์Šคpackage ex;public class Dog implements Animal { public void .. 2025. 9. 9.
[java] final,static, static final ์ฐจ์ด โœ… final ํ‚ค์›Œ๋“œ (์ƒ์ˆ˜ํ™” ๊ฐœ๋…)๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•˜๋ฉด: ๊ฐ’์ด ํ•œ ๋ฒˆ๋งŒ ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉํ•˜๋ฉด: ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(์žฌ์ •์˜) ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.ํด๋ž˜์Šค์— ์‚ฌ์šฉํ•˜๋ฉด: ๊ทธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.์˜ˆ์‹œ:final int x = 10;x = 20; // ์ปดํŒŒ์ผ ์—๋Ÿฌ! final ๋ณ€์ˆ˜๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€โœ… static ํ‚ค์›Œ๋“œ (๊ณต์œ  ๊ฐœ๋…, ๊ฐ์ฒด์ƒ์„ฑx)ํด๋ž˜์Šค์— ์†ํ•œ ๊ณต์šฉ ์ž์›์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์š”.์˜ˆ์‹œ:static int count = 0;public static void main(String[] args) { System.out.println(count); // ๊ฐ์ฒด ์—†์ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ}โœ… static final (๊ณต์œ ํ•˜๋Š” ์ƒ์ˆ˜์˜๋ฏธ)์ด ์กฐํ•ฉ์€ .. 2025. 9. 7.
[java] ์—ด๊ฑฐํ˜• ํƒ€์ž… enum ์ž๋ฐ”์—์„œ enum์€ **์—ด๊ฑฐํ˜• ํƒ€์ž… (enumeration type)**์œผ๋กœ, ์„œ๋กœ ๊ด€๋ จ๋œ ์ƒ์ˆ˜๋“ค์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์š”์ผ, ๋ฐฉํ–ฅ, ์ƒํƒœ ๋“ฑ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ณ ์ •๋œ ๊ฐ’๋“ค์„ ํ‘œํ˜„ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.โœ… 1. enum์ด๋ž€?enum์€ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.enum์œผ๋กœ ์ •์˜๋œ ๊ฐ’๋“ค์€ ์•”๋ฌต์ ์œผ๋กœ final์ด๋ฉด์„œ static, ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•:public class EnumExample { public enum Season { SPRING, SUMMER, FALL, WINTER } public static void main(String[] args) { Season now = Season.FALL.. 2025. 9. 6.
[java] Map-HashMap, LinkedHashMap, TreeMap โœ… ์ž๋ฐ” Map ์ธํ„ฐํŽ˜์ด์Šค ์ฃผ์š” ๊ตฌํ˜„์ฒด ๋น„๊ต ๊ตฌ๋ถ„ HashMapLinkedHashMapTreeMapHashtable (๋ ˆ๊ฑฐ์‹œ)๊ธฐ๋ณธ ๊ตฌ์กฐํ•ด์‹œ ํ…Œ์ด๋ธ”ํ•ด์‹œ ํ…Œ์ด๋ธ” + ์ž…๋ ฅ ์ˆœ์„œ ์œ ์ง€์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ (Red-Black Tree)ํ•ด์‹œ ํ…Œ์ด๋ธ”์ •๋ ฌ ์—ฌ๋ถ€โŒ ์—†์Œ (์ˆœ์„œ ๋ถˆํ™•์ •)โœ… ์ž…๋ ฅํ•œ ์ˆœ์„œ ์œ ์ง€โœ… ํ‚ค ๊ธฐ์ค€ ์ž๋™ ์ •๋ ฌ (Comparable or Comparator)โŒ ์—†์Œ (์ˆœ์„œ ๋ถˆํ™•์ •)null ํ—ˆ์šฉ ์—ฌ๋ถ€โœ… null ํ‚ค 1๊ฐœ, null ๊ฐ’ ์—ฌ๋Ÿฌ ๊ฐœ ํ—ˆ์šฉโœ… ๋™์ผโŒ null ํ‚ค ํ—ˆ์šฉ ์•ˆ ํ•จโŒ null ํ‚ค/๊ฐ’ ๋ชจ๋‘ ํ—ˆ์šฉ ์•ˆ ํ•จ๋™๊ธฐํ™” (Thread-safe)โŒ ๋น„๋™๊ธฐํ™”โŒ ๋น„๋™๊ธฐํ™”โŒ ๋น„๋™๊ธฐํ™”โœ… ๋‚ด๋ถ€์ ์œผ๋กœ ๋™๊ธฐํ™”๋จ (์„ฑ๋Šฅ ๋‚ฎ์Œ)์„ฑ๋Šฅ๋น ๋ฆ„ (O(1) ํ‰๊ท )์•ฝ๊ฐ„ ๋А๋ฆผ (์ˆœ์„œ ๊ด€๋ฆฌ ๋น„์šฉ)๋А๋ฆผ (O(log N))๊ฐ€์žฅ ๋А๋ฆผ๋ ˆ๊ฑฐ์‹œ ์—ฌ๋ถ€โœ… .. 2025. 5. 2.
[java] Set-HashSet, LinkedHashSet, TreeSet Set์€ ๋ฐฐ์—ด์„ ์ค‘๋ณต์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.Set์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด addํ•˜๋ฉด ๋œ๋‹ค. ๊ตฌ๋ถ„ HashSet LinkedHashSetTreeSet์ค‘๋ณต ์ œ๊ฑฐโœ… ๊ฐ€๋Šฅโœ… ๊ฐ€๋Šฅโœ… ๊ฐ€๋Šฅ์ •๋ ฌ ์ˆœ์„œ ์œ ์ง€โŒ ์ˆœ์„œ ์—†์Œ (๋ฌด์ž‘์œ„)โœ… ์ž…๋ ฅํ•œ ์ˆœ์„œ ์œ ์ง€โœ… ์˜ค๋ฆ„์ฐจ์ˆœ์†๋„O(1)๋กœ ๋ณดํ†ต ๋” ๋น ๋ฆ„O(1)๋กœ ์•ฝ๊ฐ„ ๋А๋ฆผ (์ˆœ์„œ ์œ ์ง€ ์˜ค๋ฒ„ํ—ค๋“œ)O(log N) (์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜)์‚ฌ์šฉ ๋ชฉ์ ์ˆœ์„œ ์ƒ๊ด€์—†๋Š” ์ค‘๋ณต ์ œ๊ฑฐ์ค‘๋ณต ์ œ๊ฑฐ + ์ž…๋ ฅ ์ˆœ์„œ ์œ ์ง€ ํ•„์š” ์‹œ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ์ด ํ•„์š”ํ•  ๋•Œ (์˜ˆ: ์ˆœ์œ„, ์ •๋ ฌ ์ถœ๋ ฅ) ์ค‘๋ณต์ œ๊ฑฐ (์ˆœ์„œํ•„์š”)์˜ˆ์‹œ:import java.util.*;String[] arr = {"apple", "banana", "apple", "orange", "banana"};Set set = new LinkedHashSet(Arrays.asLi.. 2025. 5. 2.
[java] switch/case ๋ฌธ switch/case ๊ตฌ์กฐ๋ฌธ:switch(์ž…๋ ฅ๋ณ€์ˆ˜) { case ์ž…๋ ฅ๊ฐ’1: ... break; case ์ž…๋ ฅ๊ฐ’2: ... break; ... default: ... break;}if-else if-else๋ฌธ์„ switch๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.break๋ฅผ ์“ฐ๋ฉด ํ•ด๋‹น case๋งŒ ์‹คํ–‰ํ•˜๊ณ  swich๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ€๊ณ , ๋งŒ์•ฝ break๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ฐธ์ธ ๊ฒƒ ์•„๋ž˜ case๋“ค ๋‹ค ์‹คํ–‰๋œ๋‹ค.default๋ฌธ์€ ์ƒ๋žต๊ฐ€๋Šฅํ•˜๊ณ  ์‚ฌ์šฉํ•  ์‹œ case๋ฌธ์„ ์‹คํ–‰ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฌด์กฐ๊ฑด ์‹คํ–‰๋œ๋‹ค. Java์—์„œ switch ๋ฌธ์—์„œ break ๋ฌธ์ด ์žˆ์„ ๋•Œ์™€ ์—†์„ ๋•Œ์˜ ๋™์ž‘ ์ฐจ์ดโœ… break๊ฐ€ ์žˆ์„ ๋•Œint num = 2;switch (num) { case 1: .. 2025. 5. 2.
[java] ์ดํด๋ฆฝ์Šค ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ Ctrl + D : ํ•œ์ค„์‚ญ์ œCtrl + Alt + ↑, ↓ : ํ•œ์ค„ ์œ„ ๋˜๋Š” ์•„๋ž˜๋กœ ๋ณต๋ถ™ Alt + ↑, ↓ : ํ–‰ ์ด๋™Ctrl + I : ์ž๋™ ์ค„ ๋งž์ถคCtrl + / : ํ•œ์ค„ ์ฃผ์„ ์ฒ˜๋ฆฌCtrl + F11 : ์‹คํ–‰(Run)Ctrl + Shift + O : ์ž๋™ import(ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์ถ”๊ฐ€)F11 : ๋””๋ฒ„๊น…Ctrl + Shift + B: ํ† ๊ธ€ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ 2025. 5. 2.
[java] ์‚ผํ•ญ์—ฐ์‚ฐ์ž Java์—์„œ๋Š” if-else๋ฌธ์„ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ํ•œ ์ค„๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.๋จผ์ €, ์‚ผํ•ญ์—ฐ์‚ฐ์ž์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์กฐ๊ฑด์‹ ? ์ฐธ์ผ๋•Œ๊ฐ’ : ๊ฑฐ์ง“์ผ๋•Œ๊ฐ’;์˜ˆ์‹œ:int number = 4;String result = (number % 2 == 0) ? "์ง์ˆ˜" : "ํ™€์ˆ˜";System.out.println(result); // ์ง์ˆ˜ Java์—์„œ๋Š” if-else if-else if-else์™€ ๊ฐ™์€ ๋‹ค์ค‘ if๋ฌธ์„ ์ค‘์ฒฉ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ํ•œ ์ค„๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.์ค‘์ฒฉ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๊ตฌ์กฐ:์กฐ๊ฑด1 ? ๋ฐ˜ํ™˜๊ฐ’1 : ์กฐ๊ฑด2 ? ๋ฐ˜ํ™˜๊ฐ’2 : ์กฐ๊ฑด3 ? ๋ฐ˜ํ™˜๊ฐ’3 : ๊ธฐ๋ณธ๊ฐ’;์˜ˆ์‹œ:int score = 85;String grade = (score >= 90) ? "A" : (score >= .. 2025. 4. 9.
[java] JVM ๋™์ž‘ ๋ฐฉ์‹ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํŒŒ์ผ๊ณผ์ •์„ ํ†ตํ•ด ๊ธฐ๊ณ„์–ด๋กœ ์ž‘์„ฑ๋œ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•œ๋‹ค. ํ•˜์ง€๋งŒ JAVA๋Š” ์ด์™€ ๋‹ฌ๋ฆฌ OS์™€ ๋…๋ฆฝ์ ์ธ ํŠน์ง•์œผ๋กœ ์ธํ•ด, ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๊ธฐ๊ณ„์–ด๊ฐ€ ์•„๋‹Œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋œ .class ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์—ญํ• ์€ ์ž๋ฐ”์—์„œ ๋ˆ„๊ฐ€ ํ• ๊นŒ? ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ JVM(Java Virtual Machine)์˜ ์—ญํ• ์ด๋‹ค.JVM์€ OS์™€ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์—์„œ ์ปดํŒŒ์ผ๊ณผ์ •์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ(.java -> .class)๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด ์ž์„ธํ•œ ๊ณผ์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.JVM ๋™์ž‘ ๋ฐฉ์‹๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ(.java)๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.Build ๋ผ๋Š” ์ž‘์—…์„ ํ†ตํ•ด ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์˜ javac ๋ผ๋Š” ๋ช…๋ น์–ด๋กœ ๋ฐ”์ดํŠธ์ฝ”๋“œ์ธ .class ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.์ปดํŒŒ์ผ๋œ ๋ฐ”.. 2024. 12. 23.