Home
Dahyun's DEVLOG
Cancel

[Effective Java] Item 7

Effective Java - Item 7 πŸ’‘ λ‹€ μ“΄ 객체 μ°Έμ‘°λ₯Ό ν•΄μ œν•˜λΌ μžλ°”μ²˜λŸΌ 가비지 컬렉터λ₯Ό κ°–μΆ˜ μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 λ©”λͺ¨λ¦¬ 관리에 μ‹ κ²½ 쓰지 μ•Šμ•„λ„ λœλ‹€κ³  생각할 수 μžˆμ§€λ§Œ, μ ˆλŒ€ λ¬΄μ‹œν•΄μ„œλŠ” μ•ˆλœλ‹€. import java.util.Arrays; import java.util.EmptyStackException; public cl...

[Effective Java] Item 6

Effective Java - Item 6 πŸ’‘ λΆˆν•„μš”ν•œ 객체 생성을 ν”Όν•˜λΌ λ˜‘κ°™μ€ κΈ°λŠ₯의 객체λ₯Ό μ—¬λŸ¬ 번 μƒμ„±ν•˜λŠ” 것보닀 μž¬μ‚¬μš©ν•˜λŠ” 것이 μ„±λŠ₯ ν–₯상에 도움이 될 수 μžˆλ‹€. 특히 λΆˆλ³€ κ°μ²΄λŠ” μ–Έμ œλ“  μž¬μ‚¬μš©ν•  수 μžˆλ‹€. String s1 = new String(”homework!”); // ν•˜μ§€ 말아야 ν•  μ½”λ“œ String s2 = "home...

[Effective Java] Item 5

Effective Java - Item 5 πŸ’‘ μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ λ§Žμ€ ν΄λž˜μŠ€κ°€ ν•˜λ‚˜ μ΄μƒμ˜ μžμ›μ— μ˜μ‘΄ν•œλ‹€. μ΄νŽ™ν‹°λΈŒ μžλ°”μ—μ„œλŠ” λ§žμΆ€λ²• 검사기λ₯Ό μ˜ˆμ‹œλ‘œ μ„€λͺ…ν•˜κ³  μžˆλŠ”λ°, μ—¬κΈ°μ„œ λ§žμΆ€λ²• 검사기(SpellChecker)λŠ” 사전(Dictionary)에 μ˜μ‘΄ν•˜κ³  있고, 정적 μœ ν‹Έλ¦¬ν‹° ν΄λž˜μŠ€λ‚˜ μ‹±κΈ€ν„΄ νŒ¨ν„΄μœΌλ‘œ κ΅¬ν˜„...

[Effective Java] Item 4

Effective Java - Item 4 πŸ’‘ μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ β“μΈμŠ€ν„΄μŠ€ν™”λž€ λ©”μ†Œλ“œμ™€ λ³€μˆ˜λ₯Ό λͺ¨μ•„놓은 것에 λΆˆκ³Όν•œ 클래슀λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄λ‹Ή 클래슀 νƒ€μž…μ˜ 객체λͺ…을 μ„ μ–Έν•˜κ³  값을 λ„£μ–΄ ν•΄λ‹Ή 클래슀의 λ³€μˆ˜λ‚˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš© κ°€λŠ₯ν•œ μƒνƒœλ‘œ λ§Œλ“œλŠ” 것 κΈ°λ³Έ νƒ€μž… κ°’μ΄λ‚˜ λ°°μ—΄ κ΄€λ ¨ λ©”μ„œλ“œλ₯Ό λͺ¨μ•„...

[Effective Java] Item 3

Effective Java - Item 3 πŸ’‘ private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ ❓ μ‹±κΈ€ν„΄(singleton) 객체의 μœ μΌμ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό 였직 ν•˜λ‚˜λ§Œ 생성할 수 μžˆλŠ” νŒ¨ν„΄μ„ μ˜λ―Έν•œλ‹€. 일반적으둜 μ‹±κΈ€ν„΄ 객체에 λŒ€ν•œ μ°Έμ‘°λ₯Ό public static ν•„λ“œλ‚˜ public static λ©”μ„œλ“œλ‘œ λ…ΈμΆœν•˜κΈ° λ•Œλ¬Έ...

[Effective Java] Item 2

