μ 체 κΈ(658)
-
[μ΄νν°λΈ μλ°] Item6. λΆνμν κ°μ²΄ μμ±μ νΌνλΌ.
item06. λΆνμν κ°μ²΄ μμ±μ νΌνλΌ. βοΈ μ¬κΈ°μ μ£Όμν μ μ κ·Έλ₯ κ°μ²΄ μμ±μ νΌνλΌ! κ° μλλΌλ μ μ΄λ€. 1) λ¬Έμμ΄ public static void main(String[] args) { String hello = "hello"; String hello2 = new String("hello"); // μ΄ λ°©λ²μ κΆμ₯νμ§ μμ! -> λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ¬μ©νλ λ¨μ String hello3 = "hello"; System.out.println("hello == hello2 = " + (hello == hello2)); System.out.println("hello == hello3 = " + (hello == hello3)); } λ¬Έμμ΄μ μ¬μ©ν λλ λ³΄ν΅ μ²«λ²μ§Έ, μΈλ²μ§Έ λ°©μμ²λΌ λ¬Έμμ΄ λ¦¬ν°..
2023.01.18 -
[μ΄νν°λΈ μλ°] Item05 μ벽곡λ΅. μ€νλ§ IOC
item05. μμμ μ§μ λͺ μνμ§ λ§κ³ μμ‘΄κ°μ²΄μ£Όμ μ μ¬μ©νλΌ. " p30. μμ‘΄ κ°μ²΄κ° λ§μ κ²½μ°μ Dagger, Guice, μ€νλ§ κ°μ μμ‘΄ κ°μ²΄ μ£Όμ νλ μμν¬ λμ μ κ³ λ €ν μ μλ€." μ€νλ§ IoC (Inversion Of Control) : BeanFactory, ApplicationContext μ μ΄μ μμ μ΄λ μ°μ μκΈ° μ½λμ λν μ μ΄κΆμ μκΈ° μμ μ΄ κ°μ§κ³ μμ§ μκ³ μΈλΆμμ μ μ΄νλ κ²½μ°λ₯Ό λ§νλ€. λνμ μΈ μλ‘ μ€νλ§μ΄ μλλ° μ€νλ§ μ ν리μΌμ΄μ μμλ λΉμ μμ±κ³Ό μμ‘΄ κ΄κ³ μ€μ , μ¬μ©, μ κ±° λ±μ μμ μ μ ν리μΌμ΄μ μ½λ λμ μ€νλ§ μ»¨ν μ΄λκ° λ΄λΉνλ€. -> μ΄λ₯Ό μ€νλ§ μ»¨ν μ΄λκ° μ½λ λμ μ€λΈμ νΈμ λν μ μ΄κΆμ κ°κ³ μλ€κ³ ν΄μ IoCλΌκ³ νλ€. SpellChecker ..
2023.01.16 -
[μ΄νν°λΈ μλ°] Item05 μ벽곡λ΅. ν©ν°λ¦¬ λ©μλ ν¨ν΄
item05. μμμ μ§μ λͺ μνμ§ λ§κ³ μμ‘΄κ°μ²΄μ£Όμ μ μ¬μ©νλΌ. " p29. ν©ν°λ¦¬ λ©μλ ν¨ν΄" ν©ν°λ¦¬ λ©μλ ν¨ν΄ Factory Method Pattern μ΄λ? : κ°μ²΄μ§ν₯ λμμΈ ν¨ν΄μΌλ‘ Factory Methodλ λΆλͺ¨(μμ) ν΄λμ€μ μλ €μ§μ§ μμ ꡬ체 ν΄λμ€λ₯Ό μμ±νλ ν¨ν΄μ΄λ©°, μμ(νμ) ν΄λμ€κ° μ΄λ€ κ°μ²΄λ₯Ό μμ±ν μ§λ₯Ό κ²°μ νλλ‘ νλ ν¨ν΄μ΄κΈ°λ νλ€. κ°μ²΄λ₯Ό μμ±ν λ ꡬ체μ μΌλ‘ μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λ€ μ§ μλΈ ν΄λμ€μμ κ²°μ νκ² λλ€. (μΈμ€ν΄μ€μ μμ±μ μλΈν΄λμ€μ μμ) λ°λΌμ λΆλͺ¨ μΆμ ν΄λμ€λ μΈν°νμ΄μ€μλ§ μμ‘΄νκ³ μ€μ λ‘ μ΄λ€ ꡬν ν΄λμ€λ₯Ό νΈμΆν μ§λ μλΈ ν΄λμ€μμ ꡬννλ€. -> μλ‘μ΄ productλ₯Ό μ 곡νλ ν©ν°λ¦¬λ₯Ό μΆκ°νλλΌλ ν©ν°λ¦¬λ₯Ό μ¬μ©νλ ν΄λΌμ΄μΈνΈ ..
2023.01.16 -
[μ΄νν°λΈ μλ°] Item5. μμμ μ§μ λͺ μνμ§ λ§κ³ μμ‘΄ κ°μ²΄ μ£Όμ μ μ¬μ©νλΌ.
item05. μμμ μ§μ λͺ μνμ§ λ§κ³ μμ‘΄ κ°μ²΄ μ£Όμ μ μ¬μ©νλΌ. ν΄λμ€κ° λ΄λΆμ μΌλ‘ νλ μ΄μμ μμμ μμ‘΄νκ³ , κ·Έ μμμ΄ ν΄λμ€μ λμμ μν₯μ μ€λ€λ©΄ μ μ μ νΈλ¦¬ν° ν΄λμ€λ μ±κΈν€ λ°©μμ΄ μ ν©νμ§ μλ€. λ§μ ν΄λμ€κ° νλ μ΄μμ μμμ μμ‘΄νλλ° μ± μμ μμ λ‘λ λ§μΆ€λ² κ²μ¬κΈ°λ₯Ό μλ‘ λ€κ³ μλ€. λ§μΆ€λ² κ²μ¬κΈ°λ Dictionaryμ μμ‘΄νλ€κ³ κ°μ νλ€. 1) μ μ μ νΈλ¦¬ν° ν΄λμ€ public class SpellChecker { // μμμ μ§μ λͺ μν μ½λ (μμμ μ§μ μμ±νλ€, new λ‘ μμ± ) private static final Dictionary dictionary = new Dictionary(); private SpellChecker() { } public static boo..
2023.01.12 -
[μ΄νν°λΈ μλ°] Item4. μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νλΌ.
item04. μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νλΌ. μΈμ€ν΄μ€νλ₯Ό λ§μμΌ νλ μ±κ²©μ ν΄λμ€λ€μ΄ μ‘΄μ¬νλλ° κ·Έ μ€ λνμ μΈ? κ²μ΄ μ μ λ©μλλ§μ λ΄μ μ νΈλ¦¬ν° ν΄λμ€λ μΈμ€ν΄μ€λ‘ λ§λ€μ΄ μ°λ €κ³ μ€κ³ν ν΄λμ€κ° μλλ€. μΈμ€ν΄μ€ν λ§λ λ°©λ² 1) μΆμ ν΄λμ€λ‘ λ§λ€κΈ° public abstract class UtilityClass { public static String hello() { return "hello"; } } μ΄λ°μμΌλ‘ μΆμν΄λμ€λ‘ μ μΈν΄μ μΈμ€ν΄μ€ν νλ κ²μ λ§μ μλ μμ§λ§.. μ΄λ μλΈν΄λμ€λ‘ ν΄λΉ ν΄λμ€λ₯Ό μμλ°μΌλ©΄ μΈμ€ν΄μ€νλ₯Ό ν μ μκΈ° λλ¬Έμ μλ²½ν λ§μ μλ μλ€. 2) private μμ±μ μΆκ° μ± μμλ 1) λ°©λ²λ³΄λ€λ 2) λ°©λ²μ λ κΆμ₯νκ³ μλ€. μλ..
2023.01.11 -
[μ΄νν°λΈ μλ°] Item03 μ벽곡λ΅. μ§λ ¬ν Serializable
item03. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. " p24. μ§λ ¬ν, μμ§λ ¬ν, Serializable, transient" μ§λ ¬ν Serializable λ? : κ°μ²΄λ₯Ό λ°μ΄νΈμ€νΈλ¦ΌμΌλ‘ μνΈ λ³ννλ κΈ°μ μλ° μμ€ν λ΄λΆμμ μ¬μ©λλ κ°μ²΄ λλ λ°μ΄ν°λ₯Ό μΈλΆμ μλ° μμ€ν μμλ μ¬μ©ν μ μλλ‘ byte ννλ‘ λ°μ΄ν° λ³ννλ κΈ°μ μ΄κ³ , μμ§λ ¬νλ μ΄λ κ² byte λ‘ λ³νλ λ°μ΄ν°λ₯Ό λ€μ κ°μ²΄λ‘ λ³ννλ κΈ°μ μ λ§νλ€. JVMμ λ©λͺ¨λ¦¬μ μμ£Ό(ν λλ μ€ν) λμ΄ μλ κ°μ²΄ λ°μ΄ν°λ₯Ό λ°μ΄νΈ ννλ‘ λ³ννλ κΈ°μ (μ§λ ¬ν) κ³Ό λ°μ΄νΈ ννμ λ°μ΄ν°λ₯Ό κ°μ²΄λ‘ λ³νν΄μ JVMμΌλ‘ μμ£Όμν€λ νν(μμ§λ ¬ν) λ°μ΄νΈμ€νΈλ¦ΌμΌλ‘ λ³νλ κ°μ²΄λ₯Ό νμΌλ‘ μ μ₯νκ±°λ λ€νΈμν¬λ₯Ό ν΅ν΄ λ€λ₯Έ μμ€ν μΌ..
2023.01.11