μ΄νν°λΈ μλ°(84)
-
[μ΄νν°λΈ μλ°] Item06 μ벽곡λ΅. μ κ· ννμ
item06. λΆνμν κ°μ²΄ μμ±μ νΌνλΌ. " p32. μ κ· ννμ" : item06 μλ²½κ³΅λ΅ 2λ²μ§Έ μκ°μλ μ κ· ννμμ΄ μμλλ°, μ΄νν°λΈ μλ° κ°μμμ μ κ·ννμμ μμΈν λ€λ£¨λ건 κ°μ μ£Όμ μ λ§μ§λ μκ³ , μ κ·ννμ μμ²΄λ§ ν΄λ λ΄μ©μ΄ μλ λ§κΈ° λλ¬Έμ μ¬κΈ°μλ μ κ·ννμμ΄ μ¬μ©λλ κ³³μ λν΄μ λ€λ£¬λ€. String.matches(String regex) : μ΄ λ©μλλ ν΄λΉ λ¬Έμμ΄μ΄ μ£Όμ΄μ§ μ κ·ννμμ λΆν©νλμ§μ μ¬λΆλ₯Ό boolean(true, false)λ‘ λνλ΄μ£Όλ κ²μ΄λ€. λ³΄ν΅ μ κ·ννμμμ΄μ©ν μ ν¨μ± κ²μ¬μμ κ°μ₯ λ§μ΄ μ¬μ©λλ λ°©λ²μ΄λ€. s.matches("^(?=.)M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$"); String.sp..
2023.01.19 -
[μ΄νν°λΈ μλ°] Item06 μ벽곡λ΅. Deprecation
item06. λΆνμν κ°μ²΄ μμ±μ νΌνλΌ. " p31. μ¬μ© μμ API (Deprecation)" Deprecation μλ° APIμμ μ’ μ’ λ©μλ μμ @Deprecated κ° νκΈ°λ μ½λλ€μ νμΈν μ μλ€. μ΄κ² νκΈ°λ ν΄λμ€λ λ©μλκ° μλ€λ©΄ μμΌλ‘λ μ¬μ©νμ§ μλκ² μ’μλ° κ·Έ μ΄μ λ μ΄λ€ μ΄μ λ‘λ μμΌλ‘ μ¬λΌμ§κ² λ λ©μλλ‘ μ¬μ© μμ νλ©° λ€λ₯Έ λ©μλ μ¬μ©μ κΆμ₯νλ κ²½μ°κ° λ§μλ° νΉμ λͺ°λΌμ μμ λ₯Ό λ°λ‘ νλκ² μλλΌ @Deprecated μ΄λ Έν μ΄μ μ ν΅ν΄μ μκ³ ?λ₯Ό ν΄μ€λ€κ³ ν μ μλ€. @Deprecated : ν΄λΌμ΄μΈνΈκ° μ¬μ©νμ§ μκΈΈ λ°λΌλ μ½λ μμ μ΄ μ΄λ Έν μ΄μ μ μ¬μ©ν΄μ£Όλ©΄ μ»΄νμΌ μ κ²½κ³ λ©μμ§λ₯Ό ν΅ν΄ μ¬μ© μμ λ₯Ό κΆμ₯νλ APIλΌλ κ²μ ν΄λΌμ΄μΈνΈμκ² μλ €μ€ μ μλ€. pub..
2023.01.19 -
[μ΄νν°λΈ μλ°] 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 μ벽곡λ΅. ν©ν°λ¦¬ λ©μλ ν¨ν΄
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 -
[μ΄νν°λΈ μλ°] Item03 μ벽곡λ΅. ν¨μν μΈν°νμ΄μ€
item03. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. " p24. Supplier, ν¨μν μΈν°νμ΄μ€" ν¨μν μΈν°νμ΄μ€ Functional Interface λ? : μλ°κ° μ 곡νλ κΈ°λ³Έ ν¨μν μΈν°νμ΄μ€λ‘ 1κ°μ μΆμ λ©μλλ₯Ό κ°μ§κ³ μλ μΈν°νμ΄μ€λ₯Ό μλ―Ένλ€. Single Abstract Method (SAM) μ΄λΌκ³ νλ€. ν¨μν μΈν°νμ΄μ€λ λλ€ ννμκ³Ό λ©μλ μ°Έμ‘°μ λν "νμΌ νμ "μ μ 곡νλ€. κ·Έλ¦¬κ³ μ΄ νκ² νμ μ λ³μ ν λΉ, λ©μλ νΈμΆ, νμ λ³νμ νμ©ν μ μλ€. /** * ν¨μν μΈν°νμ΄μ€ */ @FunctionalInterface public interface MyFunction { String valueOf(Integer integer); } -> μ΄μ²λΌ..
2023.01.10 -
[μ΄νν°λΈ μλ°] Item03 μ벽곡λ΅. λ©μλ μ°Έμ‘° method reference
item03. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. " p24. λ©μλ μ°Έμ‘°λ₯Ό 곡κΈμλ‘ μ¬μ©ν μ μλ€. " λ©μλ μ°Έμ‘° Method Reference λ? : λ©μλ νλλ§ νΈμΆνλ λλ€ ννμμ μ€μ¬μ°λ λ°©λ² λ©μλ μ°Έμ‘°λ λλ€ ννμμ΄ λ¨ νλμ λ©μλλ§μ νΈμΆνλ κ²½μ°μ ν΄λΉ λλ€ ννμμμ λΆνμν 맀κ°λ³μλ₯Ό μ κ±°νκ³ μ¬μ©ν μ μλλ‘ νλ€. ν΄λμ€μ΄λ¦::λ©μλμ΄λ¦ μ°Έμ‘°λ³μμ΄λ¦::λ©μλμ΄λ¦ public class Person { LocalDate birthday; public Person() { } public Person(LocalDate birthday) { this.birthday = birthday; } public int getAge() { return LocalD..
2023.01.10 -
[μ΄νν°λΈ μλ°] Item3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. ( private μμ±μ + μ μ ν©ν°λ¦¬ λ©μλ )
μμ΄ν 3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. [μ΄νν°λΈ μλ°] Item3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. (private μμ±μ + public static final νλ ) (tistory.com) [μ΄νν°λΈ μλ°] Item3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. (private μμ±μ + public μμ΄ν 3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. μ±κΈν€ singleton μ΄λ? : μΈμ€ν΄μ€λ₯Ό μ€μ§ νλλ§ μμ±ν μ μλ ν΄λμ€λ₯Ό μλ―Ένλ€. μ±κΈν€μ μλ‘λ μ€κ³μ μ μΌν΄μΌ νλ μμ€ν hyejin.tistory.com μ¬κΈ°μ private μμ±μ + public static final νλλ₯Ό μ¬μ©ν 첫..
2023.01.09 -
[μ΄νν°λΈ μλ°] Item3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. (private μμ±μ + public static final νλ )
μμ΄ν 3. private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν€μμ 보μ¦νλΌ. μ±κΈν€ singleton μ΄λ? : μΈμ€ν΄μ€λ₯Ό μ€μ§ νλλ§ μμ±ν μ μλ ν΄λμ€λ₯Ό μλ―Ένλ€. μ±κΈν€μ μλ‘λ μ€κ³μ μ μΌν΄μΌ νλ μμ€ν μ»΄ν¬λνΈλ₯Ό λ€ μ μλ€. κ²μμμ μΈμ΄ν© κ°μ κ²μ΄ μλ€. (λ³΄ν΅ μΈμ΄λ₯Ό 'μμ΄'λ‘ νλ€ νλ©΄ μ΄λ€ μ€μ μμλ νκ΅μ΄μ΄κ³ , μ΄λ€ μ€μ μμλ μΌλ³Έμ΄μ΄κ³ νλ©΄ μλλκΉ νλμ μΈμ΄λ‘ μ μ§νλ€.) κ·Έλ°λ° μ±κΈν€μΌλ‘ ν΄λμ€λ₯Ό λ§λ€λ©΄ μ΄λ₯Ό μ¬μ©νλ ν΄λΌμ΄μΈνΈλ₯Ό ν μ€νΈνκΈ°κ° μ΄λ €μμ§ μ μλ€. μ±κΈν€ ν΄λμ€ μ€μμλ μΈν°νμ΄μ€λ₯Ό μ μν λ€μ μ΄ μΈν°νμ΄μ€λ₯Ό ꡬνν΄μ λ§λ ν΄λμ€κ° μλλΌλ©΄ μ±κΈν€ μΈμ€ν΄μ€λ₯Ό κ°μ§ mock ꡬνμΌλ‘ λ체ν μ μκΈ° λλ¬Έμ΄λ€... μ±κΈν€ singleton λ§λλ λ°©λ² 1 : pri..
2023.01.09 -
[μ΄νν°λΈ μλ°] Item02 μ벽곡λ΅. κ°λ³ μΈμ varargs
item02. μμ±μμ 맀κ°λ³μκ° λ§λ€λ©΄ λΉλλ₯Ό κ³ λ €νλΌ. " p21. κ°λ³μΈμ 맀κ°λ³μλ₯Ό μ¬λ¬ κ° μ¬μ©ν μ μλ€. " κ°λ³ μΈμ varargsλ? : μ¬λ¬ μΈμλ₯Ό λ°μ μ μλ κ°λ³μ μΈ argumentλ₯Ό λ§νλ€. 맀κ°λ³μλ‘ λ€μ΄μ€λ κ°μ κ°μμ μκ΄μμ΄ λμ μΌλ‘ μΈμλ₯Ό λ°μ κ°λ₯νλλ‘ ν΄μ£Όλ λ¬Έλ²μ΄λ€. κ°λ³μΈμλ νλΌλ―Έν°λ€μ ν΅μ§Έλ‘ λ°°μ΄λ‘ λ°μλ€μ¬ μ²λ¦¬νκΈ° λλ¬Έμ λμ μΌλ‘ 맀κ°λ³μλ₯Ό λ°μ μ μλ€. κ°λ³μΈμλ jdk 1.5 λΆν° μΆκ°λ μ€λμ λΆν° μ¬μ©λ κΈ°λ₯μΌλ‘ λνμ μΈ μλ‘λ System.out.printf() λ©μλκ° κ°λ³μΈμλ₯Ό μ¬μ©ν λ©μλμ΄λ€. κ°λ³ μΈμλ λ©μλμ μ€μ§ νλλ§ μ μΈν μ μκ³ , κ°λ³ μΈμλ λ©μλμ κ°μ₯ λ§μ§λ§ 맀κ°λ³μκ° λμ΄μΌ νλ€. public void printNumer..
2023.01.09