Effective Java - Item 2 πŸ’‘ μƒμ„±μžμ— λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ 정적 νŒ©ν† λ¦¬μ™€ μƒμ„±μžλŠ” 선택적 λ§€κ°œλ³€μˆ˜κ°€ λ§Žμ„ λ•Œμ—λŠ” λŒ€μ‘ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” λ™μΌν•œ μ œμ•½μ΄ μ‘΄μž¬ν•œλ‹€. 이런 문제의 ν•΄κ²°μ±…μœΌλ‘œ μ„Έ 가지 νŒ¨ν„΄μ„ λ“€ 수 μžˆλŠ”λ°, λ°”λ‘œ 점측적 μƒμ„±μž νŒ¨ν„΄, μžλ°”λΉˆμ¦ˆ νŒ¨ν„΄ 그리고 λΉŒλ” νŒ¨ν„΄μ΄λ‹€. ❓ 점측적 μƒμ„±μž νŒ¨ν„΄ (Telesc...

[Effective Java] Item 1

Effective Java - Item 1 πŸ’‘ μƒμ„±μž λŒ€μ‹  정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ ❓ 정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œ(Static Factory Method)λž€? 였직 클래슀의 μΈμŠ€ν„΄μŠ€λ§Œμ„ λ°˜ν™˜ν•˜κΈ° μœ„ν•΄ μ •μ˜λœ 정적 λ©”μ†Œλ“œλ₯Ό 정적 νŒ©ν† λ¦¬ λ©”μ†Œλ“œλΌκ³  ν•œλ‹€. μ½”λ“œ public final class LocalTime ...

[Java] Comparable κ³Ό Comparator

Comparable κ³Ό Comparator πŸ’‘ Javaμ—μ„œ 객체λ₯Ό μ •λ ¬ν•  수 μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€(interface)에 λŒ€ν•΄ ν•™μŠ΅ν•΄λ³΄μž Comparable java.lang νŒ¨ν‚€μ§€μ— μ†ν•΄μžˆμœΌλ©°, Comparable μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°˜λ“œμ‹œ μ„ μ–Έλ˜μ–΄ μžˆλŠ” compareTo(T o) λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜(Override) ν•΄μ•Όν•œλ‹€. ...

[OS] 병행 ν”„λ‘œμ„ΈμŠ€(2)

병행 ν”„λ‘œμ„ΈμŠ€ ν”„λ‘œμ„ΈμŠ€μ˜ μƒν˜Έν˜‘λ ₯ 곡톡 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ„œλ‘œ ν˜‘λ™ν•˜λŠ” 경우 μƒμ‚°μž/μ†ŒλΉ„μž 문제, νŒλ…κΈ°/기둝기 문제 μƒμ‚°μž/μ†ŒλΉ„μž 문제 μœ ν•œ 버퍼 문제 μƒμ‚°μž : 버퍼에 데이터λ₯Ό μ±„μš°λŠ” ν”„λ‘œμ„ΈμŠ€ μ†ŒλΉ„μž : 버퍼에 μžˆλŠ” 데이터λ₯Ό μ½μ–΄λ‚΄λŠ” ν”„λ‘œμ„ΈμŠ€ μƒμ‚°μž ν”„λ‘œμ„ΈμŠ€ repeat P...

[OS] μƒν˜Έ 배제 μ•Œκ³ λ¦¬μ¦˜

μƒν˜Έ 배제 μ•Œκ³ λ¦¬μ¦˜ SW solutions Dekker’s algorithm 두 개의 ν”„λ‘œμ„ΈμŠ€ κ°„ μƒν˜Έ 배제λ₯Ό 보μž₯ν•˜λŠ” 졜초의 μ•Œκ³ λ¦¬μ¦˜ Flag : μž„κ³„ ꡬ역에 λ“€μ–΄κ°€μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œλ €μ£ΌλŠ” λ³€μˆ˜ Turn : μ–΄λŠ ν”„λ‘œμ„ΈμŠ€κ°€ μž„κ³„ μ˜μ—­μ— λ“€μ–΄κ°€κ² λ‹€κ³  μš”κ΅¬ν•  κΆŒν•œμ΄ μžˆλŠ”μ§€ μ•Œλ €μ£ΌλŠ” λ³€μˆ˜ ...