From fd34d7b3cdbb2ea8cf9dae87d1237c6b1474167b Mon Sep 17 00:00:00 2001 From: Dawand Sulaiman Date: Sat, 2 Jan 2021 00:19:30 +0000 Subject: [PATCH] Add Singleton example to Design Patterns --- .../Advanced-Java.iml | 0 .../CompletableFutureExample.class | Bin .../Advanced-Java/Callbacks/Callbacks.class | Bin .../Callbacks/Lambdas$Service.class | Bin .../Advanced-Java/Callbacks/Lambdas.class | Bin .../CombinatorPattern/Customer.class | Bin .../CustomerRegistrationValidator.class | Bin .../CustomerValidatorService.class | Bin .../CombinatorPattern/Main.class | Bin .../CombinatorPattern/ValidationResult.class | Bin .../Concurrency/ConditionExample.class | Bin .../Concurrency/ThreadLocalExample.class | Bin .../Concurrency/ThreadSafeFormatter.class | Bin .../VolatileOrAtomic$FlagChecker.class | Bin .../VolatileOrAtomic$FlagUpdater.class | Bin .../Concurrency/VolatileOrAtomic.class | Bin .../DesignPatterns/TaxCalculator.class | Bin .../DesignPatterns/TaxCalculator2019.class | Bin .../DesignPatterns/TaxCalculator2020.class | Bin .../Advanced-Java/DesignPatterns/User.class | Bin .../DesignPatterns/memento/Editor.class | Bin .../DesignPatterns/memento/EditorState.class | Bin .../DesignPatterns/memento/History.class | Bin .../DesignPatterns/memento/Main.class | Bin .../DesignPatterns/state/BrushTool.class | Bin .../DesignPatterns/state/Canvas.class | Bin .../DesignPatterns/state/Main.class | Bin .../DesignPatterns/state/Selection.class | Bin .../DesignPatterns/state/Tool.class | Bin .../DesignPatterns/state/ToolType.class | Bin .../FunctionalProgramming/Gender.class | Bin .../FunctionalProgramming/Main.class | Bin .../FunctionalProgramming/Person.class | Bin .../FunctionalProgramming/_Function.class | Bin .../FunctionalProgramming/_Predicate.class | Bin .../FunctionalProgramming/_Supplier.class | Bin .../META-INF/Advanced-Java.kotlin_module | Bin .../Advanced-Java/Optionals/_Optionals.class | Bin .../Advanced-Java/csv_reader/CSVReader.class | Bin .../Advanced-Java/csv_reader/data.csv | 0 .../dsa_koffman_ch2/JUnitTest.class | Bin .../dsa_koffman_ch2/OrderedList.class | Bin .../dsa_koffman_ch2/TestOrderedList.class | Bin .../Advanced-Java/interfaces/Employee.class | Bin .../Advanced-Java/interfaces/Person.class | Bin .../interfaces/TaxCollector.class | Bin .../Advanced-Java/interfaces/TaxPayer.class | Bin .../java8_features/FunctionalInterfaces.class | Bin .../java8_features/GreetingService.class | Bin .../Advanced-Java/java8_features/Lambda.class | Bin .../java8_features/LocalDateTimeExample.class | Bin .../java8_features/MathOperation.class | Bin .../java8_features/MethodReference.class | Bin .../Advanced-Java/java8_features/Stream.class | Bin .../java_gc/FinalizeExample.class | Bin .../Advanced-Java/java_gc/Person.class | Bin .../java_gc/PersonMetaData.class | Bin .../java_gc/WeakHashMapExample.class | Bin .../java_gc/WeakReferenceExample.class | Bin .../CompletableFutureExample.java | 0 .../src/Callbacks/Callbacks.java | 0 .../src/Callbacks/Lambdas.java | 0 .../src/CombinatorPattern/Customer.java | 0 .../CustomerRegistrationValidator.java | 0 .../CustomerValidatorService.java | 0 .../src/CombinatorPattern/Main.java | 0 .../CombinatorPattern/ValidationResult.java | 0 .../src/Concurrency/ConditionExample.java | 0 .../src/Concurrency/MyRunnable.java | 0 .../src/Concurrency/MyRunnableMain.java | 0 .../src/Concurrency/ThreadLocalExample.java | 0 .../src/Concurrency/VolatileOrAtomic.java | 0 .../src/DesignPatterns/TaxCalculator.java | 0 .../src/DesignPatterns/TaxCalculator2019.java | 0 .../src/DesignPatterns/TaxCalculator2020.java | 0 .../src/DesignPatterns/User.java | 0 .../src/DesignPatterns/memento/Editor.java | 0 .../DesignPatterns/memento/EditorState.java | 0 .../src/DesignPatterns/memento/History.java | 0 .../src/DesignPatterns/memento/Main.java | 0 .../src/DesignPatterns/state/BrushTool.java | 0 .../src/DesignPatterns/state/Canvas.java | 0 .../src/DesignPatterns/state/Main.java | 0 .../src/DesignPatterns/state/Selection.java | 0 .../src/DesignPatterns/state/Tool.java | 0 .../src/DesignPatterns/state/ToolType.java | 0 .../src/FunctionalProgramming/Gender.java | 0 .../src/FunctionalProgramming/Main.java | 0 .../src/FunctionalProgramming/Person.java | 0 .../src/FunctionalProgramming/_Function.java | 0 .../src/FunctionalProgramming/_Predicate.java | 0 .../src/FunctionalProgramming/_Supplier.java | 0 .../src/Optionals/_Optionals.java | 0 .../src/csv_reader/CSVReader.java | 0 .../src/csv_reader/data.csv | 0 .../src/dsa_koffman_ch2/JUnitTest.java | 0 .../src/dsa_koffman_ch2/OrderedList.java | 0 .../src/dsa_koffman_ch2/TestOrderedList.java | 0 .../src/interfaces/Employee.java | 0 .../src/interfaces/Person.java | 0 .../src/interfaces/TaxCollector.java | 0 .../src/interfaces/TaxPayer.java | 0 .../java8_features/FunctionalInterfaces.java | 0 .../src/java8_features/Lambda.java | 0 .../java8_features/LocalDateTimeExample.java | 0 .../src/java8_features/MethodReference.java | 0 .../src/java8_features/Stream.java | 0 .../src/java_gc/FinalizeExample.java | 0 .../src/java_gc/WeakHashMapExample.java | 0 .../src/java_gc/WeakReferenceExample.java | 0 Design-patterns/src/singleton/Captain.java | 21 ++++++++++++++++++ .../src/singleton/SingletonExample.java | 13 +++++++++++ interview-preparation.iml | 1 + 113 files changed, 35 insertions(+) rename {Java/Advanced-Java => Advanced-Java}/Advanced-Java.iml (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/AsyncProgramming/CompletableFutureExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Callbacks/Callbacks.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Callbacks/Lambdas$Service.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Callbacks/Lambdas.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/CombinatorPattern/Customer.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/CombinatorPattern/CustomerRegistrationValidator.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/CombinatorPattern/CustomerValidatorService.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/CombinatorPattern/Main.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/CombinatorPattern/ValidationResult.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/ConditionExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/ThreadLocalExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/ThreadSafeFormatter.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagChecker.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagUpdater.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Concurrency/VolatileOrAtomic.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/TaxCalculator.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/TaxCalculator2019.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/TaxCalculator2020.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/User.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/memento/Editor.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/memento/EditorState.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/memento/History.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/memento/Main.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/BrushTool.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/Canvas.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/Main.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/Selection.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/Tool.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/DesignPatterns/state/ToolType.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/Gender.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/Main.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/Person.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/_Function.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/_Predicate.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/FunctionalProgramming/_Supplier.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/META-INF/Advanced-Java.kotlin_module (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/Optionals/_Optionals.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/csv_reader/CSVReader.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/csv_reader/data.csv (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/dsa_koffman_ch2/JUnitTest.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/dsa_koffman_ch2/OrderedList.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/dsa_koffman_ch2/TestOrderedList.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/interfaces/Employee.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/interfaces/Person.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/interfaces/TaxCollector.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/interfaces/TaxPayer.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/FunctionalInterfaces.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/GreetingService.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/Lambda.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/LocalDateTimeExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/MathOperation.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/MethodReference.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java8_features/Stream.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java_gc/FinalizeExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java_gc/Person.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java_gc/PersonMetaData.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java_gc/WeakHashMapExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/out/production/Advanced-Java/java_gc/WeakReferenceExample.class (100%) rename {Java/Advanced-Java => Advanced-Java}/src/AsyncProgramming/CompletableFutureExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Callbacks/Callbacks.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Callbacks/Lambdas.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/CombinatorPattern/Customer.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/CombinatorPattern/CustomerRegistrationValidator.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/CombinatorPattern/CustomerValidatorService.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/CombinatorPattern/Main.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/CombinatorPattern/ValidationResult.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Concurrency/ConditionExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Concurrency/MyRunnable.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Concurrency/MyRunnableMain.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Concurrency/ThreadLocalExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Concurrency/VolatileOrAtomic.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/TaxCalculator.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/TaxCalculator2019.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/TaxCalculator2020.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/User.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/memento/Editor.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/memento/EditorState.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/memento/History.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/memento/Main.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/BrushTool.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/Canvas.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/Main.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/Selection.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/Tool.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/DesignPatterns/state/ToolType.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/Gender.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/Main.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/Person.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/_Function.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/_Predicate.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/FunctionalProgramming/_Supplier.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/Optionals/_Optionals.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/csv_reader/CSVReader.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/csv_reader/data.csv (100%) rename {Java/Advanced-Java => Advanced-Java}/src/dsa_koffman_ch2/JUnitTest.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/dsa_koffman_ch2/OrderedList.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/dsa_koffman_ch2/TestOrderedList.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/interfaces/Employee.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/interfaces/Person.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/interfaces/TaxCollector.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/interfaces/TaxPayer.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java8_features/FunctionalInterfaces.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java8_features/Lambda.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java8_features/LocalDateTimeExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java8_features/MethodReference.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java8_features/Stream.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java_gc/FinalizeExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java_gc/WeakHashMapExample.java (100%) rename {Java/Advanced-Java => Advanced-Java}/src/java_gc/WeakReferenceExample.java (100%) create mode 100644 Design-patterns/src/singleton/Captain.java create mode 100644 Design-patterns/src/singleton/SingletonExample.java diff --git a/Java/Advanced-Java/Advanced-Java.iml b/Advanced-Java/Advanced-Java.iml similarity index 100% rename from Java/Advanced-Java/Advanced-Java.iml rename to Advanced-Java/Advanced-Java.iml diff --git a/Java/Advanced-Java/out/production/Advanced-Java/AsyncProgramming/CompletableFutureExample.class b/Advanced-Java/out/production/Advanced-Java/AsyncProgramming/CompletableFutureExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/AsyncProgramming/CompletableFutureExample.class rename to Advanced-Java/out/production/Advanced-Java/AsyncProgramming/CompletableFutureExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Callbacks.class b/Advanced-Java/out/production/Advanced-Java/Callbacks/Callbacks.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Callbacks.class rename to Advanced-Java/out/production/Advanced-Java/Callbacks/Callbacks.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas$Service.class b/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas$Service.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas$Service.class rename to Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas$Service.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas.class b/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas.class rename to Advanced-Java/out/production/Advanced-Java/Callbacks/Lambdas.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Customer.class b/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Customer.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Customer.class rename to Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Customer.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerRegistrationValidator.class b/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerRegistrationValidator.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerRegistrationValidator.class rename to Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerRegistrationValidator.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerValidatorService.class b/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerValidatorService.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerValidatorService.class rename to Advanced-Java/out/production/Advanced-Java/CombinatorPattern/CustomerValidatorService.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Main.class b/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Main.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Main.class rename to Advanced-Java/out/production/Advanced-Java/CombinatorPattern/Main.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/ValidationResult.class b/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/ValidationResult.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/CombinatorPattern/ValidationResult.class rename to Advanced-Java/out/production/Advanced-Java/CombinatorPattern/ValidationResult.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ConditionExample.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/ConditionExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ConditionExample.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/ConditionExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadLocalExample.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadLocalExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadLocalExample.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadLocalExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadSafeFormatter.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadSafeFormatter.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadSafeFormatter.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/ThreadSafeFormatter.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagChecker.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagChecker.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagChecker.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagChecker.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagUpdater.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagUpdater.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagUpdater.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic$FlagUpdater.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic.class b/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic.class rename to Advanced-Java/out/production/Advanced-Java/Concurrency/VolatileOrAtomic.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2019.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2019.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2019.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2019.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2020.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2020.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2020.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/TaxCalculator2020.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/User.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/User.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/User.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/User.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Editor.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Editor.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Editor.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Editor.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/EditorState.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/EditorState.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/EditorState.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/EditorState.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/History.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/History.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/History.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/History.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Main.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Main.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Main.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/memento/Main.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/BrushTool.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/BrushTool.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/BrushTool.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/BrushTool.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Canvas.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Canvas.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Canvas.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Canvas.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Main.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Main.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Main.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Main.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Selection.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Selection.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Selection.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Selection.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Tool.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Tool.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Tool.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/Tool.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/ToolType.class b/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/ToolType.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/ToolType.class rename to Advanced-Java/out/production/Advanced-Java/DesignPatterns/state/ToolType.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Gender.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Gender.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Gender.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Gender.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Main.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Main.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Main.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Main.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Person.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Person.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Person.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/Person.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Function.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Function.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Function.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Function.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Predicate.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Predicate.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Predicate.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Predicate.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Supplier.class b/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Supplier.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Supplier.class rename to Advanced-Java/out/production/Advanced-Java/FunctionalProgramming/_Supplier.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/META-INF/Advanced-Java.kotlin_module b/Advanced-Java/out/production/Advanced-Java/META-INF/Advanced-Java.kotlin_module similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/META-INF/Advanced-Java.kotlin_module rename to Advanced-Java/out/production/Advanced-Java/META-INF/Advanced-Java.kotlin_module diff --git a/Java/Advanced-Java/out/production/Advanced-Java/Optionals/_Optionals.class b/Advanced-Java/out/production/Advanced-Java/Optionals/_Optionals.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/Optionals/_Optionals.class rename to Advanced-Java/out/production/Advanced-Java/Optionals/_Optionals.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/csv_reader/CSVReader.class b/Advanced-Java/out/production/Advanced-Java/csv_reader/CSVReader.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/csv_reader/CSVReader.class rename to Advanced-Java/out/production/Advanced-Java/csv_reader/CSVReader.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/csv_reader/data.csv b/Advanced-Java/out/production/Advanced-Java/csv_reader/data.csv similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/csv_reader/data.csv rename to Advanced-Java/out/production/Advanced-Java/csv_reader/data.csv diff --git a/Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/JUnitTest.class b/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/JUnitTest.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/JUnitTest.class rename to Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/JUnitTest.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/OrderedList.class b/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/OrderedList.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/OrderedList.class rename to Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/OrderedList.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/TestOrderedList.class b/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/TestOrderedList.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/TestOrderedList.class rename to Advanced-Java/out/production/Advanced-Java/dsa_koffman_ch2/TestOrderedList.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/interfaces/Employee.class b/Advanced-Java/out/production/Advanced-Java/interfaces/Employee.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/interfaces/Employee.class rename to Advanced-Java/out/production/Advanced-Java/interfaces/Employee.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/interfaces/Person.class b/Advanced-Java/out/production/Advanced-Java/interfaces/Person.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/interfaces/Person.class rename to Advanced-Java/out/production/Advanced-Java/interfaces/Person.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/interfaces/TaxCollector.class b/Advanced-Java/out/production/Advanced-Java/interfaces/TaxCollector.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/interfaces/TaxCollector.class rename to Advanced-Java/out/production/Advanced-Java/interfaces/TaxCollector.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/interfaces/TaxPayer.class b/Advanced-Java/out/production/Advanced-Java/interfaces/TaxPayer.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/interfaces/TaxPayer.class rename to Advanced-Java/out/production/Advanced-Java/interfaces/TaxPayer.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/FunctionalInterfaces.class b/Advanced-Java/out/production/Advanced-Java/java8_features/FunctionalInterfaces.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/FunctionalInterfaces.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/FunctionalInterfaces.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/GreetingService.class b/Advanced-Java/out/production/Advanced-Java/java8_features/GreetingService.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/GreetingService.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/GreetingService.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/Lambda.class b/Advanced-Java/out/production/Advanced-Java/java8_features/Lambda.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/Lambda.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/Lambda.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/LocalDateTimeExample.class b/Advanced-Java/out/production/Advanced-Java/java8_features/LocalDateTimeExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/LocalDateTimeExample.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/LocalDateTimeExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/MathOperation.class b/Advanced-Java/out/production/Advanced-Java/java8_features/MathOperation.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/MathOperation.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/MathOperation.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/MethodReference.class b/Advanced-Java/out/production/Advanced-Java/java8_features/MethodReference.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/MethodReference.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/MethodReference.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java8_features/Stream.class b/Advanced-Java/out/production/Advanced-Java/java8_features/Stream.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java8_features/Stream.class rename to Advanced-Java/out/production/Advanced-Java/java8_features/Stream.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java_gc/FinalizeExample.class b/Advanced-Java/out/production/Advanced-Java/java_gc/FinalizeExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java_gc/FinalizeExample.class rename to Advanced-Java/out/production/Advanced-Java/java_gc/FinalizeExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java_gc/Person.class b/Advanced-Java/out/production/Advanced-Java/java_gc/Person.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java_gc/Person.class rename to Advanced-Java/out/production/Advanced-Java/java_gc/Person.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java_gc/PersonMetaData.class b/Advanced-Java/out/production/Advanced-Java/java_gc/PersonMetaData.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java_gc/PersonMetaData.class rename to Advanced-Java/out/production/Advanced-Java/java_gc/PersonMetaData.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java_gc/WeakHashMapExample.class b/Advanced-Java/out/production/Advanced-Java/java_gc/WeakHashMapExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java_gc/WeakHashMapExample.class rename to Advanced-Java/out/production/Advanced-Java/java_gc/WeakHashMapExample.class diff --git a/Java/Advanced-Java/out/production/Advanced-Java/java_gc/WeakReferenceExample.class b/Advanced-Java/out/production/Advanced-Java/java_gc/WeakReferenceExample.class similarity index 100% rename from Java/Advanced-Java/out/production/Advanced-Java/java_gc/WeakReferenceExample.class rename to Advanced-Java/out/production/Advanced-Java/java_gc/WeakReferenceExample.class diff --git a/Java/Advanced-Java/src/AsyncProgramming/CompletableFutureExample.java b/Advanced-Java/src/AsyncProgramming/CompletableFutureExample.java similarity index 100% rename from Java/Advanced-Java/src/AsyncProgramming/CompletableFutureExample.java rename to Advanced-Java/src/AsyncProgramming/CompletableFutureExample.java diff --git a/Java/Advanced-Java/src/Callbacks/Callbacks.java b/Advanced-Java/src/Callbacks/Callbacks.java similarity index 100% rename from Java/Advanced-Java/src/Callbacks/Callbacks.java rename to Advanced-Java/src/Callbacks/Callbacks.java diff --git a/Java/Advanced-Java/src/Callbacks/Lambdas.java b/Advanced-Java/src/Callbacks/Lambdas.java similarity index 100% rename from Java/Advanced-Java/src/Callbacks/Lambdas.java rename to Advanced-Java/src/Callbacks/Lambdas.java diff --git a/Java/Advanced-Java/src/CombinatorPattern/Customer.java b/Advanced-Java/src/CombinatorPattern/Customer.java similarity index 100% rename from Java/Advanced-Java/src/CombinatorPattern/Customer.java rename to Advanced-Java/src/CombinatorPattern/Customer.java diff --git a/Java/Advanced-Java/src/CombinatorPattern/CustomerRegistrationValidator.java b/Advanced-Java/src/CombinatorPattern/CustomerRegistrationValidator.java similarity index 100% rename from Java/Advanced-Java/src/CombinatorPattern/CustomerRegistrationValidator.java rename to Advanced-Java/src/CombinatorPattern/CustomerRegistrationValidator.java diff --git a/Java/Advanced-Java/src/CombinatorPattern/CustomerValidatorService.java b/Advanced-Java/src/CombinatorPattern/CustomerValidatorService.java similarity index 100% rename from Java/Advanced-Java/src/CombinatorPattern/CustomerValidatorService.java rename to Advanced-Java/src/CombinatorPattern/CustomerValidatorService.java diff --git a/Java/Advanced-Java/src/CombinatorPattern/Main.java b/Advanced-Java/src/CombinatorPattern/Main.java similarity index 100% rename from Java/Advanced-Java/src/CombinatorPattern/Main.java rename to Advanced-Java/src/CombinatorPattern/Main.java diff --git a/Java/Advanced-Java/src/CombinatorPattern/ValidationResult.java b/Advanced-Java/src/CombinatorPattern/ValidationResult.java similarity index 100% rename from Java/Advanced-Java/src/CombinatorPattern/ValidationResult.java rename to Advanced-Java/src/CombinatorPattern/ValidationResult.java diff --git a/Java/Advanced-Java/src/Concurrency/ConditionExample.java b/Advanced-Java/src/Concurrency/ConditionExample.java similarity index 100% rename from Java/Advanced-Java/src/Concurrency/ConditionExample.java rename to Advanced-Java/src/Concurrency/ConditionExample.java diff --git a/Java/Advanced-Java/src/Concurrency/MyRunnable.java b/Advanced-Java/src/Concurrency/MyRunnable.java similarity index 100% rename from Java/Advanced-Java/src/Concurrency/MyRunnable.java rename to Advanced-Java/src/Concurrency/MyRunnable.java diff --git a/Java/Advanced-Java/src/Concurrency/MyRunnableMain.java b/Advanced-Java/src/Concurrency/MyRunnableMain.java similarity index 100% rename from Java/Advanced-Java/src/Concurrency/MyRunnableMain.java rename to Advanced-Java/src/Concurrency/MyRunnableMain.java diff --git a/Java/Advanced-Java/src/Concurrency/ThreadLocalExample.java b/Advanced-Java/src/Concurrency/ThreadLocalExample.java similarity index 100% rename from Java/Advanced-Java/src/Concurrency/ThreadLocalExample.java rename to Advanced-Java/src/Concurrency/ThreadLocalExample.java diff --git a/Java/Advanced-Java/src/Concurrency/VolatileOrAtomic.java b/Advanced-Java/src/Concurrency/VolatileOrAtomic.java similarity index 100% rename from Java/Advanced-Java/src/Concurrency/VolatileOrAtomic.java rename to Advanced-Java/src/Concurrency/VolatileOrAtomic.java diff --git a/Java/Advanced-Java/src/DesignPatterns/TaxCalculator.java b/Advanced-Java/src/DesignPatterns/TaxCalculator.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/TaxCalculator.java rename to Advanced-Java/src/DesignPatterns/TaxCalculator.java diff --git a/Java/Advanced-Java/src/DesignPatterns/TaxCalculator2019.java b/Advanced-Java/src/DesignPatterns/TaxCalculator2019.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/TaxCalculator2019.java rename to Advanced-Java/src/DesignPatterns/TaxCalculator2019.java diff --git a/Java/Advanced-Java/src/DesignPatterns/TaxCalculator2020.java b/Advanced-Java/src/DesignPatterns/TaxCalculator2020.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/TaxCalculator2020.java rename to Advanced-Java/src/DesignPatterns/TaxCalculator2020.java diff --git a/Java/Advanced-Java/src/DesignPatterns/User.java b/Advanced-Java/src/DesignPatterns/User.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/User.java rename to Advanced-Java/src/DesignPatterns/User.java diff --git a/Java/Advanced-Java/src/DesignPatterns/memento/Editor.java b/Advanced-Java/src/DesignPatterns/memento/Editor.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/memento/Editor.java rename to Advanced-Java/src/DesignPatterns/memento/Editor.java diff --git a/Java/Advanced-Java/src/DesignPatterns/memento/EditorState.java b/Advanced-Java/src/DesignPatterns/memento/EditorState.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/memento/EditorState.java rename to Advanced-Java/src/DesignPatterns/memento/EditorState.java diff --git a/Java/Advanced-Java/src/DesignPatterns/memento/History.java b/Advanced-Java/src/DesignPatterns/memento/History.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/memento/History.java rename to Advanced-Java/src/DesignPatterns/memento/History.java diff --git a/Java/Advanced-Java/src/DesignPatterns/memento/Main.java b/Advanced-Java/src/DesignPatterns/memento/Main.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/memento/Main.java rename to Advanced-Java/src/DesignPatterns/memento/Main.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/BrushTool.java b/Advanced-Java/src/DesignPatterns/state/BrushTool.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/BrushTool.java rename to Advanced-Java/src/DesignPatterns/state/BrushTool.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/Canvas.java b/Advanced-Java/src/DesignPatterns/state/Canvas.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/Canvas.java rename to Advanced-Java/src/DesignPatterns/state/Canvas.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/Main.java b/Advanced-Java/src/DesignPatterns/state/Main.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/Main.java rename to Advanced-Java/src/DesignPatterns/state/Main.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/Selection.java b/Advanced-Java/src/DesignPatterns/state/Selection.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/Selection.java rename to Advanced-Java/src/DesignPatterns/state/Selection.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/Tool.java b/Advanced-Java/src/DesignPatterns/state/Tool.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/Tool.java rename to Advanced-Java/src/DesignPatterns/state/Tool.java diff --git a/Java/Advanced-Java/src/DesignPatterns/state/ToolType.java b/Advanced-Java/src/DesignPatterns/state/ToolType.java similarity index 100% rename from Java/Advanced-Java/src/DesignPatterns/state/ToolType.java rename to Advanced-Java/src/DesignPatterns/state/ToolType.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/Gender.java b/Advanced-Java/src/FunctionalProgramming/Gender.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/Gender.java rename to Advanced-Java/src/FunctionalProgramming/Gender.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/Main.java b/Advanced-Java/src/FunctionalProgramming/Main.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/Main.java rename to Advanced-Java/src/FunctionalProgramming/Main.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/Person.java b/Advanced-Java/src/FunctionalProgramming/Person.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/Person.java rename to Advanced-Java/src/FunctionalProgramming/Person.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/_Function.java b/Advanced-Java/src/FunctionalProgramming/_Function.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/_Function.java rename to Advanced-Java/src/FunctionalProgramming/_Function.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/_Predicate.java b/Advanced-Java/src/FunctionalProgramming/_Predicate.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/_Predicate.java rename to Advanced-Java/src/FunctionalProgramming/_Predicate.java diff --git a/Java/Advanced-Java/src/FunctionalProgramming/_Supplier.java b/Advanced-Java/src/FunctionalProgramming/_Supplier.java similarity index 100% rename from Java/Advanced-Java/src/FunctionalProgramming/_Supplier.java rename to Advanced-Java/src/FunctionalProgramming/_Supplier.java diff --git a/Java/Advanced-Java/src/Optionals/_Optionals.java b/Advanced-Java/src/Optionals/_Optionals.java similarity index 100% rename from Java/Advanced-Java/src/Optionals/_Optionals.java rename to Advanced-Java/src/Optionals/_Optionals.java diff --git a/Java/Advanced-Java/src/csv_reader/CSVReader.java b/Advanced-Java/src/csv_reader/CSVReader.java similarity index 100% rename from Java/Advanced-Java/src/csv_reader/CSVReader.java rename to Advanced-Java/src/csv_reader/CSVReader.java diff --git a/Java/Advanced-Java/src/csv_reader/data.csv b/Advanced-Java/src/csv_reader/data.csv similarity index 100% rename from Java/Advanced-Java/src/csv_reader/data.csv rename to Advanced-Java/src/csv_reader/data.csv diff --git a/Java/Advanced-Java/src/dsa_koffman_ch2/JUnitTest.java b/Advanced-Java/src/dsa_koffman_ch2/JUnitTest.java similarity index 100% rename from Java/Advanced-Java/src/dsa_koffman_ch2/JUnitTest.java rename to Advanced-Java/src/dsa_koffman_ch2/JUnitTest.java diff --git a/Java/Advanced-Java/src/dsa_koffman_ch2/OrderedList.java b/Advanced-Java/src/dsa_koffman_ch2/OrderedList.java similarity index 100% rename from Java/Advanced-Java/src/dsa_koffman_ch2/OrderedList.java rename to Advanced-Java/src/dsa_koffman_ch2/OrderedList.java diff --git a/Java/Advanced-Java/src/dsa_koffman_ch2/TestOrderedList.java b/Advanced-Java/src/dsa_koffman_ch2/TestOrderedList.java similarity index 100% rename from Java/Advanced-Java/src/dsa_koffman_ch2/TestOrderedList.java rename to Advanced-Java/src/dsa_koffman_ch2/TestOrderedList.java diff --git a/Java/Advanced-Java/src/interfaces/Employee.java b/Advanced-Java/src/interfaces/Employee.java similarity index 100% rename from Java/Advanced-Java/src/interfaces/Employee.java rename to Advanced-Java/src/interfaces/Employee.java diff --git a/Java/Advanced-Java/src/interfaces/Person.java b/Advanced-Java/src/interfaces/Person.java similarity index 100% rename from Java/Advanced-Java/src/interfaces/Person.java rename to Advanced-Java/src/interfaces/Person.java diff --git a/Java/Advanced-Java/src/interfaces/TaxCollector.java b/Advanced-Java/src/interfaces/TaxCollector.java similarity index 100% rename from Java/Advanced-Java/src/interfaces/TaxCollector.java rename to Advanced-Java/src/interfaces/TaxCollector.java diff --git a/Java/Advanced-Java/src/interfaces/TaxPayer.java b/Advanced-Java/src/interfaces/TaxPayer.java similarity index 100% rename from Java/Advanced-Java/src/interfaces/TaxPayer.java rename to Advanced-Java/src/interfaces/TaxPayer.java diff --git a/Java/Advanced-Java/src/java8_features/FunctionalInterfaces.java b/Advanced-Java/src/java8_features/FunctionalInterfaces.java similarity index 100% rename from Java/Advanced-Java/src/java8_features/FunctionalInterfaces.java rename to Advanced-Java/src/java8_features/FunctionalInterfaces.java diff --git a/Java/Advanced-Java/src/java8_features/Lambda.java b/Advanced-Java/src/java8_features/Lambda.java similarity index 100% rename from Java/Advanced-Java/src/java8_features/Lambda.java rename to Advanced-Java/src/java8_features/Lambda.java diff --git a/Java/Advanced-Java/src/java8_features/LocalDateTimeExample.java b/Advanced-Java/src/java8_features/LocalDateTimeExample.java similarity index 100% rename from Java/Advanced-Java/src/java8_features/LocalDateTimeExample.java rename to Advanced-Java/src/java8_features/LocalDateTimeExample.java diff --git a/Java/Advanced-Java/src/java8_features/MethodReference.java b/Advanced-Java/src/java8_features/MethodReference.java similarity index 100% rename from Java/Advanced-Java/src/java8_features/MethodReference.java rename to Advanced-Java/src/java8_features/MethodReference.java diff --git a/Java/Advanced-Java/src/java8_features/Stream.java b/Advanced-Java/src/java8_features/Stream.java similarity index 100% rename from Java/Advanced-Java/src/java8_features/Stream.java rename to Advanced-Java/src/java8_features/Stream.java diff --git a/Java/Advanced-Java/src/java_gc/FinalizeExample.java b/Advanced-Java/src/java_gc/FinalizeExample.java similarity index 100% rename from Java/Advanced-Java/src/java_gc/FinalizeExample.java rename to Advanced-Java/src/java_gc/FinalizeExample.java diff --git a/Java/Advanced-Java/src/java_gc/WeakHashMapExample.java b/Advanced-Java/src/java_gc/WeakHashMapExample.java similarity index 100% rename from Java/Advanced-Java/src/java_gc/WeakHashMapExample.java rename to Advanced-Java/src/java_gc/WeakHashMapExample.java diff --git a/Java/Advanced-Java/src/java_gc/WeakReferenceExample.java b/Advanced-Java/src/java_gc/WeakReferenceExample.java similarity index 100% rename from Java/Advanced-Java/src/java_gc/WeakReferenceExample.java rename to Advanced-Java/src/java_gc/WeakReferenceExample.java diff --git a/Design-patterns/src/singleton/Captain.java b/Design-patterns/src/singleton/Captain.java new file mode 100644 index 0000000..dd9c36a --- /dev/null +++ b/Design-patterns/src/singleton/Captain.java @@ -0,0 +1,21 @@ +package singleton; + +// final is to avoid having non-static nested classes subclassing Captain +final class Captain { + + private static Captain captain; + + private Captain() {} + + // synchronized is for multithreaded purpose + public static synchronized Captain getInstance() { + if (captain == null) { // lazy initialization + captain = new Captain(); + System.out.println("A new captain is created :)"); + return captain; + } else { + System.out.println("You already have a captain!"); + } + return captain; + } +} diff --git a/Design-patterns/src/singleton/SingletonExample.java b/Design-patterns/src/singleton/SingletonExample.java new file mode 100644 index 0000000..6d8e430 --- /dev/null +++ b/Design-patterns/src/singleton/SingletonExample.java @@ -0,0 +1,13 @@ +package singleton; + +public class SingletonExample { + public static void main(String[] args) { + Captain captain1 = Captain.getInstance(); + Captain captain2 = Captain.getInstance(); + + if (captain1 == captain2) { + System.out.println("Captain 1 and 2 are same instances"); + } + + } +} diff --git a/interview-preparation.iml b/interview-preparation.iml index 81ac92b..9dbde82 100644 --- a/interview-preparation.iml +++ b/interview-preparation.iml @@ -4,6 +4,7 @@ +