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 @@ +