├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── me │ │ └── whiteship │ │ ├── chapter01 │ │ ├── item01 │ │ │ ├── ActionEnum.java │ │ │ ├── AdvancedSettings.java │ │ │ ├── App.java │ │ │ ├── AppConfig.java │ │ │ ├── Difficulty.java │ │ │ ├── HelloService.java │ │ │ ├── HelloServiceFactory.java │ │ │ ├── ListQuiz.java │ │ │ ├── Order.java │ │ │ ├── OrderStatus.java │ │ │ ├── Product.java │ │ │ └── Settings.java │ │ ├── item02 │ │ │ ├── builder │ │ │ │ ├── BuilderTest.java │ │ │ │ └── NutritionFacts.java │ │ │ ├── freeze │ │ │ │ ├── FreezeTest.js │ │ │ │ └── Person.java │ │ │ ├── hierarchicalbuilder │ │ │ │ ├── Calzone.java │ │ │ │ ├── NyPizza.java │ │ │ │ ├── Pizza.java │ │ │ │ └── PizzaTest.java │ │ │ ├── illegalargumentexception │ │ │ │ └── Order.java │ │ │ ├── javabeans │ │ │ │ └── NutritionFacts.java │ │ │ ├── telescopingconstructor │ │ │ │ └── NutritionFacts.java │ │ │ └── varargs │ │ │ │ └── VarargsSamples.java │ │ ├── item03 │ │ │ ├── enumtype │ │ │ │ ├── Elvis.java │ │ │ │ ├── EnumElvisReflection.java │ │ │ │ └── EnumElvisSerialization.java │ │ │ ├── field │ │ │ │ ├── Concert.java │ │ │ │ ├── Elvis.java │ │ │ │ ├── ElvisReflection.java │ │ │ │ ├── ElvisSerialization.java │ │ │ │ └── IElvis.java │ │ │ ├── functionalinterface │ │ │ │ ├── DefaultFunctions.java │ │ │ │ ├── MyFunction.java │ │ │ │ └── UsageOfFunctions.java │ │ │ ├── methodreference │ │ │ │ └── Person.java │ │ │ ├── serialization │ │ │ │ ├── Book.java │ │ │ │ └── SerializationExample.java │ │ │ └── staticfactory │ │ │ │ ├── Concert.java │ │ │ │ ├── Elvis.java │ │ │ │ ├── MetaElvis.java │ │ │ │ └── Singer.java │ │ ├── item04 │ │ │ ├── DefaultUtilityClass.java │ │ │ └── UtilityClass.java │ │ ├── item05 │ │ │ ├── DefaultDictionary.java │ │ │ ├── Dictionary.java │ │ │ ├── MockDictionary.java │ │ │ ├── dependencyinjection │ │ │ │ ├── DictionaryFactory.java │ │ │ │ └── SpellChecker.java │ │ │ ├── factorymethod │ │ │ │ ├── DefaultDictionaryFactory.java │ │ │ │ ├── DictionaryFactory.java │ │ │ │ ├── MockDictionaryFactory.java │ │ │ │ └── SpellChecker.java │ │ │ ├── package-info.java │ │ │ ├── singleton │ │ │ │ └── SpellChecker.java │ │ │ ├── springioc │ │ │ │ ├── App.java │ │ │ │ ├── AppConfig.java │ │ │ │ ├── SpellChecker.java │ │ │ │ └── SpringDictionary.java │ │ │ └── staticutils │ │ │ │ └── SpellChecker.java │ │ ├── item06 │ │ │ ├── Client.java │ │ │ ├── Deprecation.java │ │ │ ├── RegularExpression.java │ │ │ ├── RomanNumerals.java │ │ │ ├── Strings.java │ │ │ └── Sum.java │ │ ├── item07 │ │ │ ├── cache │ │ │ │ ├── CacheKey.java │ │ │ │ ├── Post.java │ │ │ │ └── PostRepository.java │ │ │ ├── executor │ │ │ │ └── ExecutorsExample.java │ │ │ ├── listener │ │ │ │ ├── ChatRoom.java │ │ │ │ └── User.java │ │ │ ├── optional │ │ │ │ ├── Channel.java │ │ │ │ └── MemberShip.java │ │ │ ├── reference │ │ │ │ ├── BigObject.java │ │ │ │ ├── BigObjectReference.java │ │ │ │ ├── PhantomReferenceExample.java │ │ │ │ ├── SoftReferenceExample.java │ │ │ │ └── WeakReferenceExample.java │ │ │ └── stack │ │ │ │ ├── EmptyStackException.java │ │ │ │ └── Stack.java │ │ ├── item08 │ │ │ ├── autoclosable │ │ │ │ ├── App.java │ │ │ │ └── AutoClosableIsGood.java │ │ │ ├── cleaner │ │ │ │ ├── BigObject.java │ │ │ │ └── CleanerIsNotGood.java │ │ │ ├── cleaner_as_a_safetynet │ │ │ │ ├── Adult.java │ │ │ │ ├── Room.java │ │ │ │ └── Teenager.java │ │ │ ├── finalizer │ │ │ │ ├── App.java │ │ │ │ └── FinalizerIsBad.java │ │ │ ├── finalizer_attack │ │ │ │ ├── Account.java │ │ │ │ └── BrokenAccount.java │ │ │ └── outerclass │ │ │ │ ├── LambdaExample.java │ │ │ │ └── OuterClass.java │ │ └── item09 │ │ │ ├── puzzler │ │ │ └── Copy.java │ │ │ ├── suppress │ │ │ ├── BadBufferedReader.java │ │ │ └── TopLine.java │ │ │ ├── tryfinally │ │ │ ├── Copy.java │ │ │ └── TopLine.java │ │ │ └── trywithresources │ │ │ ├── Copy.java │ │ │ ├── TopLine.java │ │ │ └── TopLineWithDefault.java │ │ └── chapter02 │ │ ├── item10 │ │ ├── CaseInsensitiveString.java │ │ ├── Color.java │ │ ├── EqualsInJava.java │ │ ├── PhoneNumber.java │ │ ├── Point.java │ │ ├── autovalue │ │ │ ├── AutoValueTest.java │ │ │ └── Point.java │ │ ├── composition │ │ │ └── ColorPoint.java │ │ ├── inheritance │ │ │ ├── ColorPoint.java │ │ │ ├── CounterPoint.java │ │ │ ├── CounterPointTest.java │ │ │ ├── SmellPoint.java │ │ │ └── SmellPointTest.java │ │ ├── lombok │ │ │ ├── LombokTest.java │ │ │ └── Point.java │ │ └── record │ │ │ ├── Point.java │ │ │ └── PointTest.java │ │ ├── item11 │ │ ├── guava │ │ │ └── PhoneNumber.java │ │ ├── hashcode │ │ │ └── PhoneNumber.java │ │ ├── hashtable │ │ │ └── HashMapTest.java │ │ └── package-info.java │ │ ├── item12 │ │ └── PhoneNumber.java │ │ ├── item13 │ │ ├── EmptyStackException.java │ │ ├── HashTable.java │ │ ├── PhoneNumber.java │ │ ├── Stack.java │ │ ├── clone_use_constructor │ │ │ ├── Item.java │ │ │ └── SubItem.java │ │ ├── copy_constructor │ │ │ └── HashSetExample.java │ │ ├── exception │ │ │ ├── MyApp.java │ │ │ └── MyException.java │ │ ├── inheritance │ │ │ ├── Shape.java │ │ │ └── Square.java │ │ └── treeset │ │ │ └── TreeSetExample.java │ │ └── item14 │ │ ├── CaseInsensitiveString.java │ │ ├── CompareToConvention.java │ │ ├── PhoneNumber.java │ │ ├── WordList.java │ │ ├── composition │ │ ├── NamedPoint.java │ │ └── Point.java │ │ ├── decimal │ │ ├── DecimalIsNotCorrect.java │ │ └── IntOverflow.java │ │ └── interitance │ │ ├── NamedPoint.java │ │ └── Point.java └── resources │ └── application.properties └── test └── java └── me └── whiteship └── chapter01 ├── item03 └── field │ ├── ConcertTest.java │ └── MockElvis.java ├── item05 ├── dependencyinjection │ └── SpellCheckerTest.java └── staticutils │ └── SpellCheckerTest.java ├── item07 ├── cache │ └── PostRepositoryTest.java ├── listener │ └── ChatRoomTest.java └── optional │ └── ChannelTest.java └── item08 └── finalizer_attack └── AccountTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/ActionEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/ActionEnum.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/AdvancedSettings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/AdvancedSettings.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/App.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/AppConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/AppConfig.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/Difficulty.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/Difficulty.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/HelloService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/HelloService.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/HelloServiceFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/HelloServiceFactory.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/ListQuiz.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/ListQuiz.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/Order.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/OrderStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/OrderStatus.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/Product.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/Product.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item01/Settings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item01/Settings.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/builder/BuilderTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/builder/BuilderTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/builder/NutritionFacts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/builder/NutritionFacts.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/freeze/FreezeTest.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/freeze/FreezeTest.js -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/freeze/Person.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/freeze/Person.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/Calzone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/Calzone.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/NyPizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/NyPizza.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/Pizza.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/Pizza.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/PizzaTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/hierarchicalbuilder/PizzaTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/illegalargumentexception/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/illegalargumentexception/Order.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/javabeans/NutritionFacts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/javabeans/NutritionFacts.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/telescopingconstructor/NutritionFacts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/telescopingconstructor/NutritionFacts.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item02/varargs/VarargsSamples.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item02/varargs/VarargsSamples.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/enumtype/Elvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/enumtype/Elvis.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/enumtype/EnumElvisReflection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/enumtype/EnumElvisReflection.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/enumtype/EnumElvisSerialization.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/enumtype/EnumElvisSerialization.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/field/Concert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/field/Concert.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/field/Elvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/field/Elvis.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/field/ElvisReflection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/field/ElvisReflection.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/field/ElvisSerialization.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/field/ElvisSerialization.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/field/IElvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/field/IElvis.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/functionalinterface/DefaultFunctions.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/functionalinterface/DefaultFunctions.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/functionalinterface/MyFunction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/functionalinterface/MyFunction.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/functionalinterface/UsageOfFunctions.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/functionalinterface/UsageOfFunctions.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/methodreference/Person.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/methodreference/Person.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/serialization/Book.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/serialization/Book.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/serialization/SerializationExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/serialization/SerializationExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/staticfactory/Concert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/staticfactory/Concert.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/staticfactory/Elvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/staticfactory/Elvis.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/staticfactory/MetaElvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/staticfactory/MetaElvis.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item03/staticfactory/Singer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item03/staticfactory/Singer.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item04/DefaultUtilityClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item04/DefaultUtilityClass.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item04/UtilityClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item04/UtilityClass.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/DefaultDictionary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/DefaultDictionary.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/Dictionary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/Dictionary.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/MockDictionary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/MockDictionary.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/dependencyinjection/DictionaryFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/dependencyinjection/DictionaryFactory.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/dependencyinjection/SpellChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/dependencyinjection/SpellChecker.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/factorymethod/DefaultDictionaryFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/factorymethod/DefaultDictionaryFactory.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/factorymethod/DictionaryFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/factorymethod/DictionaryFactory.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/factorymethod/MockDictionaryFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/factorymethod/MockDictionaryFactory.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/factorymethod/SpellChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/factorymethod/SpellChecker.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/package-info.java: -------------------------------------------------------------------------------- 1 | package me.whiteship.chapter01.item05; -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/singleton/SpellChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/singleton/SpellChecker.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/springioc/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/springioc/App.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/springioc/AppConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/springioc/AppConfig.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/springioc/SpellChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/springioc/SpellChecker.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/springioc/SpringDictionary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/springioc/SpringDictionary.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item05/staticutils/SpellChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item05/staticutils/SpellChecker.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/Client.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/Deprecation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/Deprecation.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/RegularExpression.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/RegularExpression.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/RomanNumerals.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/RomanNumerals.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/Strings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/Strings.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item06/Sum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item06/Sum.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/cache/CacheKey.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/cache/CacheKey.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/cache/Post.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/cache/Post.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/cache/PostRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/cache/PostRepository.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/executor/ExecutorsExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/executor/ExecutorsExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/listener/ChatRoom.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/listener/ChatRoom.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/listener/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/listener/User.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/optional/Channel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/optional/Channel.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/optional/MemberShip.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/optional/MemberShip.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/reference/BigObject.java: -------------------------------------------------------------------------------- 1 | package me.whiteship.chapter01.item07.reference; 2 | 3 | public class BigObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/reference/BigObjectReference.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/reference/BigObjectReference.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/reference/PhantomReferenceExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/reference/PhantomReferenceExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/reference/SoftReferenceExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/reference/SoftReferenceExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/reference/WeakReferenceExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/reference/WeakReferenceExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/stack/EmptyStackException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/stack/EmptyStackException.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item07/stack/Stack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item07/stack/Stack.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/autoclosable/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/autoclosable/App.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/autoclosable/AutoClosableIsGood.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/autoclosable/AutoClosableIsGood.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/cleaner/BigObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/cleaner/BigObject.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/cleaner/CleanerIsNotGood.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/cleaner/CleanerIsNotGood.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Adult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Adult.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Room.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Room.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Teenager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/cleaner_as_a_safetynet/Teenager.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/finalizer/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/finalizer/App.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/finalizer/FinalizerIsBad.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/finalizer/FinalizerIsBad.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/finalizer_attack/Account.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/finalizer_attack/Account.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/finalizer_attack/BrokenAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/finalizer_attack/BrokenAccount.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/outerclass/LambdaExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/outerclass/LambdaExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item08/outerclass/OuterClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item08/outerclass/OuterClass.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/puzzler/Copy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/puzzler/Copy.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/suppress/BadBufferedReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/suppress/BadBufferedReader.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/suppress/TopLine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/suppress/TopLine.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/tryfinally/Copy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/tryfinally/Copy.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/tryfinally/TopLine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/tryfinally/TopLine.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/trywithresources/Copy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/trywithresources/Copy.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/trywithresources/TopLine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/trywithresources/TopLine.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter01/item09/trywithresources/TopLineWithDefault.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter01/item09/trywithresources/TopLineWithDefault.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/CaseInsensitiveString.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/CaseInsensitiveString.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/Color.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/Color.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/EqualsInJava.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/EqualsInJava.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/Point.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/autovalue/AutoValueTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/autovalue/AutoValueTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/autovalue/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/autovalue/Point.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/composition/ColorPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/composition/ColorPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/inheritance/ColorPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/inheritance/ColorPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/inheritance/CounterPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/inheritance/CounterPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/inheritance/CounterPointTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/inheritance/CounterPointTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/inheritance/SmellPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/inheritance/SmellPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/inheritance/SmellPointTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/inheritance/SmellPointTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/lombok/LombokTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/lombok/LombokTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/lombok/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/lombok/Point.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/record/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/record/Point.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item10/record/PointTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item10/record/PointTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item11/guava/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item11/guava/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item11/hashcode/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item11/hashcode/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item11/hashtable/HashMapTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item11/hashtable/HashMapTest.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item11/package-info.java: -------------------------------------------------------------------------------- 1 | package me.whiteship.chapter02.item11; -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item12/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item12/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/EmptyStackException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/EmptyStackException.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/HashTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/HashTable.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/Stack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/Stack.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/clone_use_constructor/Item.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/clone_use_constructor/Item.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/clone_use_constructor/SubItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/clone_use_constructor/SubItem.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/copy_constructor/HashSetExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/copy_constructor/HashSetExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/exception/MyApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/exception/MyApp.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/exception/MyException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/exception/MyException.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/inheritance/Shape.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/inheritance/Shape.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/inheritance/Square.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/inheritance/Square.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item13/treeset/TreeSetExample.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item13/treeset/TreeSetExample.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/CaseInsensitiveString.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/CaseInsensitiveString.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/CompareToConvention.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/CompareToConvention.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/PhoneNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/PhoneNumber.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/WordList.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/WordList.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/composition/NamedPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/composition/NamedPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/composition/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/composition/Point.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/decimal/DecimalIsNotCorrect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/decimal/DecimalIsNotCorrect.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/decimal/IntOverflow.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/decimal/IntOverflow.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/interitance/NamedPoint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/interitance/NamedPoint.java -------------------------------------------------------------------------------- /src/main/java/me/whiteship/chapter02/item14/interitance/Point.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/main/java/me/whiteship/chapter02/item14/interitance/Point.java -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item03/field/ConcertTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item03/field/ConcertTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item03/field/MockElvis.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item03/field/MockElvis.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item05/dependencyinjection/SpellCheckerTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item05/dependencyinjection/SpellCheckerTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item05/staticutils/SpellCheckerTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item05/staticutils/SpellCheckerTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item07/cache/PostRepositoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item07/cache/PostRepositoryTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item07/listener/ChatRoomTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item07/listener/ChatRoomTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item07/optional/ChannelTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item07/optional/ChannelTest.java -------------------------------------------------------------------------------- /src/test/java/me/whiteship/chapter01/item08/finalizer_attack/AccountTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whiteship/effective-java/HEAD/src/test/java/me/whiteship/chapter01/item08/finalizer_attack/AccountTest.java --------------------------------------------------------------------------------