λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λ°˜μ‘ν˜•

Java

[Java] μžλ°”λž€? μžλ°”λž€? μ²˜μŒλΆ€ν„° 객체 지ν–₯μ–Έμ–΄λ‘œ 개발된 ν”„λ‘œκ·Έλž˜λ° 언어이닀. μžλ°” 가상 λ¨Έμ‹ (JVM)을 μ‚¬μš©ν•˜μ—¬, μš΄μ˜μ²΄μ œμ™€λŠ” λ…λ¦½μ μœΌλ‘œ λ™μž‘ν•  수 μžˆλ‹€. ⇒ μžλ°”λŠ” μ–΄λŠ μš΄μ˜μ²΄μ œμ—μ„œλ‚˜ 같은 ν˜•μ±„λ‘œ 싀행될 수 μžˆλ‹€. μ „ μ„Έκ³„μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 쀑 ν•˜λ‚˜μ΄λ‹€. https://www.tiobe.com/tiobe-index/ (TIOBE μ–Έμ–΄ μˆœμœ„ ) μžλ°”μ˜ νŠΉμ§• μž₯점 μš΄μ˜μ²΄μ œμ™€λŠ” λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆλ‹€. λΆˆν•„μš”ν•œ κΈ°λŠ₯을 과감히 μ œκ±°ν•˜μ—¬ λ‹€λ₯Έ 언어에 λΉ„ν•΄ λ°°μš°κΈ°κ°€ 쉽닀. μžλ™ λ©”λͺ¨λ¦¬ 관리 등을 μ§€μ›ν•˜μ—¬ λ‹€λ₯Έ 언어에 λΉ„ν•΄ μ•ˆμ •μ„±μ΄ λ†’λ‹€. μ—°μ‚°μž μ˜€λ²„λ‘œλ”©μ„ κΈˆμ§€ν•˜κ³  μ œλ„€λ¦­μ„ λ„μž…ν•¨μœΌλ‘œμ¨ μ½”λ“œμ˜ 가독성을 λ†’μ˜€λ‹€. μˆ˜λ§Žμ€ μ°Έκ³  자료λ₯Ό 찾을 수 μžˆλ‹€. 단점 싀행을 μœ„ν•΄ μžλ°” 가상 머신을 거쳐야 ν•˜λ―€λ‘œ, λ‹€λ₯Έ .. 더보기
[Java] 슀트림(Stream) μŠ€νŠΈλ¦Όμ΄λž€? -> λ‹€μ–‘ν•œ 데이터 μ†ŒμŠ€(μ»¬λ ‰μ…˜, λ°°μ—΄…)λ₯Ό ν‘œμ€€ν™”λœ λ°©λ²•μœΌλ‘œ 닀루기 μœ„ν•œ 것 (JDK 1.8) -> μ»¬λ ‰μ…˜, 배열을 Stream을 ν†΅ν•΄μ„œ λͺ¨λ‘ 같은 λ°©μ‹μœΌλ‘œ 쀑간연산(n번)κ³Ό μ΅œμ’…μ—°μ‚°(1번)을 ν†΅ν•΄μ„œ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆλ‹€. 슀트림이 μ œκ³΅ν•˜λŠ” κΈ°λŠ₯ 슀트림 λ§Œλ“€κΈ° 쀑간 μ—°μ‚° (0~n번) μ΅œμ’… μ—°μ‚° (1번) 쀑간 μ—°μ‚° - μ—°μ‚° κ²°κ³Όκ°€ 슀트림인 μ—°μ‚°. 반볡적으둜 μ μš©κ°€λŠ₯ μ΅œμ’… μ—°μ‚° - μ—°μ‚° κ²°κ³Όκ°€ 슀트림이 μ•„λ‹Œ μ—°μ‚°. 단 ν•œλ²ˆλ§Œ μ μš©κ°€λŠ₯ (슀트림의 μš”μ†Œλ₯Ό μ†Œλͺ¨)= μ€‘λ³΅μ œκ±° -> 5개 자λ₯΄κΈ° -> μ •λ ¬ -> 좜λ ₯ stream.distinct().limit(5).sorted().forEach(System.out::println) 슀트림의 νŠΉμ§• 1.μŠ€νŠΈλ¦Όμ€ 데이터 μ†ŒμŠ€λ‘œλΆ€ν„° 데이터λ₯Ό μ½κΈ°λ§Œν•  뿐.. 더보기
[Java] μžλ°” μ»¬λ ‰μ…˜ Map Mapμ΄λž€? Map은 ν‚€(key)와 κ°’(value)으둜 이루어져 μžˆλŠ” μ»¬λ ‰μ…˜μ΄λ‹€. νŠΉμ§•μ€ μ•„λž˜μ™€ κ°™λ‹€. λͺ¨λ“  λ°μ΄ν„°λŠ” 킀와 값이 μ‘΄μž¬ν•œλ‹€. ν‚€κ°€ 없이 κ°’λ§Œ μ €μž₯될 μˆ˜λŠ” μ—†λ‹€. κ°’ 없이 ν‚€λ§Œ μ €μž₯ν•  μˆ˜λ„ μ—†λ‹€. ν‚€λŠ” ν•΄λ‹Ή Mapμ—μ„œ κ³ μœ ν•΄μ•Όλ§Œ ν•œλ‹€. 값은 Mapμ—μ„œ μ€‘λ³΅λ˜μ–΄λ„ 상관 μ—†λ‹€. Map λ©”μ†Œλ“œ 리턴 νƒ€μž… λ©”μ†Œλ“œ 이름 및 λ§€κ°œλ³€μˆ˜ μ„€λͺ… V put(K key, V value) 첫 번째 맀개 λ³€μˆ˜μΈ ν‚€λ₯Ό κ°–λŠ”, 두 번째 λ§€κ°œλ³€μˆ˜μΈ 값을 κ°–λŠ” 데이터λ₯Ό μ €μž₯ν•œλ‹€. V get(Object key) 킀에 ν•΄λ‹Ήν•˜λŠ” 값을 λ„˜κ²¨μ€€λ‹€. V remove(Object key) 킀에 ν•΄λ‹Ήν•˜λŠ” 값을 λ„˜κ²¨μ£Όλ©°, ν•΄λ‹Ή 킀와 값을 μ‚­μ œν•œλ‹€. Set keySet() ν‚€μ˜ λͺ©λ‘μ„ Set νƒ€μž…μœΌλ‘œ λ„˜κ²¨μ€€λ‹€. Collectio.. 더보기
[Java] μžλ°” μ»¬λ ‰μ…˜ Set μ…‹(Set)μ΄λž€? Set은 μˆœμ„œμ— 상관없이, μ–΄λ–€ 데이터가 μ‘΄μž¬ν•˜λŠ”μ§€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•œ μš©λ„λ‘œ 많이 μ‚¬μš©λœλ‹€. μ€‘λ³΅λ˜λŠ” 것을 λ°©μ§€ν•˜κ³ , μ›ν•˜λŠ” 값이 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” 것이 μ£Ό μš©λ„μ΄λ‹€. HashSet: μˆœμ„œκ°€ μ „ν˜€ ν•„μš” μ—†λŠ” 데이터λ₯Ό ν•΄μ‹œ ν…Œμ΄λΈ”μ— μ €μž₯ν•œλ‹€. Set 쀑에 κ°€μž₯ μ„±λŠ₯이 μ’‹λ‹€. TreeSet: μ €μž₯된 λ°μ΄ν„°μ˜ 값에 λ”°λΌμ„œ μ •λ ¬λ˜λŠ” 셋이닀. red-black 트리둜 값이 μ €μž₯되며, HashSet보닀 μ•½κ°„ μ„±λŠ₯이 λŠλ¦¬λ‹€. LinkedHashSet: μ—°κ²°λœ λͺ©λ‘ νƒ€μž…μœΌλ‘œ κ΅¬ν˜„λœ ν•΄μ‹œ ν…Œμ΄λΈ”μ— 데이터λ₯Ό μ €μž₯ν•œλ‹€. μ €μž₯된 μˆœμ„œμ— λ”°λΌμ„œ 값이 μ •λ ¬λœλ‹€. λŒ€μ‹  μ„±λŠ₯이 μ…‹ μ€‘μ—μ„œ κ°€λ‚­ λŠλ¦¬λ‹€. HashSet HashSet μ£Όμš” λ©”μ†Œλ“œ 리턴 νƒ€μž… λ©”μ†Œλ“œ 이름 및 맀개 λ³€μˆ˜ μ„€λͺ… boolean add(.. 더보기
[Java] String 클래슀 정리 String 클래슀 정리 μžλ°”μ˜ 신을 μ½μœΌλ©΄μ„œ λ‚˜μ˜¨ String 클래슀의 λ©”μ†Œλ“œλ₯Ό μ •λ¦¬ν–ˆλ‹€. 더 λ§Žμ€ λ©”μ†Œλ“œλ“€κ³Ό μžμ„Έν•œ μ„€λͺ…이 μžˆμ§€λ§Œ 많이 μ‚¬μš©ν•  것 같은 λ©”μ†Œλ“œλ“€ μœ„μ£Όλ‘œ μ •λ¦¬ν–ˆλ‹€. λ¬Έμžμ—΄μ˜ 길이λ₯Ό ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ λ¬Έμžμ—΄μ΄ λΉ„μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ λ¬Έμžμ—΄μ΄ 같은지 λΉ„κ΅ν•˜λŠ” λ©”μ†Œλ“œ νŠΉμ • 쑰건에 λ§žλŠ” λ¬Έμžμ—΄μ΄ μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ Stringλ‚΄μ—μ„œ μœ„μΉ˜λ₯Ό μ°Ύμ•„λ‚΄λŠ” λ©”μ†Œλ“œ Stringμ—μ„œ 일뢀λ₯Ό μΆ”μΆœν•˜λŠ”(μž˜λΌμ£ΌλŠ”) λ©”μ†Œλ“œ String 곡백을 μ—†μ• λŠ” λ©”μ†Œλ“œ String λ‚΄μš©μ„ κ΅μ²΄ν•˜λŠ” λ©”μ†Œλ“œ λŒ€μ†Œλ¬Έμžλ₯Ό λ°”κΎΈλŠ” λ©”μ†Œλ“œ κΈ°λ³Έ μžλ£Œν˜•μ„ λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜λŠ” λ©”μ†Œλ“œ StringBuffer와 StringBuilder λ¬Έμžμ—΄μ˜ 길이λ₯Ό ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ 리턴 νƒ€μž… λ©”μ†Œλ“œ 이름 및 맀개 λ³€μˆ˜ μ„€λͺ… int length() λ¬Έ.. 더보기
[Java] μƒμ†μ΄λž€? 상속 λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œλŠ” κΈ°λ³Έ μƒμ„±μžλ₯Ό λ§Œλ“€μ–΄ λ†“λŠ” 것 μ΄μ™Έμ—λŠ” 상속을 μœ„ν•΄μ„œ μ•„λ¬΄λŸ° μž‘μ—…μ„ ν•  ν•„μš”λŠ” μ—†λ‹€. μžμ‹ ν΄λž˜μŠ€λŠ” 클래슀 μ„ μ–Έμ‹œ extends λ‹€μŒμ— λΆ€λͺ¨ 클래슀 이름을 적어쀀닀. μžμ‹ 클래슀의 μƒμ„±μžκ°€ 호좜되면, μžλ™μœΌλ‘œ λΆ€λͺ¨ 클래슀의 맀개 λ³€μˆ˜ μ—†λŠ” μƒμ„±μžκ°€ μ‹€ν–‰λœλ‹€. μžμ‹ ν΄λž˜μŠ€μ—μ„œλŠ” λΆ€λͺ¨ ν΄λž˜μŠ€μ— μžˆλŠ” public, protected둜 μ„ μ–Έλœ λͺ¨λ“  μΈμŠ€ν„΄μŠ€ 및 클래슀 λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. μƒμ†μ˜ ν•„μš”μ„± μžλ°”μ—μ„œλŠ” λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ κ°–κ³  μžˆλŠ” λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό μƒμ†λ°›μŒμœΌλ‘œμ¨, κ°œλ°œν•  λ•Œ 이쀑, μ‚Όμ€‘μ˜ 일을 μ•ˆν•΄λ„ λœλ‹€. 예λ₯Όλ“€μ–΄, μ‚¬λžŒμ΄λΌλŠ” 클래슀λ₯Ό ν•™κ΅μ—μ„œ μ‚¬μš©ν•  λ•Œ, 기본적으둜 이름, μ „ν™”λ²ˆν˜ΈλŠ” κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•˜μ§€λ§Œ κ΅μˆ˜μ™€ 학생일 λ•Œ κ°€μ§ˆ 수 μžˆλŠ” 속성과 λ©”μ†Œλ“œκ°€ λ‹€λ₯Ό 수 μžˆλ‹€ 이.. 더보기
[Java] λ³€μˆ˜μ™€ μžλ£Œν˜• λ³€μˆ˜μ™€ μžλ£Œν˜• 1. λ³€μˆ˜μ˜ μ’…λ₯˜ μžλ°”μ—μ„œλŠ” λ„€ κ°€μ§€μ˜ λ³€μˆ˜κ°€ μžˆλ‹€. μ§€μ—­λ³€μˆ˜: μ€‘κ΄„ν˜Έ λ‚΄μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜ λ§€κ°œλ³€μˆ˜: λ©”μ†Œλ“œμ— λ„˜κ²¨μ£ΌλŠ” λ³€μˆ˜ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜: λ©”μ†Œλ“œ 밖에, 클래슀 μ•ˆμ— μ„ μ–Έλœ λ³€μˆ˜, μ•žμ—λŠ” static이 μ—†μ–΄μ•Ό ν•œλ‹€. 클래슀 λ³€μˆ˜: μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ²˜λŸΌ λ©”μ†Œλ“œ 밖에, 클래슀 μ•ˆμ— μ„ μ–Έλœ λ³€μˆ˜ μ€‘μ—μ„œ νƒ€μž… μ„ μ–Έ μ•žμ— static이 μžˆλŠ” λ³€μˆ˜ 각 λ³€μˆ˜μ˜ 생λͺ…μ£ΌκΈ°λŠ” λ‹€μŒκ³Ό κ°™λ‹€. μ§€μ—­λ³€μˆ˜: 지역 λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ μ€‘κ΄„ν˜Έ λ‚΄ λ§€κ°œλ³€μˆ˜: λ©”μ†Œλ“œκ°€ 호좜되고 λΆ€ν„° λ©”μ†Œλ“œκ°€ 끝날 λ•ŒκΉŒμ§€ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜: 객체가 μƒμ„±λ˜κ³ , κ·Έ 객체λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆλŠ” λ‹€λ₯Έ 객체가 없을 λ•ŒκΉŒμ§€ 클래슀 λ³€μˆ˜: ν΄λž˜μŠ€κ°€ 처음 ν˜Έμ€„λ˜κ³ , ν”„λ‘œκ·Έλž¨μ΄ 끝날 λ•ŒκΉŒμ§€ μžλ°”μ—μ„œλŠ” cλ‚˜ c++와 달리 가비지 μ½œλ ‰ν„°κ°€ λ•Œκ°€ 되면 μ•Œμ•„μ„œ λ³€μˆ˜λ₯Ό λ©”λͺ¨λ¦¬μ—μ„œ.. 더보기
[Java] μžλ°” ArrayList 정리 ArrayList ArrayListλž€? ArrayListλž€ Collection ν”„λ ˆμž„μ›Œν¬μ˜ 일뢀이면 java.util νŒ¨ν‚€μ§€μ— ν¬ν•¨λ˜μ–΄ μžˆλ‹€. μžλ°”μ—μ„œ arrayλŠ” κ³ μ •λœ 크기λ₯Ό κ°€μ§€μ§€λ§Œ ArrayListλŠ” κ°€λ³€μ μœΌλ‘œ λ³€ν•  수 μžˆλ‹€. 그리고 λ‹€μ–‘ν•œ λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ 데이터λ₯Ό 관리할 수 μžˆλ‹€. ArrayList 생성 java.util νŒ¨ν‚€μ§€μ— ν¬ν•¨λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ•„λž˜μ™€ 같이 import ν•΄μ€€λ‹€. import java.util.ArrayList; 그리고 μ›ν•˜λŠ” 데이터 νƒ€μž…μ„ μž…λ ₯ν•˜μ—¬ 생성해쀀닀. ArrayList arrayList = new ArrayList(); μœ„μ²˜λŸΌ Integerλ₯Ό μ‚¬μš©ν•  수 도 있고, String, Objectλ“± λ‹€μ–‘ν•œ 데이터 νƒ€μž…μ„ μ‚¬μš©ν•  수 μžˆλ‹€. 데이터 μ‚½μž… 데이터λ₯Ό μ‚½μž…ν•  λ•ŒλŠ” .. 더보기