JAVA(143)
-
[μ΄νν°λΈ μλ°] Item24 μ벽곡λ΅. μ΄λν° ν¨ν΄
item24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ. " p.147. μ΄λν°" [μ΄νν°λΈ μλ°] Item24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ. (tistory.com) [μ΄νν°λΈ μλ°] Item24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ. [μ΄νν°λΈ μλ°] Item23. νκ·Έ λ¬λ¦° ν΄λμ€λ³΄λ€λ ν΄λμ€ κ³μΈ΅ ꡬ쑰λ₯Ό νμ©νλΌ. μ€μ²© ν΄λμ€(nested class)λ λ€λ₯Έ ν΄λμ€ μμ μ μλ ν΄λμ€λ₯Ό λ§νλ€. μ€μ²© ν΄λμ€λ μμ μ κ°μΌ λ°κΉ₯ ν΄λμ€μμ hyejin.tistory.com λΉμ μ λ©€λ² ν΄λμ€λ μ΄λν°λ₯Ό μ μν λ μ£Όλ‘ μ¬μ©λλ€κ³ νλ€. μ΄λ μ΄λν° ν¨ν΄μ΄λ? : κΈ°μ‘΄ μ½λλ₯Ό ν΄λΌμ΄μΈνΈκ° μ¬μ©νλ μΈν°νμ΄μ€μ ꡬνμ²΄λ‘ λ°κΏμ£Όλ ν¨ν΄μ λ§νλ€. μ¦, μ½λλ₯Ό μ¬μ¬μ©νκΈ° μν΄..
2023.03.14 -
[μ΄νν°λΈ μλ°] Item24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ.
[μ΄νν°λΈ μλ°] Item24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ. μ€μ²© ν΄λμ€(nested class)λ λ€λ₯Έ ν΄λμ€ μμ μ μλ ν΄λμ€λ₯Ό λ§νλ€. μ€μ²© ν΄λμ€λ μμ μ κ°μΌ λ°κΉ₯ ν΄λμ€μμλ§ μ°μ¬μΌ νλ©°, κ·Έ μΈμ μ°μμκ° μλ€λ©΄ ν±λ 벨 ν΄λμ€λ‘ λ§λ€μ΄μΌ νλ€. μ€μ²© ν΄λμ€μ μ’ λ₯λ μ μ λ©€λ² ν΄λμ€, λΉμ μ λ©€λ² ν΄λμ€, μ΅λͺ ν΄λμ€, μ§μ ν΄λμ€ λ€κ°μ§κ° μλ€. μ΄ μ€ μ μ λ©€λ² ν΄λμ€λ₯Ό μ μΈνλ©΄ λλ¨Έμ§λ λ΄λΆ ν΄λμ€μ ν΄λΉνλ€. 1οΈβ£ μ μ λ©€λ² ν΄λμ€ : μ μ λ©€λ² ν΄λμ€λ λ€λ₯Έ ν΄λμ€ μμ μ μΈλκ³ , λ°κΉ₯ ν΄λμ€μ private λ©€λ²μλ μ κ·Όν μ μλ€λ μ μ μ μΈνκ³ λ μΌλ° ν΄λμ€μ λκ°λ€. ex) κ³μ°κΈ°κ° μ§μνλ μ°μ° μ’ λ₯λ₯Ό μ μνλ μ΄κ±°νμ μ μκ°ν΄λ³΄λ©΄ Operation μ΄..
2023.03.14 -
[μ΄νν°λΈ μλ°] Item23. νκ·Έ λ¬λ¦° ν΄λμ€λ³΄λ€λ ν΄λμ€ κ³μΈ΅ ꡬ쑰λ₯Ό νμ©νλΌ.
[μ΄νν°λΈ μλ°] Item23. νκ·Έ λ¬λ¦° ν΄λμ€λ³΄λ€λ ν΄λμ€ κ³μΈ΅ ꡬ쑰λ₯Ό νμ©νλΌ. λ κ°μ§ μ΄μμ μλ―Έλ₯Ό ννν μ μμΌλ©°, κ·Έμ€ νμ¬ νννλ μλ―Έλ₯Ό νκ·Έ κ°μΌλ‘ μλ €μ£Όλ ν΄λμ€λ₯Ό νκ·Έ λ¬λ¦° ν΄λμ€λΌκ³ νλ€. public class Figure { enum Shape {RECTANGLE, CIRCLE, SQUARE} // νκ·Έ νλ - νμ¬ λͺ¨μμ λνλΈλ€. final Shape shape; // λ€μ νλλ€μ λͺ¨μμ΄ μ¬κ°νμΌ λλ§ μ°μΈλ€. double length; double width; // λ€μ νλλ λͺ¨μμ΄ μμΌλλ§ μ¬μ©νλ€. double radius; // μμ© μμ±μ Figure(double radius) { shape = Shape.CIRCLE; this.radius = radius;..
2023.03.08 -
[μ΄νν°λΈ μλ°] Item22. μΈν°νμ΄μ€λ νμ μ μ μνλ μ©λλ‘λ§ μ¬μ©νλΌ.
[μ΄νν°λΈ μλ°] Item22. μΈν°νμ΄μ€λ νμ μ μ μνλ μ©λλ‘λ§ μ¬μ©νλΌ. μΈν°νμ΄μ€λ μμ μ ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ°Έμ‘°ν μ μλ νμ μν μ νλ€. λ¬λ¦¬ λ§ν΄, ν΄λμ€κ° μ΄λ€ μΈν°νμ΄μ€λ₯Ό ꡬννλ€λ κ²μ μμ μ μΈμ€ν΄μ€λ‘ 무μμ ν μ μλμ§λ₯Ό ν΄λΌμ΄μΈνΈμκ² μλ €μ£Όλ κ²μ΄λ€. λ°λΌμ μΈν°νμ΄μ€λ μ€μ§ μ΄ μ©λλ‘λ§ μ¬μ©νλ κ²μ΄ λ§λ€..!! μΈν°νμ΄μ€λ₯Ό νμ μ μ μνλ μ©λλ‘ μ¬μ©νλ κ²μ΄ μλ μλ‘λ μμ μΈν°νμ΄μ€κ° μλ€. public interface PhysicalConstants { // μ보κ°λλ₯΄ μ (1/λͺ°) static final double AVOGADROS_NUMBER = 6.022_14_857e23; // λ³ΌμΈ λ§ μμ (J/K) static final double BOLT..
2023.03.08 -
[μ΄νν°λΈ μλ°] Item21 μ벽곡λ΅. ConcurrentModificationException
item21. μΈν°νμ΄μ€λ ꡬννλ μͺ½μ μκ°ν΄ μ€κ³νλΌ. " p.137. ConcurrentModificationException" ConcurrentModificationException : This exception may be thrown by methods that have detected concurrent modification of an object when such modification is not permissible. νμ¬ λ°λλ©΄ μλλ κ²μ μμ ν λ λ°μνλ μμΈ https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ConcurrentModificationException.html ConcurrentModi..
2023.03.07 -
[μ΄νν°λΈ μλ°] Item21. μΈν°νμ΄μ€λ ꡬννλ μͺ½μ κ³ λ €ν΄ μ€κ³νλΌ.
[μ΄νν°λΈ μλ°] Item21. μΈν°νμ΄μ€λ ꡬννλ μͺ½μ κ³ λ €ν΄ μ€κ³νλΌ. μλ°8 μ μλ μΈν°νμ΄μ€μ λ©μλλ₯Ό μΆκ°ν λ°©λ²μ΄ μμλλ° μλ° 8μ μμ κΈ°μ‘΄ μΈν°νμ΄μ€μ λ©μλλ₯Ό μΆκ°ν μ μκ² λλ€. λν΄νΈ λ©μλλ‘ μ μΈνλ©΄ κ·Έ μΈν°νμ΄μ€λ₯Ό ꡬνν ν λν΄νΈ λ©μλλ₯Ό μ¬μ μνμ§ μμ λͺ¨λ ν΄λμ€μμ λν΄νΈ ꡬνμ΄ μ°μ΄κ² λλ€. μ΄μ μλ°μμλ κΈ°μ‘΄ μΈν°νμ΄μ€μ λ©μλλ₯Ό μΆκ°ν μ μμ§λ§ λͺ¨λ κΈ°μ‘΄ ꡬν체λ€κ³Ό 맀λλ½κ² μ°λλλ€λ 보μ₯μ μλ€. - κΈ°μ‘΄ μΈν°νμ΄μ€μ λν΄νΈ λ©μλ ꡬνμ μΆκ°νλ κ²μ μνν μΌμ΄λ€. κΈ°μ‘΄ μΈν°νμ΄μ€μ λν΄νΈ λ©μλ ꡬνμ μΆκ°νλ κ²μ μννκΈ΄νλ€. μλνλ©΄ λν΄νΈ λ©μλλ ꡬν ν΄λμ€μ λν΄ μ무κ²λ λͺ¨λ₯Έ μ± ν©μ μμ΄ λ¬΄μμ μ½μ λκΈ° λλ¬Έμ΄λ€. μλ° λΌμ΄λΈλ¬λ¦¬μ λν΄νΈ..
2023.03.07 -
[μ΄νν°λΈ μλ°] Item20 μ벽곡λ΅. λν΄νΈ λ©μλμ Object λ©μλ
item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. " p.135 λν΄νΈ λ©μλλ equals, hashCode, toString κ°μ Object λ©μλλ₯Ό μ¬μ μν μ μκΈ° λλ¬Έμ΄λ€." public interface MyInterface { default String toString() { return "myString"; } default int hashCode() { return 10; } default boolean equals(Object o) { return true; } } μ΄λ κ² μΈν°νμ΄μ€μ Object λ©μλλ₯Ό μ¬μ μνλ €κ³ νλ©΄ Default method 'toString' overrides a member of 'java.lang.Object' λΌκ³ μ»΄νμΌ μλ¬κ° λ°μνλ€. μ¬μ€ μΈν°ν..
2023.03.06 -
[μ΄νν°λΈ μλ°] Item20 μ벽곡λ΅. ν νλ¦Ώ λ©μλ ν¨ν΄
item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. " p.132 ν νλ¦Ώ λ©μλ ν¨ν΄" π ν νλ¦Ώ λ©μλ ν¨ν΄μ΄λ? : μκ³ λ¦¬μ¦ κ΅¬μ‘°λ₯Ό μλΈ ν΄λμ€κ° νμ₯ν μ μλλ‘ ν νλ¦ΏμΌλ‘ μ 곡νλ λ°©λ² μ 체μ μΌλ‘λ λμΌνλ° λΆλΆμ μΌλ‘ λ€λ₯Έ λΆλΆμ λ°λ‘ νμ₯ν΄μ μμ±ν μ μλλ‘ λμμ£Όλ λ°©λ²μΌλ‘ μ½λ μ€λ³΅μ μ΅μνν μ μλ€! public abstract class FileProcessor { private String path; public FileProcessor(String path) { this.path = path; } // templateMethod() public final int process() { try(BufferedReader reader = new BufferedReader(new File..
2023.03.06 -
[μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. (μΈν°νμ΄μ€μ μΆμ 골격 skeletal ν΄λμ€)
[μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. [μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. (tistory.com) [μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. [μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. μλ°κ° μ 곡νλ λ€μ€ ꡬν λ©μ»€λμ¦μΌλ‘λ μΆμν΄λμ€μ μΈν°νμ΄μ€ μ΄λ κ² λκ°μ§κ° μλ€. μλ° 8λΆν° μΈν°νμ΄μ€λ λν΄νΈ hyejin.tistory.com λ¨Όμ μΆμ ν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νκΈ° μν΄ μΈν°νμ΄μ€μ μ₯μ μ λν΄μ 곡λΆνλ€. κ·Έλ°λ° μ΄μ μΈν°νμ΄μ€μ μΆμ 골격(skeltal implementation) ν΄λμ€λ₯Ό ν¨κ» μ 곡νλ μμΌλ‘ μΈν°νμ΄μ€μ μΆμ ν΄λμ€μ μ₯μ μ λͺ¨λ μ·¨νλ λ°©λ²λ μλ€...
2023.03.06 -
[μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ.
[μ΄νν°λΈ μλ°] Item20. μΆμν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ. μλ°κ° μ 곡νλ λ€μ€ ꡬν λ©μ»€λμ¦μΌλ‘λ μΆμν΄λμ€μ μΈν°νμ΄μ€ μ΄λ κ² λκ°μ§κ° μλ€. μλ° 8λΆν° μΈν°νμ΄μ€λ λν΄νΈ λ©μλ default method λ₯Ό μ 곡ν μ μκ² λλ©΄μ μ΄μ λ λ λ©μ»€λμ¦ λͺ¨λ μΈμ€ν΄μ€ λ©μλλ₯Ό ꡬν ννλ‘ μ 곡ν μ μλ€. μΆμν΄λμ€μ μΈν°νμ΄μ€μ ν° μ°¨μ΄μ μΌλ‘λ μΆμν΄λμ€κ° μ μν νμ μ ꡬννλ ν΄λμ€λ λ°λμ μΆμν΄λμ€μ νμ ν΄λμ€κ° λμ΄μΌ νλ€λ μ μ΄λ€. μλ°λ λ¨μΌ μμλ§ μ§μνκΈ° λλ¬Έμ μΆμ ν΄λμ€ λ°©μμ μλ‘μ΄ νμ μ μ μνλλ° μ»€λ€λ μ μ½μ μ»κ² λλ€. λ°λ©΄ μΈν°νμ΄μ€κ° μ μΈν λ©μλλ₯Ό λͺ¨λ μ μνκ³ κ·Έ μΌλ° κ·μ½μ μ μ§ν¨ ν΄λμ€λΌλ©΄ λ€λ₯Έ μ΄λ€ ν΄λμ€λ₯Ό μμνλ κ°μ νμ μΌλ‘ μ·¨κΈλλ€. ..
2023.03.03 -
[μ΄νν°λΈ μλ°] Item19. μμμ κ³ λ €ν΄ μ€κ³νκ³ λ¬ΈμννλΌ. κ·Έλ μ§ μμλλΌλ©΄ μμμ κΈμ§νλΌ.
[μ΄νν°λΈ μλ°] Item19. μμμ κ³ λ €ν΄ μ€κ³νκ³ λ¬ΈμννλΌ. κ·Έλ μ§ μμλλΌλ©΄ μμμ κΈμ§νλΌ. [μ΄νν°λΈ μλ°] Item18. μμ보λ€λ μ»΄ν¬μ§μ μ μ¬μ©νλΌ. (tistory.com) [μ΄νν°λΈ μλ°] Item18. μμ보λ€λ μ»΄ν¬μ§μ μ μ¬μ©νλΌ. [μ΄νν°λΈ μλ°] Item18. μμ보λ€λ μ»΄ν¬μ§μ μ μ¬μ©νλΌ. μμμ μ¬μ©νλ©΄ μ½λλ₯Ό μ¬μ¬μ©ν μ μμ§λ§, μλͺ» μμνλ©΄ μ€λ₯κ° λ°μν μ μλ€. μμ ν΄λμ€μ νμ ν΄λμ€κ° λͺ¨λ κ°μ νλ‘κ·Έλ hyejin.tistory.com item18μμλ μμμ μΌλμ λμ§ μκ³ μ€κ³νκ³ μμν λ μ£Όμμ λ λ¬Έμνν΄λμ§ μμ μΈλΆ ν΄λμ€λ₯Ό μμν λμ λ¬Έμ μ μ λν΄μ μκΈ°νκ³ μλ€. (μ΄λ 'μΈλΆ'λ νλ‘κ·Έλλ¨Έμ ν΅μ κΆ λ°μ μμ΄μ μΈμ μ΄λ»κ² λ³κ²½λ μ§ λͺ¨λ₯΄..
2023.03.03 -
[μ΄νν°λΈ μλ°] Item18 μ벽곡λ΅. μ½λ°± νλ μμν¬μ μ ν λ¬Έμ
item18. μμ보λ€λ μ»΄ν¬μ§μ μ μ¬μ©νλΌ. " p.119 μ½λ°± νλ μμν¬μ μ νλ¬Έμ " λνΌν΄λμ€μλ λ¨μ μ΄ κ±°μ μλλ°, νκ°μ§ μλ€λ©΄ λνΌ ν΄λμ€κ° μ½λ°± callback νλ μμν¬μλ μ΄μΈλ¦¬μ§ μλλ€λ μ λ§ μ£Όμνλ©΄ λλ€. μ½λ°± νλ μμν¬μμλ μκΈ° μμ μ μ°Έμ‘°λ₯Ό λ€λ₯Έ κ°μ²΄μ λ겨μ λ€μ νΈμΆ(μ½λ°±)λ μ¬μ©νλλ‘ νλ€. λ΄λΆ κ°μ²΄λ κ·Όλ° μμ μ κ°μΈκ³ μλ λνΌμ μ‘΄μ¬λ₯Ό λͺ¨λ₯΄κΈ° λλ¬Έμ μκΈ° μμ thisλ₯Ό μ°Έμ‘°λ‘ λκΈ°κ³ , μ½λ°± λλ λνΌκ° μλ λ΄λΆ κ°μ²΄λ₯Ό νΈμΆνκ² λλλ° μ΄λ₯Ό self λ¬Έμ λΌκ³ νλ€. μ½λ°± ν¨μλ? : λ€λ₯Έ ν¨μ Aμ μΈμλ‘ μ λ¬λ ν¨μ Bλ‘, ν΄λΉ ν¨μA λ΄λΆμμ νμν μμ μ νΈμΆλ μ μλ ν¨μ Bλ₯Ό μλ―Ένλ€. public interface FunctionToCall { v..
2023.03.02