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

πŸ—£ Language에 ν•΄λ‹Ήν•˜λŠ” κΈ€λ“€

47 Articles matched
λͺ©λ‘μ΄ μ—†μŠ΅λ‹ˆλ‹€.
[JAVA] 슀트림(Stream) 1. 슀트림(Stream)? λ§Žμ€ 수의 데이터λ₯Ό λ‹€λ£° λ•Œ forλ¬Έμ΄λ‚˜ Iteratorλ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ™”λ‹€. λ˜ν•œ λ°μ΄ν„°μ˜ ν˜•νƒœλ§ˆλ‹€ λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ 닀뀄야 ν–ˆλ‹€. 예λ₯Όλ“€μ–΄, λ°μ΄ν„°μ˜ 정렬을 예둜 λ“€μžλ©΄ μ»¬λ ‰μ…˜ 클래슀 쀑 Listλ₯Ό μ •λ ¬ν•  λ•Œμ—λŠ” Collections.sort()λ₯Ό, 배열을 μ •λ ¬ν•  λ•ŒλŠ” Arrays.sort()λ₯Ό μ‚¬μš©ν•΄μ•Όν–ˆλ‹€. 같은 κΈ°λŠ₯이고 같은 λ©”μ„œλ“œμž„μ—λ„ λ‹€λ₯΄κ²Œ ν˜ΈμΆœμ„ ν•΄μ•Όλ§Œ ν–ˆλ‹€. μ΄λŸ¬ν•œ λ¬Έμ œμ λ“€μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ§Œλ“  것이 λ°”λ‘œ μžλ°” 8λΆ€ν„° λ“±μž₯ν•œ 슀트림(Stream)이닀. μ–΄λ–€ 데이터이든 같은 λ°©μ‹μœΌλ‘œ λ‹€λ£° 수 있게 λ§Œλ“ κ²ƒμ΄λ‹€. μŠ€νŠΈλ¦Όμ„ μ΄μš©ν•˜λ©΄, λ°°μ—΄μ΄λ‚˜ μ»¬λ ‰μ…˜λΏλ§Œ μ•„λ‹ˆλΌ νŒŒμΌμ— μ €μž₯된 데이터도 λͺ¨λ‘ 같은 λ°©μ‹μœΌλ‘œ λ‹€λ£° 수 있기 λ•Œλ¬Έμ— μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ 높아진닀. 예제λ₯Ό 보면..
[JAVA] μ»¬λ ‰μ…˜ 클래슀 (Map) μ»¬λ ‰μ…˜ 클래슀 HashMap HashMapκ³Ό Hashtable의 κ΄€κ³„λŠ” ArrayList와 Vector의 관계와 κ°™μ•„μ„œ Hashtableλ³΄λ‹€λŠ” μƒˆλ‘œμš΄ 버전인 HashMap을 μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€. λ‘˜λ‹€ MapμΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받아 κ΅¬ν˜„λ˜μ–΄ 데이터λ₯Ό 킀와 κ°’μœΌλ‘œ κ΄€λ¦¬ν•˜λŠ” μžλ£Œκ΅¬μ‘°μ΄λ‹€. 큰 νŠΉμ§•μœΌλ‘œλŠ” ν‚€(Key)κ°€ 데이터λ₯Ό μΆ”μΆœν•  λ•Œ κ΅¬λΆ„μžλ‘œ ν™œμš©ν•˜λŠ” 방식을 μ·¨ν•˜λŠ”λ° μ΄λŠ” 리슀트 μΈν„°νŽ˜μ΄μŠ€μ™€ 같은 μžλ£Œκ΅¬μ‘°λ³΄λ‹€ 탐색에 μžˆμ–΄μ„œ 더 높은 νš¨μœ¨μ„ κΈ°λŒ€ν•  수 μžˆλ‹€. μ±…μ—λŠ” HashMap에 λŒ€ν•΄μ„œλ§Œ μ„€λͺ…이 λ˜μ–΄ μžˆλŠ”λ° λ‘˜μ˜ 차이점을 κ°„λ‹¨νžˆ μ‚΄νŽ΄λ³΄κ³  λ„˜μ–΄κ°€μž, HashMapκ³Ό Hashtable의 차이 λ‘˜μ˜ 차이점으둜 동기화λ₯Ό λ“€ 수 μžˆλ‹€. HashMap의 경우 동기화λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€. 반면 닀쀑 μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ Has..
[JAVA] λžŒλ‹€μ‹ (Lambda Expression) μžλ°”κ°€ 1996년에 처음 λ“±μž₯ν•œ μ΄ν›„λ‘œ 두 번의 큰 λ³€ν™”κ°€ μžˆμ—ˆλŠ”λ°, ν•œλ²ˆμ€ JDK 1.5λΆ€ν„° μΆ”κ°€λœ μ§€λ„€λ¦­μŠ€(generics)의 λ“±μž₯이고, 또 ν•œ λ²ˆμ€ JDK 1.8λΆ€ν„° μΆ”κ°€λœ λžŒλ‹€μ‹(lambda expression)의 λ“±μž₯이닀. 이 두 가지 μƒˆλ‘œμš΄ 변화에 μ˜ν•΄ μžλ°”λŠ” 더 이상 μ˜ˆμ „μ˜ μžλ°”κ°€ μ•„λ‹ˆκ²Œ λ˜μ—ˆλ‹€. 특히 JDK 1.8λΆ€ν„° λ“±μž₯ν•œ λžŒλ‹€μ‹μœΌλ‘œ 인해 μžλ°”λŠ” 객체지ν–₯언어인 λ™μ‹œμ— ν•¨μˆ˜ν˜• μ–Έμ–΄κ°€ λ˜μ—ˆλ‹€. λžŒλ‹€μ‹μ΄λž€? κ°„λ‹¨νžˆ λ§ν•΄μ„œ λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜μ˜ 식(expression)으둜 ν‘œν˜„ν•œ 것이닀. ν•¨μˆ˜λ₯Ό κ°„λž΅ν•˜λ©΄μ„œλ„ λͺ…ν™•ν•œ μ‹μœΌλ‘œ ν‘œν˜„ν•  수 있게 ν•΄μ€€λ‹€. 이전에 λ‚΄λΆ€ 클래슀λ₯Ό μ •λ¦¬ν•˜λ©΄μ„œ 읡λͺ… ν•¨μˆ˜(anonymous function) μ–ΈκΈ‰ν•  λ•Œ 같이 κ°€λ³κ²Œ μ‚΄νŽ΄λ΄€λ“―μ΄ λžŒλ‹€μ‹λ„ 읡λͺ…ν•¨μˆ˜μ΄λ‹€. λ©”μ„œλ“œλ₯Ό λžŒλ‹€μ‹μœΌλ‘œ ..
[JAVA] μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬(Collection Framework) μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬(Collection Framework)μžλ°”μ—μ„œ μ»¬λ ˆμ…˜ ν”„λ ˆμž„μ›Œν¬μ΄λž€, λ‹€μˆ˜μ˜ 데이터λ₯Ό 쉽고 효과적으둜 μ²˜λ¦¬ν•  수 μžˆλŠ” ν‘œμ€€ν™”λœ 방법을 μ œκ³΅ν•˜λŠ” 클래슀의 집합을 μ˜λ―Έν•œλ‹€. λ‹€μ‹œ 말해 데이터λ₯Ό μ €μž₯ν•˜λŠ” 자료 ꡬ쑰와 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ κ΅¬μ‘°ν™”ν•˜μ—¬ 클래슀둜 κ΅¬ν˜„ν•΄ 놓은 것이닀. JDK 1.2 μ΄μ „κΉŒμ§€λŠ” Vector, Hashtable, Properties와 같은 μ»¬λ ‰μ…˜ ν΄λž˜μŠ€λ“€μ„ μ„œλ‘œ 각자 λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•΄μ•Ό ν–ˆμœΌλ‚˜ JDK 1.2λΆ€ν„° μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›μ΄ λ“±μž₯ν•˜λ©΄μ„œ λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ μ»¬λ ‰μ…˜ ν΄λž˜μŠ€κ°€ μΆ”κ°€λ˜κ³  λͺ¨λ“  μ»¬λ ‰μ…˜ 클래슀λ₯Ό ν‘œμ€€ν™”λœ λ°©μ‹μœΌλ‘œ λ‹€λ£° 수 μžˆλ„λ‘ μ²΄κ³„ν™”λ˜μ—ˆλ‹€. μ΄λŸ¬ν•œ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ€ μžλ°”μ˜ μΈν„°νŽ˜μ΄μŠ€(interface)λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λœλ‹€. μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ˜ 핡심 인..
[JAVA] λ‚΄λΆ€ν΄λž˜μŠ€ λ‚΄λΆ€ 클래슀의 μ’…λ₯˜ λ‚΄λΆ€ ν΄λž˜μŠ€λŠ” 클래슀 μ•ˆμ— λ‹€λ₯Έ 클래슀λ₯Ό μ„ μ–Έν•˜κ³  ν™œμš©ν•˜λŠ” 것인데 μ΄λŠ” λ©€λ²„λ³€μˆ˜μ™€ 같이 μ„ μ–Έλ˜λŠ” μœ„μΉ˜μ— λ”°λΌμ„œ μ’…λ₯˜κ°€ λ‚˜λ‰œλ‹€. μ‚¬μš©λ˜λŠ”κ²ƒλ„ λ©€λ²„λ³€μˆ˜μ™€ λΉ„μŠ·ν•˜λ‹€. (JDK 1.1 이후에 μΆ”κ°€λœ κΈ°λŠ₯)λ‚΄λΆ€ν΄λž˜μŠ€λŠ” 주둜 AWTλ‚˜ Swingκ³Ό 같은 GUIμ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 이벀트처리 μ™Έμ—λŠ” 잘 μ‚¬μš©ν•˜μ§€ μ•Šμ„ μ •λ„λ‘œ μ‚¬μš©λΉˆλ„κ°€ 높지 μ•ŠκΈ° λ•Œλ¬Έμ— λ‚΄λΆ€ 클래슀의 κΈ°λ³Έ 원리와 νŠΉμ§•μ„ μ΄ν•΄ν•˜λŠ” μ •λ„κΉŒμ§€λ§Œ ν•™μŠ΅ν•΄λ„ μΆ©λΆ„ν•˜λ‹€. λ‚΄λΆ€ 클래슀의 μ’…λ₯˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€1. 멀버 λ‚΄λΆ€ 클래슀- 멀버 λ³€μˆ˜ μ„ μ–Έν•˜λŠ” μœ„μΉ˜μ— μ •μ˜ν•˜λŠ” λ‚΄λΆ€ 클래슀- μ™ΈλΆ€ 클래슀의 μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜μ–΄μ•Όλ§Œ 객체 생성 κ°€λŠ₯- 주둜 μΈμŠ€ν„΄μŠ€ 멀버듀과 κ΄€λ ¨λœ μž‘μ—…μ— μ‚¬μš©λ  λͺ©μ μœΌλ‘œ μ„ μ–Έ2. static λ‚΄λΆ€ 클래슀 (μ€‘μ²©ν΄λž˜μŠ€)- 멀버 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ”..
[JAVA] λ‹€ν˜•μ„± λ‹€ν˜•μ„±μ΄λž€? μžλ°”μ—μ„œ λ‹€ν˜•μ„±μ€ 객체지ν–₯ κ°œλ…μ˜ μ€‘μš”ν•œ νŠΉμ§• 쀑 ν•˜λ‚˜λ‹€. λ‹€ν˜•μ„±μ΄λž€ 'μ—¬λŸ¬ 가지 ν˜•νƒœλ₯Ό κ°€μ§ˆ 수 μžˆλŠ” λŠ₯λ ₯'을 λ§ν•œλ‹€. κ°€μž₯ μ‰¬μš΄ λ‹€ν˜•μ„±μ˜ μ˜ˆμ œλ‘œλŠ” μ§€λ‚œ μ‹œκ°„ μ •λ¦¬ν–ˆλ˜ μ˜€λ²„λ‘œλ”©μ΄ μžˆλ‹€. λ˜ν•œ μžλ°”μ—μ„œλŠ” ν•œ νƒ€μž…μ˜ μ°Έμ‘°λ³€μˆ˜λ‘œ μ—¬λŸ¬ νƒ€μž…μ˜ 객체λ₯Ό μ°Έμ‘°ν•  수 μžˆλ„λ‘ ν•¨μœΌλ‘œμ¨ λ‹€ν˜•μ„±μ„ ν”„λ‘œκ·Έλž¨μ μœΌλ‘œ κ΅¬ν˜„ν•˜μ˜€λ‹€. μ‰½κ²Œ λ§ν•΄μ„œ λΆ€λͺ¨ 클래슀 νƒ€μž…μ˜ μ°Έμ‘°λ³€μˆ˜λ‘œ μžμ‹ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μ°Έμ‘°ν•  수 μžˆλ„λ‘ ν•˜μ˜€λ‹€λŠ” 것이닀. 12345678910111213class Tv { boolean power; // 전원 μƒνƒœ (on/off) int channel; // 채널 void power() { power = !power } void channelUp() { ++channel; } void channelDown(..
[JAVA] μ˜€λ²„λΌμ΄λ”© 및 νŒ¨ν‚€μ§€ κ°œλ… 정리 μ˜€λ²„λΌμ΄λ”© μ €λ²ˆμ— λ†“μΉœ μ‘°κ±΄μœΌλ‘œλŠ” 쑰상 클래슀의 λ©”μ„œλ“œλ³΄λ‹€ λ§Žμ€ 수의 μ˜ˆμ™Έλ₯Ό μ„ μ–Έν•  수 μ—†λ‹€λŠ” 점. 예λ₯Όλ“€μ–΄ λ‹€μŒκ³Ό 같은 μ½”λ“œκ°€ μžˆλ‹€. 1234567891011Class Parent { void parentMethod() throws IOException, SQLException { }} Class Child extends Parent { void parentMethod() throws IOException { }}Colored by Color Scriptercs- μ˜¬λ°”λ₯Έ μ˜€λ²„λΌμ΄λ”© μ—¬κΈ°μ„œ λ¬Έμ œλŠ” λ‹¨μˆœνžˆ μ„ μ–Έλœ μ˜ˆμ™Έμ˜ κ°œμˆ˜κ°€ λ¬Έμ œκ°€ μ•„λ‹ˆλΌλŠ” 점이닀. 12345Class Child extends Parent { void parentMethod() throws Exception { }}Colored by C..
[JAVA] μ˜€λ²„λ‘œλ”© κ°œλ… (feat.μ˜€λ²„λΌμ΄λ”©) JAVA μ˜€λ²„λ‘œλ”© μžλ°”μ—μ„œλŠ” ν•œ 클래슀 내에 이미 μ‚¬μš©ν•˜λ €λŠ” 이름과 같은 이름을 가진 λ©”μ„œλ“œκ°€ μžˆλ”λΌλ„ λ§€κ°œλ³€μˆ˜μ˜ 개수 λ˜λŠ” νƒ€μž…μ΄ λ‹€λ₯΄λ©΄, 같은 이름을 μ‚¬μš©ν•΄μ„œ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•  수 μžˆλ‹€. 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•œλ‹€κ³  ν•΄μ„œ 무쑰건 μ˜€λ²„λ‘œλ”©μ€ μ•„λ‹ˆκ³  λ‹€μŒκ³Ό 같은 쑰건을 λ§Œμ‘±ν•΄μ•Ό μ˜€λ²„λ‘œλ”©μ΄ μ„±λ¦½ν•œλ‹€. 1. λ©”μ„œλ“œμ˜ 이름이 κ°™μ•„μ•Ό ν•œλ‹€. 2.* λ§€κ°œλ³€μˆ˜μ˜ 개수 λ˜λŠ” νƒ€μž…μ΄ 달라야 ν•œλ‹€. μ—­μ§€μ‚¬μ§€λ‘œ 컴파일러의 μž…μž₯이 λ˜μ—ˆμ„ λ•Œ 이름이 같은 λ©”μ„œλ“œμ— λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜λ‚˜ νƒ€μž…μ΄ κ°™λ‹€λ©΄ μ„œλ‘œ ꡬ별이 λ˜μ§€ μ•Šμ„ 것이닀. 즉, 쀑볡 μ •μ˜κ°€ λ˜μ–΄ 버린닀. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μœ„μ˜ 쑰건을 λ§Œμ‘±ν•΄μ•Ό μ˜€λ²„λ‘œλ”©λœ λ©”μ„œλ“œλ“€μ΄ λ§€κ°œλ³€μˆ˜μ— μ˜ν•΄μ„œ ꡬ별이 될 수 μžˆλ‹€. * λ°˜ν™˜ νƒ€μž…μ€ μ˜€λ²„λ‘œλ”©μ„ κ΅¬ν˜„ν•˜λŠ”λ° μ•„λ¬΄λŸ° 영ν–₯을 주지 μ•ŠλŠ”λ‹€. μ˜€λ²„..