diff --git a/README.md b/README.md index 599eef3..9c531ee 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,8 @@ * Section 26: [JAVA 8] Streams API * Section 27: [JAVA 8] Optional to deal with nulls in Java * Section 28: MultiThreading in Java -* Section 28: Other prominent new features from Java 22 +* Section 29: Java 22, 23 and 24 new features +* Section 30: Java 25 new features ## Important Links - Online jshell - https://tryjshell.org @@ -45,7 +46,7 @@ - IntelliJ IDEA installation - https://www.jetbrains.com/idea/ - IntelliJ Debugging - https://www.jetbrains.com/help/idea/debugging-code.html - Java Documentation - https://docs.oracle.com/en/java/ -- Java 21 Documentation - https://docs.oracle.com/en/java/javase/21/docs/api/index.html +- Java 25 Documentation - https://docs.oracle.com/en/java/javase/25/docs/api/index.html - Javadoc tutorial - https://www.oracle.com/in/technical-resources/articles/java/javadoc-tool.html - IntelliJ Javadoc reference - https://www.jetbrains.com/help/idea/javadocs.html diff --git a/out/production/section3/Demo.class b/out/production/section3/Demo.class deleted file mode 100644 index 944f485..0000000 Binary files a/out/production/section3/Demo.class and /dev/null differ diff --git a/out/production/section3/HelloWorld.class b/out/production/section3/HelloWorld.class deleted file mode 100644 index d29238c..0000000 Binary files a/out/production/section3/HelloWorld.class and /dev/null differ diff --git a/out/production/section4/ArithmeticMain.class b/out/production/section4/ArithmeticMain.class deleted file mode 100644 index f5196ba..0000000 Binary files a/out/production/section4/ArithmeticMain.class and /dev/null differ diff --git a/out/production/section4/ArithmeticOperations.class b/out/production/section4/ArithmeticOperations.class deleted file mode 100644 index c332e7d..0000000 Binary files a/out/production/section4/ArithmeticOperations.class and /dev/null differ diff --git a/out/production/section4/Car.class b/out/production/section4/Car.class deleted file mode 100644 index efedc2c..0000000 Binary files a/out/production/section4/Car.class and /dev/null differ diff --git a/out/production/section4/CarMain.class b/out/production/section4/CarMain.class deleted file mode 100644 index 0d5f8d6..0000000 Binary files a/out/production/section4/CarMain.class and /dev/null differ diff --git a/out/production/section4/Employee.class b/out/production/section4/Employee.class deleted file mode 100644 index fc5052c..0000000 Binary files a/out/production/section4/Employee.class and /dev/null differ diff --git a/out/production/section4/EmployeeMain.class b/out/production/section4/EmployeeMain.class deleted file mode 100644 index 3d2d922..0000000 Binary files a/out/production/section4/EmployeeMain.class and /dev/null differ diff --git a/out/production/section4/HelloWorld.class b/out/production/section4/HelloWorld.class deleted file mode 100644 index 15663fc..0000000 Binary files a/out/production/section4/HelloWorld.class and /dev/null differ diff --git a/out/production/section4/MethodInvocationDemo.class b/out/production/section4/MethodInvocationDemo.class deleted file mode 100644 index 65b7032..0000000 Binary files a/out/production/section4/MethodInvocationDemo.class and /dev/null differ diff --git a/out/production/section4/NullDemo.class b/out/production/section4/NullDemo.class deleted file mode 100644 index cff4b34..0000000 Binary files a/out/production/section4/NullDemo.class and /dev/null differ diff --git a/out/production/section5/Customer.class b/out/production/section5/Customer.class deleted file mode 100644 index 66024a7..0000000 Binary files a/out/production/section5/Customer.class and /dev/null differ diff --git a/out/production/section5/JavaDocCommentsDemo.class b/out/production/section5/JavaDocCommentsDemo.class deleted file mode 100644 index ea7b51f..0000000 Binary files a/out/production/section5/JavaDocCommentsDemo.class and /dev/null differ diff --git a/out/production/section5/MultiLineCommentsDemo.class b/out/production/section5/MultiLineCommentsDemo.class deleted file mode 100644 index 3acbf37..0000000 Binary files a/out/production/section5/MultiLineCommentsDemo.class and /dev/null differ diff --git a/out/production/section5/SingleLineCommentDemo.class b/out/production/section5/SingleLineCommentDemo.class deleted file mode 100644 index c49a142..0000000 Binary files a/out/production/section5/SingleLineCommentDemo.class and /dev/null differ diff --git a/out/production/section6/ChangeCaseDemo.class b/out/production/section6/ChangeCaseDemo.class deleted file mode 100644 index 2ed5c42..0000000 Binary files a/out/production/section6/ChangeCaseDemo.class and /dev/null differ diff --git a/out/production/section6/CharAtMethodDemo.class b/out/production/section6/CharAtMethodDemo.class deleted file mode 100644 index 4a37276..0000000 Binary files a/out/production/section6/CharAtMethodDemo.class and /dev/null differ diff --git a/out/production/section6/ConcatMethodDemo.class b/out/production/section6/ConcatMethodDemo.class deleted file mode 100644 index 058d01e..0000000 Binary files a/out/production/section6/ConcatMethodDemo.class and /dev/null differ diff --git a/out/production/section6/ConvertStringDemo.class b/out/production/section6/ConvertStringDemo.class deleted file mode 100644 index b3ccf82..0000000 Binary files a/out/production/section6/ConvertStringDemo.class and /dev/null differ diff --git a/out/production/section6/EmptyCheckDemo.class b/out/production/section6/EmptyCheckDemo.class deleted file mode 100644 index 80e40ed..0000000 Binary files a/out/production/section6/EmptyCheckDemo.class and /dev/null differ diff --git a/out/production/section6/EscapeSeqDemo.class b/out/production/section6/EscapeSeqDemo.class deleted file mode 100644 index e5d1f6b..0000000 Binary files a/out/production/section6/EscapeSeqDemo.class and /dev/null differ diff --git a/out/production/section6/InternMethodDemo.class b/out/production/section6/InternMethodDemo.class deleted file mode 100644 index fd1ee86..0000000 Binary files a/out/production/section6/InternMethodDemo.class and /dev/null differ diff --git a/out/production/section6/LengthMethodDemo.class b/out/production/section6/LengthMethodDemo.class deleted file mode 100644 index d44612a..0000000 Binary files a/out/production/section6/LengthMethodDemo.class and /dev/null differ diff --git a/out/production/section6/PalindromeDemo.class b/out/production/section6/PalindromeDemo.class deleted file mode 100644 index cc4193c..0000000 Binary files a/out/production/section6/PalindromeDemo.class and /dev/null differ diff --git a/out/production/section6/ParsingDemo.class b/out/production/section6/ParsingDemo.class deleted file mode 100644 index 73c3378..0000000 Binary files a/out/production/section6/ParsingDemo.class and /dev/null differ diff --git a/out/production/section6/PrintfDemo.class b/out/production/section6/PrintfDemo.class deleted file mode 100644 index 5322f9a..0000000 Binary files a/out/production/section6/PrintfDemo.class and /dev/null differ diff --git a/out/production/section6/StringComparisonDemo.class b/out/production/section6/StringComparisonDemo.class deleted file mode 100644 index b11dec8..0000000 Binary files a/out/production/section6/StringComparisonDemo.class and /dev/null differ diff --git a/out/production/section6/StringFormatDemo.class b/out/production/section6/StringFormatDemo.class deleted file mode 100644 index a8dc7a9..0000000 Binary files a/out/production/section6/StringFormatDemo.class and /dev/null differ diff --git a/out/production/section6/StringImmutableDemo.class b/out/production/section6/StringImmutableDemo.class deleted file mode 100644 index 5b404aa..0000000 Binary files a/out/production/section6/StringImmutableDemo.class and /dev/null differ diff --git a/out/production/section6/StringJoinDemo.class b/out/production/section6/StringJoinDemo.class deleted file mode 100644 index 49dda4d..0000000 Binary files a/out/production/section6/StringJoinDemo.class and /dev/null differ diff --git a/out/production/section6/StringMutableDemo.class b/out/production/section6/StringMutableDemo.class deleted file mode 100644 index b53ae1b..0000000 Binary files a/out/production/section6/StringMutableDemo.class and /dev/null differ diff --git a/out/production/section6/StringPoolDemo.class b/out/production/section6/StringPoolDemo.class deleted file mode 100644 index 3c4ee87..0000000 Binary files a/out/production/section6/StringPoolDemo.class and /dev/null differ diff --git a/out/production/section6/StringReplaceDemo.class b/out/production/section6/StringReplaceDemo.class deleted file mode 100644 index 1a0d069..0000000 Binary files a/out/production/section6/StringReplaceDemo.class and /dev/null differ diff --git a/out/production/section6/StringSearchDemo.class b/out/production/section6/StringSearchDemo.class deleted file mode 100644 index 0d019c7..0000000 Binary files a/out/production/section6/StringSearchDemo.class and /dev/null differ diff --git a/out/production/section6/StringSplitDemo.class b/out/production/section6/StringSplitDemo.class deleted file mode 100644 index 464c60a..0000000 Binary files a/out/production/section6/StringSplitDemo.class and /dev/null differ diff --git a/out/production/section6/StringTrimDemo.class b/out/production/section6/StringTrimDemo.class deleted file mode 100644 index bac4ff1..0000000 Binary files a/out/production/section6/StringTrimDemo.class and /dev/null differ diff --git a/out/production/section6/SubStringDemo.class b/out/production/section6/SubStringDemo.class deleted file mode 100644 index 515163a..0000000 Binary files a/out/production/section6/SubStringDemo.class and /dev/null differ diff --git a/out/production/section6/TextBlockDemo.class b/out/production/section6/TextBlockDemo.class deleted file mode 100644 index 923a717..0000000 Binary files a/out/production/section6/TextBlockDemo.class and /dev/null differ diff --git a/out/production/section7/ArithmeticOperatorsDemo.class b/out/production/section7/ArithmeticOperatorsDemo.class deleted file mode 100644 index 225c2a9..0000000 Binary files a/out/production/section7/ArithmeticOperatorsDemo.class and /dev/null differ diff --git a/out/production/section7/AssignmentOperatorDemo.class b/out/production/section7/AssignmentOperatorDemo.class deleted file mode 100644 index f3d2c81..0000000 Binary files a/out/production/section7/AssignmentOperatorDemo.class and /dev/null differ diff --git a/out/production/section7/BitwiseOperatorsDemo.class b/out/production/section7/BitwiseOperatorsDemo.class deleted file mode 100644 index c68c0ee..0000000 Binary files a/out/production/section7/BitwiseOperatorsDemo.class and /dev/null differ diff --git a/out/production/section7/LogicalOperatorsDemo.class b/out/production/section7/LogicalOperatorsDemo.class deleted file mode 100644 index 21252a4..0000000 Binary files a/out/production/section7/LogicalOperatorsDemo.class and /dev/null differ diff --git a/out/production/section7/Person.class b/out/production/section7/Person.class deleted file mode 100644 index 1b65fbb..0000000 Binary files a/out/production/section7/Person.class and /dev/null differ diff --git a/out/production/section7/PrecedenceAssociativityDemo.class b/out/production/section7/PrecedenceAssociativityDemo.class deleted file mode 100644 index 33cd019..0000000 Binary files a/out/production/section7/PrecedenceAssociativityDemo.class and /dev/null differ diff --git a/out/production/section7/RelationalOperatorsDemo.class b/out/production/section7/RelationalOperatorsDemo.class deleted file mode 100644 index 3ef55b6..0000000 Binary files a/out/production/section7/RelationalOperatorsDemo.class and /dev/null differ diff --git a/out/production/section7/StringConcatenationDemo.class b/out/production/section7/StringConcatenationDemo.class deleted file mode 100644 index 0dc45c3..0000000 Binary files a/out/production/section7/StringConcatenationDemo.class and /dev/null differ diff --git a/out/production/section7/TernaryOperatorDemo.class b/out/production/section7/TernaryOperatorDemo.class deleted file mode 100644 index cab38a6..0000000 Binary files a/out/production/section7/TernaryOperatorDemo.class and /dev/null differ diff --git a/out/production/section8/BreakStatementDemo.class b/out/production/section8/BreakStatementDemo.class deleted file mode 100644 index dc5e426..0000000 Binary files a/out/production/section8/BreakStatementDemo.class and /dev/null differ diff --git a/out/production/section8/CanVote.class b/out/production/section8/CanVote.class deleted file mode 100644 index 3a7c8e0..0000000 Binary files a/out/production/section8/CanVote.class and /dev/null differ diff --git a/out/production/section8/ContinueStatementDemo.class b/out/production/section8/ContinueStatementDemo.class deleted file mode 100644 index 49a7d00..0000000 Binary files a/out/production/section8/ContinueStatementDemo.class and /dev/null differ diff --git a/out/production/section8/DoWhileStatementDemo.class b/out/production/section8/DoWhileStatementDemo.class deleted file mode 100644 index 375faba..0000000 Binary files a/out/production/section8/DoWhileStatementDemo.class and /dev/null differ diff --git a/out/production/section8/EvenOddNumber.class b/out/production/section8/EvenOddNumber.class deleted file mode 100644 index ddcf7ed..0000000 Binary files a/out/production/section8/EvenOddNumber.class and /dev/null differ diff --git a/out/production/section8/FindTheDay.class b/out/production/section8/FindTheDay.class deleted file mode 100644 index dce0db5..0000000 Binary files a/out/production/section8/FindTheDay.class and /dev/null differ diff --git a/out/production/section8/ForLoopDemo.class b/out/production/section8/ForLoopDemo.class deleted file mode 100644 index d5e3beb..0000000 Binary files a/out/production/section8/ForLoopDemo.class and /dev/null differ diff --git a/out/production/section8/LocalVariablesDemo.class b/out/production/section8/LocalVariablesDemo.class deleted file mode 100644 index 68d5b53..0000000 Binary files a/out/production/section8/LocalVariablesDemo.class and /dev/null differ diff --git a/out/production/section8/MessageForDay.class b/out/production/section8/MessageForDay.class deleted file mode 100644 index 5c68ffd..0000000 Binary files a/out/production/section8/MessageForDay.class and /dev/null differ diff --git a/out/production/section8/NestedForLoopDemo.class b/out/production/section8/NestedForLoopDemo.class deleted file mode 100644 index 2b64428..0000000 Binary files a/out/production/section8/NestedForLoopDemo.class and /dev/null differ diff --git a/out/production/section8/NotOperatorExample.class b/out/production/section8/NotOperatorExample.class deleted file mode 100644 index 684bc20..0000000 Binary files a/out/production/section8/NotOperatorExample.class and /dev/null differ diff --git a/out/production/section8/ReturnStatementDemo.class b/out/production/section8/ReturnStatementDemo.class deleted file mode 100644 index d25b523..0000000 Binary files a/out/production/section8/ReturnStatementDemo.class and /dev/null differ diff --git a/out/production/section8/SwitchCaseDemo.class b/out/production/section8/SwitchCaseDemo.class deleted file mode 100644 index 27ccc0f..0000000 Binary files a/out/production/section8/SwitchCaseDemo.class and /dev/null differ diff --git a/out/production/section8/SwitchExpressionDemo.class b/out/production/section8/SwitchExpressionDemo.class deleted file mode 100644 index 66e12bc..0000000 Binary files a/out/production/section8/SwitchExpressionDemo.class and /dev/null differ diff --git a/out/production/section8/TernaryOperator.class b/out/production/section8/TernaryOperator.class deleted file mode 100644 index b3b902d..0000000 Binary files a/out/production/section8/TernaryOperator.class and /dev/null differ diff --git a/out/production/section8/WhileStatementDemo.class b/out/production/section8/WhileStatementDemo.class deleted file mode 100644 index 9de889c..0000000 Binary files a/out/production/section8/WhileStatementDemo.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/app/AccessModifiersDemo.class b/out/production/section9/com/eazybytes/app/AccessModifiersDemo.class deleted file mode 100644 index 2b4843e..0000000 Binary files a/out/production/section9/com/eazybytes/app/AccessModifiersDemo.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/app/MainClass.class b/out/production/section9/com/eazybytes/app/MainClass.class deleted file mode 100644 index c0a4352..0000000 Binary files a/out/production/section9/com/eazybytes/app/MainClass.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/app/MyOuterClass$MyInnerClass.class b/out/production/section9/com/eazybytes/app/MyOuterClass$MyInnerClass.class deleted file mode 100644 index 7722a33..0000000 Binary files a/out/production/section9/com/eazybytes/app/MyOuterClass$MyInnerClass.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/app/MyOuterClass.class b/out/production/section9/com/eazybytes/app/MyOuterClass.class deleted file mode 100644 index 81a263a..0000000 Binary files a/out/production/section9/com/eazybytes/app/MyOuterClass.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/model/Class1.class b/out/production/section9/com/eazybytes/model/Class1.class deleted file mode 100644 index 3d38620..0000000 Binary files a/out/production/section9/com/eazybytes/model/Class1.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/model/Employee.class b/out/production/section9/com/eazybytes/model/Employee.class deleted file mode 100644 index e745f4d..0000000 Binary files a/out/production/section9/com/eazybytes/model/Employee.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/model/Person.class b/out/production/section9/com/eazybytes/model/Person.class deleted file mode 100644 index 35dc05b..0000000 Binary files a/out/production/section9/com/eazybytes/model/Person.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/model/Vehicle.class b/out/production/section9/com/eazybytes/model/Vehicle.class deleted file mode 100644 index ca69d67..0000000 Binary files a/out/production/section9/com/eazybytes/model/Vehicle.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/service/Class1.class b/out/production/section9/com/eazybytes/service/Class1.class deleted file mode 100644 index 95895ba..0000000 Binary files a/out/production/section9/com/eazybytes/service/Class1.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/service/VehicleService.class b/out/production/section9/com/eazybytes/service/VehicleService.class deleted file mode 100644 index 71f9dea..0000000 Binary files a/out/production/section9/com/eazybytes/service/VehicleService.class and /dev/null differ diff --git a/out/production/section9/com/eazybytes/utility/MyConstants.class b/out/production/section9/com/eazybytes/utility/MyConstants.class deleted file mode 100644 index 735f0d5..0000000 Binary files a/out/production/section9/com/eazybytes/utility/MyConstants.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/animals/Cat.class b/out/production/section_10/com/eazybytes/marvel/animals/Cat.class deleted file mode 100644 index aaa7f44..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/animals/Cat.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/animals/Dog.class b/out/production/section_10/com/eazybytes/marvel/animals/Dog.class deleted file mode 100644 index 12959f6..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/animals/Dog.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/AnimalUtility.class b/out/production/section_10/com/eazybytes/marvel/app/AnimalUtility.class deleted file mode 100644 index 61e16a1..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/AnimalUtility.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/ConstructorDemo.class b/out/production/section_10/com/eazybytes/marvel/app/ConstructorDemo.class deleted file mode 100644 index 21b24ad..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/ConstructorDemo.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/DownCastingDemo.class b/out/production/section_10/com/eazybytes/marvel/app/DownCastingDemo.class deleted file mode 100644 index a011c77..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/DownCastingDemo.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/DynamicPoly.class b/out/production/section_10/com/eazybytes/marvel/app/DynamicPoly.class deleted file mode 100644 index 1d5fbac..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/DynamicPoly.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/MarvelsMain.class b/out/production/section_10/com/eazybytes/marvel/app/MarvelsMain.class deleted file mode 100644 index a6955b2..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/MarvelsMain.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/StaticPoly.class b/out/production/section_10/com/eazybytes/marvel/app/StaticPoly.class deleted file mode 100644 index 0665544..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/StaticPoly.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/TestFieldHiding.class b/out/production/section_10/com/eazybytes/marvel/app/TestFieldHiding.class deleted file mode 100644 index 34658b6..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/TestFieldHiding.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/TestMethodHiding.class b/out/production/section_10/com/eazybytes/marvel/app/TestMethodHiding.class deleted file mode 100644 index 87b4817..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/TestMethodHiding.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/app/UpcastingDemo.class b/out/production/section_10/com/eazybytes/marvel/app/UpcastingDemo.class deleted file mode 100644 index 0389cad..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/app/UpcastingDemo.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/base/Animal.class b/out/production/section_10/com/eazybytes/marvel/base/Animal.class deleted file mode 100644 index 71fd742..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/base/Animal.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/base/Engine.class b/out/production/section_10/com/eazybytes/marvel/base/Engine.class deleted file mode 100644 index 84e3fcf..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/base/Engine.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/base/Person.class b/out/production/section_10/com/eazybytes/marvel/base/Person.class deleted file mode 100644 index f342cd2..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/base/Person.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/base/Subject.class b/out/production/section_10/com/eazybytes/marvel/base/Subject.class deleted file mode 100644 index 1771228..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/base/Subject.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/base/Vehicle.class b/out/production/section_10/com/eazybytes/marvel/base/Vehicle.class deleted file mode 100644 index 03ac921..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/base/Vehicle.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/heros/CaptainAmerica.class b/out/production/section_10/com/eazybytes/marvel/heros/CaptainAmerica.class deleted file mode 100644 index ba0b8cb..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/heros/CaptainAmerica.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/heros/IronMan.class b/out/production/section_10/com/eazybytes/marvel/heros/IronMan.class deleted file mode 100644 index ea2c149..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/heros/IronMan.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/heros/SpiderMan.class b/out/production/section_10/com/eazybytes/marvel/heros/SpiderMan.class deleted file mode 100644 index 8a20465..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/heros/SpiderMan.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/sealed/Employee.class b/out/production/section_10/com/eazybytes/marvel/sealed/Employee.class deleted file mode 100644 index c07c7cf..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/sealed/Employee.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/sealed/Person.class b/out/production/section_10/com/eazybytes/marvel/sealed/Person.class deleted file mode 100644 index 1d2226b..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/sealed/Person.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/sealed/Student.class b/out/production/section_10/com/eazybytes/marvel/sealed/Student.class deleted file mode 100644 index bbf0954..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/sealed/Student.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/subjects/Mathematics.class b/out/production/section_10/com/eazybytes/marvel/subjects/Mathematics.class deleted file mode 100644 index 3690cc5..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/subjects/Mathematics.class and /dev/null differ diff --git a/out/production/section_10/com/eazybytes/marvel/vehicle/Car.class b/out/production/section_10/com/eazybytes/marvel/vehicle/Car.class deleted file mode 100644 index d6980c3..0000000 Binary files a/out/production/section_10/com/eazybytes/marvel/vehicle/Car.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/Hero.class b/out/production/section_11/com/eazybytes/marvel/hero/Hero.class deleted file mode 100644 index dffe2eb..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/Hero.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/MyFunctionalInterface.class b/out/production/section_11/com/eazybytes/marvel/hero/MyFunctionalInterface.class deleted file mode 100644 index 0d1766e..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/MyFunctionalInterface.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/Person.class b/out/production/section_11/com/eazybytes/marvel/hero/Person.class deleted file mode 100644 index 008c996..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/Person.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/SuperHero.class b/out/production/section_11/com/eazybytes/marvel/hero/SuperHero.class deleted file mode 100644 index 747e933..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/SuperHero.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/app/MarvelHeroDemo.class b/out/production/section_11/com/eazybytes/marvel/hero/app/MarvelHeroDemo.class deleted file mode 100644 index 6be212b..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/app/MarvelHeroDemo.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/impl/CaptainAmerica.class b/out/production/section_11/com/eazybytes/marvel/hero/impl/CaptainAmerica.class deleted file mode 100644 index 68cf32d..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/impl/CaptainAmerica.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/impl/Developer.class b/out/production/section_11/com/eazybytes/marvel/hero/impl/Developer.class deleted file mode 100644 index 3ac6b90..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/impl/Developer.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/impl/Employee.class b/out/production/section_11/com/eazybytes/marvel/hero/impl/Employee.class deleted file mode 100644 index f6b173f..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/impl/Employee.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/impl/IronMan.class b/out/production/section_11/com/eazybytes/marvel/hero/impl/IronMan.class deleted file mode 100644 index 2ddadd2..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/impl/IronMan.class and /dev/null differ diff --git a/out/production/section_11/com/eazybytes/marvel/hero/impl/SpiderMan.class b/out/production/section_11/com/eazybytes/marvel/hero/impl/SpiderMan.class deleted file mode 100644 index 6ecf9a6..0000000 Binary files a/out/production/section_11/com/eazybytes/marvel/hero/impl/SpiderMan.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/AddMatricesDemo.class b/out/production/section_12/com/eazybytes/main/AddMatricesDemo.class deleted file mode 100644 index 7a683cb..0000000 Binary files a/out/production/section_12/com/eazybytes/main/AddMatricesDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ArrayCopyDemo.class b/out/production/section_12/com/eazybytes/main/ArrayCopyDemo.class deleted file mode 100644 index 168ffd6..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ArrayCopyDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ArrayForEachLoopDemo.class b/out/production/section_12/com/eazybytes/main/ArrayForEachLoopDemo.class deleted file mode 100644 index 6b4797a..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ArrayForEachLoopDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ArrayForLoopDemo.class b/out/production/section_12/com/eazybytes/main/ArrayForLoopDemo.class deleted file mode 100644 index 2f5bb3d..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ArrayForLoopDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ArrayLengthDemo.class b/out/production/section_12/com/eazybytes/main/ArrayLengthDemo.class deleted file mode 100644 index e497703..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ArrayLengthDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ArraysBasics.class b/out/production/section_12/com/eazybytes/main/ArraysBasics.class deleted file mode 100644 index cbe2c2f..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ArraysBasics.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/FillDemo.class b/out/production/section_12/com/eazybytes/main/FillDemo.class deleted file mode 100644 index 5c317cd..0000000 Binary files a/out/production/section_12/com/eazybytes/main/FillDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/JaggedArrayDemo.class b/out/production/section_12/com/eazybytes/main/JaggedArrayDemo.class deleted file mode 100644 index 43012e1..0000000 Binary files a/out/production/section_12/com/eazybytes/main/JaggedArrayDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/SearchDemo.class b/out/production/section_12/com/eazybytes/main/SearchDemo.class deleted file mode 100644 index cc90233..0000000 Binary files a/out/production/section_12/com/eazybytes/main/SearchDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/SortDemo.class b/out/production/section_12/com/eazybytes/main/SortDemo.class deleted file mode 100644 index 53ccfd5..0000000 Binary files a/out/production/section_12/com/eazybytes/main/SortDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ThreeDArrayDemo.class b/out/production/section_12/com/eazybytes/main/ThreeDArrayDemo.class deleted file mode 100644 index 2df826e..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ThreeDArrayDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/ToStringDemo.class b/out/production/section_12/com/eazybytes/main/ToStringDemo.class deleted file mode 100644 index 79c17ab..0000000 Binary files a/out/production/section_12/com/eazybytes/main/ToStringDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/main/TwoDArrayDemo.class b/out/production/section_12/com/eazybytes/main/TwoDArrayDemo.class deleted file mode 100644 index 1881e91..0000000 Binary files a/out/production/section_12/com/eazybytes/main/TwoDArrayDemo.class and /dev/null differ diff --git a/out/production/section_12/com/eazybytes/model/Person.class b/out/production/section_12/com/eazybytes/model/Person.class deleted file mode 100644 index 8596fc2..0000000 Binary files a/out/production/section_12/com/eazybytes/model/Person.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/BufferedReaderDemo.class b/out/production/section_13/com/eazybytes/input/BufferedReaderDemo.class deleted file mode 100644 index f9ad9d4..0000000 Binary files a/out/production/section_13/com/eazybytes/input/BufferedReaderDemo.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/BufferedReaderEvenOddDemo.class b/out/production/section_13/com/eazybytes/input/BufferedReaderEvenOddDemo.class deleted file mode 100644 index 295b868..0000000 Binary files a/out/production/section_13/com/eazybytes/input/BufferedReaderEvenOddDemo.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/BufferedReaderSumDemo.class b/out/production/section_13/com/eazybytes/input/BufferedReaderSumDemo.class deleted file mode 100644 index 2f66daa..0000000 Binary files a/out/production/section_13/com/eazybytes/input/BufferedReaderSumDemo.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/FileReaderWithBFR.class b/out/production/section_13/com/eazybytes/input/FileReaderWithBFR.class deleted file mode 100644 index e5876c7..0000000 Binary files a/out/production/section_13/com/eazybytes/input/FileReaderWithBFR.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/FileReaderWithScanner.class b/out/production/section_13/com/eazybytes/input/FileReaderWithScanner.class deleted file mode 100644 index 6ca5454..0000000 Binary files a/out/production/section_13/com/eazybytes/input/FileReaderWithScanner.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/JavaBasicInputDemo.class b/out/production/section_13/com/eazybytes/input/JavaBasicInputDemo.class deleted file mode 100644 index bb5d059..0000000 Binary files a/out/production/section_13/com/eazybytes/input/JavaBasicInputDemo.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/PrimeNumberChecker.class b/out/production/section_13/com/eazybytes/input/PrimeNumberChecker.class deleted file mode 100644 index 693328c..0000000 Binary files a/out/production/section_13/com/eazybytes/input/PrimeNumberChecker.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/PrimeNumberCheckerScanner.class b/out/production/section_13/com/eazybytes/input/PrimeNumberCheckerScanner.class deleted file mode 100644 index 604acb0..0000000 Binary files a/out/production/section_13/com/eazybytes/input/PrimeNumberCheckerScanner.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/input/ScannerDemo.class b/out/production/section_13/com/eazybytes/input/ScannerDemo.class deleted file mode 100644 index 27b2c9d..0000000 Binary files a/out/production/section_13/com/eazybytes/input/ScannerDemo.class and /dev/null differ diff --git a/out/production/section_13/com/eazybytes/log/LoggingDemo.class b/out/production/section_13/com/eazybytes/log/LoggingDemo.class deleted file mode 100644 index c82ddba..0000000 Binary files a/out/production/section_13/com/eazybytes/log/LoggingDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/AcceptAgeDetails.class b/out/production/section_14/com/eazybytes/exception/AcceptAgeDetails.class deleted file mode 100644 index ed81b27..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/AcceptAgeDetails.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/ArrayIndexOutofBoundsExceptionDemo.class b/out/production/section_14/com/eazybytes/exception/ArrayIndexOutofBoundsExceptionDemo.class deleted file mode 100644 index 46959ed..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/ArrayIndexOutofBoundsExceptionDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/CheckedExceptionDemo.class b/out/production/section_14/com/eazybytes/exception/CheckedExceptionDemo.class deleted file mode 100644 index 6aab291..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/CheckedExceptionDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/DivideByZero.class b/out/production/section_14/com/eazybytes/exception/DivideByZero.class deleted file mode 100644 index 1d1b89c..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/DivideByZero.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/Division.class b/out/production/section_14/com/eazybytes/exception/Division.class deleted file mode 100644 index c39bd46..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/Division.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/ExceptionDemo.class b/out/production/section_14/com/eazybytes/exception/ExceptionDemo.class deleted file mode 100644 index ebf763c..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/ExceptionDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/ExceptionPropogationDemo.class b/out/production/section_14/com/eazybytes/exception/ExceptionPropogationDemo.class deleted file mode 100644 index ae265aa..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/ExceptionPropogationDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/MultipleCatchDemo.class b/out/production/section_14/com/eazybytes/exception/MultipleCatchDemo.class deleted file mode 100644 index e5e3205..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/MultipleCatchDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/NestedTryDemo.class b/out/production/section_14/com/eazybytes/exception/NestedTryDemo.class deleted file mode 100644 index 8e6893b..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/NestedTryDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/ThrowDemo.class b/out/production/section_14/com/eazybytes/exception/ThrowDemo.class deleted file mode 100644 index 719fc62..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/ThrowDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/ThrowsDemo.class b/out/production/section_14/com/eazybytes/exception/ThrowsDemo.class deleted file mode 100644 index 08f1c27..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/ThrowsDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/TryWithResourcesDemo.class b/out/production/section_14/com/eazybytes/exception/TryWithResourcesDemo.class deleted file mode 100644 index 4223bc3..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/TryWithResourcesDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/UnCheckedExceptionsDemo.class b/out/production/section_14/com/eazybytes/exception/UnCheckedExceptionsDemo.class deleted file mode 100644 index c1edb4e..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/UnCheckedExceptionsDemo.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/custom/DivideByZeroException.class b/out/production/section_14/com/eazybytes/exception/custom/DivideByZeroException.class deleted file mode 100644 index b7c701f..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/custom/DivideByZeroException.class and /dev/null differ diff --git a/out/production/section_14/com/eazybytes/exception/custom/InvalidAgeException.class b/out/production/section_14/com/eazybytes/exception/custom/InvalidAgeException.class deleted file mode 100644 index 308f999..0000000 Binary files a/out/production/section_14/com/eazybytes/exception/custom/InvalidAgeException.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/CloneDemo.class b/out/production/section_15/com/eazybytes/object/demo/CloneDemo.class deleted file mode 100644 index ab080ab..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/CloneDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/CloneExample.class b/out/production/section_15/com/eazybytes/object/demo/CloneExample.class deleted file mode 100644 index 34af9f0..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/CloneExample.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/Course.class b/out/production/section_15/com/eazybytes/object/demo/Course.class deleted file mode 100644 index ec940c4..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/Course.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/FinalizeDemo.class b/out/production/section_15/com/eazybytes/object/demo/FinalizeDemo.class deleted file mode 100644 index ac0cb82..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/FinalizeDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/GetClassDemo.class b/out/production/section_15/com/eazybytes/object/demo/GetClassDemo.class deleted file mode 100644 index e8a9ad7..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/GetClassDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/HashCodeEqualsDemo.class b/out/production/section_15/com/eazybytes/object/demo/HashCodeEqualsDemo.class deleted file mode 100644 index 4ad4d9b..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/HashCodeEqualsDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/ImmutableDemo.class b/out/production/section_15/com/eazybytes/object/demo/ImmutableDemo.class deleted file mode 100644 index 5efc4b3..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/ImmutableDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/ImmutablePerson.class b/out/production/section_15/com/eazybytes/object/demo/ImmutablePerson.class deleted file mode 100644 index 6df2ace..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/ImmutablePerson.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/MutableDemo.class b/out/production/section_15/com/eazybytes/object/demo/MutableDemo.class deleted file mode 100644 index ef7b17c..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/MutableDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/MutablePerson.class b/out/production/section_15/com/eazybytes/object/demo/MutablePerson.class deleted file mode 100644 index 2d021c4..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/MutablePerson.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/Person.class b/out/production/section_15/com/eazybytes/object/demo/Person.class deleted file mode 100644 index 117a1b7..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/Person.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/PersonRecord.class b/out/production/section_15/com/eazybytes/object/demo/PersonRecord.class deleted file mode 100644 index 9910ea6..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/PersonRecord.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/RecordDemo.class b/out/production/section_15/com/eazybytes/object/demo/RecordDemo.class deleted file mode 100644 index 74e1cd3..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/RecordDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/StringDemo.class b/out/production/section_15/com/eazybytes/object/demo/StringDemo.class deleted file mode 100644 index a81d379..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/StringDemo.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/Student.class b/out/production/section_15/com/eazybytes/object/demo/Student.class deleted file mode 100644 index 9d9ea97..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/Student.class and /dev/null differ diff --git a/out/production/section_15/com/eazybytes/object/demo/VarDemo.class b/out/production/section_15/com/eazybytes/object/demo/VarDemo.class deleted file mode 100644 index 68ef0cb..0000000 Binary files a/out/production/section_15/com/eazybytes/object/demo/VarDemo.class and /dev/null differ diff --git a/out/production/section_16/com/eazybytes/wrapper/AutoboxingUnboxingDemo.class b/out/production/section_16/com/eazybytes/wrapper/AutoboxingUnboxingDemo.class deleted file mode 100644 index 2fef310..0000000 Binary files a/out/production/section_16/com/eazybytes/wrapper/AutoboxingUnboxingDemo.class and /dev/null differ diff --git a/out/production/section_16/com/eazybytes/wrapper/BoxingDemo.class b/out/production/section_16/com/eazybytes/wrapper/BoxingDemo.class deleted file mode 100644 index bdd505c..0000000 Binary files a/out/production/section_16/com/eazybytes/wrapper/BoxingDemo.class and /dev/null differ diff --git a/out/production/section_16/com/eazybytes/wrapper/UnboxingDemo.class b/out/production/section_16/com/eazybytes/wrapper/UnboxingDemo.class deleted file mode 100644 index ac5bbad..0000000 Binary files a/out/production/section_16/com/eazybytes/wrapper/UnboxingDemo.class and /dev/null differ diff --git a/out/production/section_16/com/eazybytes/wrapper/WrapperObjectsCaching.class b/out/production/section_16/com/eazybytes/wrapper/WrapperObjectsCaching.class deleted file mode 100644 index 258e931..0000000 Binary files a/out/production/section_16/com/eazybytes/wrapper/WrapperObjectsCaching.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ArrayListDemo.class b/out/production/section_17/com/eazybytes/list/ArrayListDemo.class deleted file mode 100644 index 6f5c7a2..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ArrayListDemo.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ArrayListForEachExample.class b/out/production/section_17/com/eazybytes/list/ArrayListForEachExample.class deleted file mode 100644 index 147bbea..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ArrayListForEachExample.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ArrayListIteratorExample.class b/out/production/section_17/com/eazybytes/list/ArrayListIteratorExample.class deleted file mode 100644 index b91abcb..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ArrayListIteratorExample.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ArrayListListIteratorExample.class b/out/production/section_17/com/eazybytes/list/ArrayListListIteratorExample.class deleted file mode 100644 index 0d1f466..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ArrayListListIteratorExample.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ArrayVsArrayList.class b/out/production/section_17/com/eazybytes/list/ArrayVsArrayList.class deleted file mode 100644 index 4839c36..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ArrayVsArrayList.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/DiamondOperator.class b/out/production/section_17/com/eazybytes/list/DiamondOperator.class deleted file mode 100644 index a5ca3fa..0000000 Binary files a/out/production/section_17/com/eazybytes/list/DiamondOperator.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/ImmutableListDemo.class b/out/production/section_17/com/eazybytes/list/ImmutableListDemo.class deleted file mode 100644 index 6056756..0000000 Binary files a/out/production/section_17/com/eazybytes/list/ImmutableListDemo.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/LastCharComparator.class b/out/production/section_17/com/eazybytes/list/LastCharComparator.class deleted file mode 100644 index 4322aae..0000000 Binary files a/out/production/section_17/com/eazybytes/list/LastCharComparator.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/SortingDemo.class b/out/production/section_17/com/eazybytes/list/SortingDemo.class deleted file mode 100644 index a169282..0000000 Binary files a/out/production/section_17/com/eazybytes/list/SortingDemo.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/Student.class b/out/production/section_17/com/eazybytes/list/Student.class deleted file mode 100644 index 994bb5a..0000000 Binary files a/out/production/section_17/com/eazybytes/list/Student.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/StudentComparator.class b/out/production/section_17/com/eazybytes/list/StudentComparator.class deleted file mode 100644 index c42b764..0000000 Binary files a/out/production/section_17/com/eazybytes/list/StudentComparator.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/StudentMarkComparator.class b/out/production/section_17/com/eazybytes/list/StudentMarkComparator.class deleted file mode 100644 index b5fb0a5..0000000 Binary files a/out/production/section_17/com/eazybytes/list/StudentMarkComparator.class and /dev/null differ diff --git a/out/production/section_17/com/eazybytes/list/StudentSortingDemo.class b/out/production/section_17/com/eazybytes/list/StudentSortingDemo.class deleted file mode 100644 index f51a471..0000000 Binary files a/out/production/section_17/com/eazybytes/list/StudentSortingDemo.class and /dev/null differ diff --git a/out/production/section_18/com/eazybytes/list/LastCharComparator.class b/out/production/section_18/com/eazybytes/list/LastCharComparator.class deleted file mode 100644 index 4322aae..0000000 Binary files a/out/production/section_18/com/eazybytes/list/LastCharComparator.class and /dev/null differ diff --git a/out/production/section_18/com/eazybytes/list/LinkedListDemo.class b/out/production/section_18/com/eazybytes/list/LinkedListDemo.class deleted file mode 100644 index ceeb58e..0000000 Binary files a/out/production/section_18/com/eazybytes/list/LinkedListDemo.class and /dev/null differ diff --git a/out/production/section_18/com/eazybytes/list/LinkedListIteration.class b/out/production/section_18/com/eazybytes/list/LinkedListIteration.class deleted file mode 100644 index f4fcf1b..0000000 Binary files a/out/production/section_18/com/eazybytes/list/LinkedListIteration.class and /dev/null differ diff --git a/out/production/section_18/com/eazybytes/list/SortingDemo.class b/out/production/section_18/com/eazybytes/list/SortingDemo.class deleted file mode 100644 index 5357e97..0000000 Binary files a/out/production/section_18/com/eazybytes/list/SortingDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/CovarianceDemo.class b/out/production/section_19/com/eazybytes/generics/CovarianceDemo.class deleted file mode 100644 index 6c0d1f5..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/CovarianceDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/GenericCodeDemo.class b/out/production/section_19/com/eazybytes/generics/GenericCodeDemo.class deleted file mode 100644 index 13f47ed..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/GenericCodeDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/GenericMethodDemo.class b/out/production/section_19/com/eazybytes/generics/GenericMethodDemo.class deleted file mode 100644 index 1b4e59d..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/GenericMethodDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/GenericPair.class b/out/production/section_19/com/eazybytes/generics/GenericPair.class deleted file mode 100644 index 11788bb..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/GenericPair.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/LowerBoundWildCardDemo.class b/out/production/section_19/com/eazybytes/generics/LowerBoundWildCardDemo.class deleted file mode 100644 index 9a26767..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/LowerBoundWildCardDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/NonGenericCodeDemo.class b/out/production/section_19/com/eazybytes/generics/NonGenericCodeDemo.class deleted file mode 100644 index 5d36721..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/NonGenericCodeDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/Pair.class b/out/production/section_19/com/eazybytes/generics/Pair.class deleted file mode 100644 index 0161769..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/Pair.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/UnBoundedWildCardDemo.class b/out/production/section_19/com/eazybytes/generics/UnBoundedWildCardDemo.class deleted file mode 100644 index 18adba8..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/UnBoundedWildCardDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/UpperBoundWildCardDemo.class b/out/production/section_19/com/eazybytes/generics/UpperBoundWildCardDemo.class deleted file mode 100644 index b6a5b94..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/UpperBoundWildCardDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/WithOutGenericsDemo.class b/out/production/section_19/com/eazybytes/generics/WithOutGenericsDemo.class deleted file mode 100644 index 1d24119..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/WithOutGenericsDemo.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/model/Developer.class b/out/production/section_19/com/eazybytes/generics/model/Developer.class deleted file mode 100644 index 582d2c3..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/model/Developer.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/model/Employee.class b/out/production/section_19/com/eazybytes/generics/model/Employee.class deleted file mode 100644 index 0239a4b..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/model/Employee.class and /dev/null differ diff --git a/out/production/section_19/com/eazybytes/generics/model/Manager.class b/out/production/section_19/com/eazybytes/generics/model/Manager.class deleted file mode 100644 index afd8cac..0000000 Binary files a/out/production/section_19/com/eazybytes/generics/model/Manager.class and /dev/null differ diff --git a/out/production/section_20/com/eazybytes/map/HashMapDemo.class b/out/production/section_20/com/eazybytes/map/HashMapDemo.class deleted file mode 100644 index c5b6eef..0000000 Binary files a/out/production/section_20/com/eazybytes/map/HashMapDemo.class and /dev/null differ diff --git a/out/production/section_20/com/eazybytes/map/HashMapIterationDemo.class b/out/production/section_20/com/eazybytes/map/HashMapIterationDemo.class deleted file mode 100644 index f753b82..0000000 Binary files a/out/production/section_20/com/eazybytes/map/HashMapIterationDemo.class and /dev/null differ diff --git a/out/production/section_20/com/eazybytes/map/ImmutableMapDemo.class b/out/production/section_20/com/eazybytes/map/ImmutableMapDemo.class deleted file mode 100644 index 81e8612..0000000 Binary files a/out/production/section_20/com/eazybytes/map/ImmutableMapDemo.class and /dev/null differ diff --git a/out/production/section_20/com/eazybytes/map/LinkedHashMapDemo.class b/out/production/section_20/com/eazybytes/map/LinkedHashMapDemo.class deleted file mode 100644 index 972143c..0000000 Binary files a/out/production/section_20/com/eazybytes/map/LinkedHashMapDemo.class and /dev/null differ diff --git a/out/production/section_20/com/eazybytes/map/TreeMapDemo.class b/out/production/section_20/com/eazybytes/map/TreeMapDemo.class deleted file mode 100644 index 9770d59..0000000 Binary files a/out/production/section_20/com/eazybytes/map/TreeMapDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/HashSetDemo.class b/out/production/section_21/com/eazybytes/set/HashSetDemo.class deleted file mode 100644 index efd2b8c..0000000 Binary files a/out/production/section_21/com/eazybytes/set/HashSetDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/HashSetIterationDemo.class b/out/production/section_21/com/eazybytes/set/HashSetIterationDemo.class deleted file mode 100644 index 5f8b2cc..0000000 Binary files a/out/production/section_21/com/eazybytes/set/HashSetIterationDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/ImmutableSetDemo.class b/out/production/section_21/com/eazybytes/set/ImmutableSetDemo.class deleted file mode 100644 index 9c3290b..0000000 Binary files a/out/production/section_21/com/eazybytes/set/ImmutableSetDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/LinkedHashSetDemo.class b/out/production/section_21/com/eazybytes/set/LinkedHashSetDemo.class deleted file mode 100644 index 583181a..0000000 Binary files a/out/production/section_21/com/eazybytes/set/LinkedHashSetDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/SetOperationsDemo.class b/out/production/section_21/com/eazybytes/set/SetOperationsDemo.class deleted file mode 100644 index 5085f59..0000000 Binary files a/out/production/section_21/com/eazybytes/set/SetOperationsDemo.class and /dev/null differ diff --git a/out/production/section_21/com/eazybytes/set/TreeSetDemo.class b/out/production/section_21/com/eazybytes/set/TreeSetDemo.class deleted file mode 100644 index 580fff7..0000000 Binary files a/out/production/section_21/com/eazybytes/set/TreeSetDemo.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnum.class b/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnum.class deleted file mode 100644 index 488a83d..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnum.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnumTest.class b/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnumTest.class deleted file mode 100644 index c83c9c2..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/AdvancedPriorityEnumTest.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Car$Model.class b/out/production/section_22/com/eazybytes/enumeration/Car$Model.class deleted file mode 100644 index 52e6f25..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Car$Model.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Car.class b/out/production/section_22/com/eazybytes/enumeration/Car.class deleted file mode 100644 index 9f8db2a..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Car.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Day.class b/out/production/section_22/com/eazybytes/enumeration/Day.class deleted file mode 100644 index 6a074e8..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Day.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/EnumSetDemo.class b/out/production/section_22/com/eazybytes/enumeration/EnumSetDemo.class deleted file mode 100644 index e8e72e4..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/EnumSetDemo.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Grades.class b/out/production/section_22/com/eazybytes/enumeration/Grades.class deleted file mode 100644 index 2873821..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Grades.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/InternalEnumMethodsDemo.class b/out/production/section_22/com/eazybytes/enumeration/InternalEnumMethodsDemo.class deleted file mode 100644 index c5b3ca7..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/InternalEnumMethodsDemo.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Priority.class b/out/production/section_22/com/eazybytes/enumeration/Priority.class deleted file mode 100644 index 39eb544..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Priority.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/PriorityEnum.class b/out/production/section_22/com/eazybytes/enumeration/PriorityEnum.class deleted file mode 100644 index b836018..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/PriorityEnum.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/Size.class b/out/production/section_22/com/eazybytes/enumeration/Size.class deleted file mode 100644 index 8bb1674..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/Size.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/TaskPriorityConstantDemo.class b/out/production/section_22/com/eazybytes/enumeration/TaskPriorityConstantDemo.class deleted file mode 100644 index 14763c6..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/TaskPriorityConstantDemo.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/TaskUtil$1.class b/out/production/section_22/com/eazybytes/enumeration/TaskUtil$1.class deleted file mode 100644 index 050e6a7..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/TaskUtil$1.class and /dev/null differ diff --git a/out/production/section_22/com/eazybytes/enumeration/TaskUtil.class b/out/production/section_22/com/eazybytes/enumeration/TaskUtil.class deleted file mode 100644 index b25a70c..0000000 Binary files a/out/production/section_22/com/eazybytes/enumeration/TaskUtil.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/CalendarDemo.class b/out/production/section_23/com/eazybytes/legacy/CalendarDemo.class deleted file mode 100644 index e42d7a1..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/CalendarDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/DateFormattingDemo.class b/out/production/section_23/com/eazybytes/legacy/DateFormattingDemo.class deleted file mode 100644 index fabdd7e..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/DateFormattingDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/JavaSQLDate.class b/out/production/section_23/com/eazybytes/legacy/JavaSQLDate.class deleted file mode 100644 index ce850d4..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/JavaSQLDate.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/JavaUtilDate.class b/out/production/section_23/com/eazybytes/legacy/JavaUtilDate.class deleted file mode 100644 index 630f9f9..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/JavaUtilDate.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/LegacyDateAPIDemo.class b/out/production/section_23/com/eazybytes/legacy/LegacyDateAPIDemo.class deleted file mode 100644 index 493ac4a..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/LegacyDateAPIDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/TimeZoneDatesDemo.class b/out/production/section_23/com/eazybytes/legacy/TimeZoneDatesDemo.class deleted file mode 100644 index 5153b7b..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/TimeZoneDatesDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/legacy/TimeZoneIDsList.class b/out/production/section_23/com/eazybytes/legacy/TimeZoneIDsList.class deleted file mode 100644 index 6e57467..0000000 Binary files a/out/production/section_23/com/eazybytes/legacy/TimeZoneIDsList.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/DateTimeFormatterDemo.class b/out/production/section_23/com/eazybytes/newapi/DateTimeFormatterDemo.class deleted file mode 100644 index 50c4ed2..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/DateTimeFormatterDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/FromAndWithMethodsDemo.class b/out/production/section_23/com/eazybytes/newapi/FromAndWithMethodsDemo.class deleted file mode 100644 index 8b5d311..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/FromAndWithMethodsDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/GetPlusMinusMethodsDemo.class b/out/production/section_23/com/eazybytes/newapi/GetPlusMinusMethodsDemo.class deleted file mode 100644 index d6de477..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/GetPlusMinusMethodsDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/InstantDemo.class b/out/production/section_23/com/eazybytes/newapi/InstantDemo.class deleted file mode 100644 index dbb2372..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/InstantDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/JapaneseCalendarDemo.class b/out/production/section_23/com/eazybytes/newapi/JapaneseCalendarDemo.class deleted file mode 100644 index 8c655aa..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/JapaneseCalendarDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/MultiDivNegateDemo.class b/out/production/section_23/com/eazybytes/newapi/MultiDivNegateDemo.class deleted file mode 100644 index 0072de4..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/MultiDivNegateDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/NewDateTimeAPIDemo.class b/out/production/section_23/com/eazybytes/newapi/NewDateTimeAPIDemo.class deleted file mode 100644 index 8647f1b..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/NewDateTimeAPIDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/OfMethodsDemo.class b/out/production/section_23/com/eazybytes/newapi/OfMethodsDemo.class deleted file mode 100644 index 7832884..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/OfMethodsDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/OffsetDateTimeDemo.class b/out/production/section_23/com/eazybytes/newapi/OffsetDateTimeDemo.class deleted file mode 100644 index 166a57b..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/OffsetDateTimeDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/OffsetTimeDemo.class b/out/production/section_23/com/eazybytes/newapi/OffsetTimeDemo.class deleted file mode 100644 index f14d12a..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/OffsetTimeDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/ParsingDemo.class b/out/production/section_23/com/eazybytes/newapi/ParsingDemo.class deleted file mode 100644 index 4d6680f..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/ParsingDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/PeriodDemo.class b/out/production/section_23/com/eazybytes/newapi/PeriodDemo.class deleted file mode 100644 index 851b2ff..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/PeriodDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/ToAndAtMethodsDemo.class b/out/production/section_23/com/eazybytes/newapi/ToAndAtMethodsDemo.class deleted file mode 100644 index 68d703a..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/ToAndAtMethodsDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/TruncatedToMethodDemo.class b/out/production/section_23/com/eazybytes/newapi/TruncatedToMethodDemo.class deleted file mode 100644 index 5241bcf..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/TruncatedToMethodDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/ZoneIDListDemo.class b/out/production/section_23/com/eazybytes/newapi/ZoneIDListDemo.class deleted file mode 100644 index 0244b20..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/ZoneIDListDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDSTDemo.class b/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDSTDemo.class deleted file mode 100644 index e635cd7..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDSTDemo.class and /dev/null differ diff --git a/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDemo.class b/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDemo.class deleted file mode 100644 index 4ca9553..0000000 Binary files a/out/production/section_23/com/eazybytes/newapi/ZonedDateTimeDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$1.class b/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$1.class deleted file mode 100644 index 0b046e2..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$1.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$2.class b/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$2.class deleted file mode 100644 index db35f1a..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo$2.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo.class b/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo.class deleted file mode 100644 index 6259be5..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/AnonymousClassDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/ArithmeticOperation.class b/out/production/section_24/com/eazybytes/lambda/ArithmeticOperation.class deleted file mode 100644 index e1da0ec..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/ArithmeticOperation.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/BiFunctionsDemo.class b/out/production/section_24/com/eazybytes/lambda/BiFunctionsDemo.class deleted file mode 100644 index 5334032..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/BiFunctionsDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/ConsumerDemo.class b/out/production/section_24/com/eazybytes/lambda/ConsumerDemo.class deleted file mode 100644 index a92ed37..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/ConsumerDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/FunctionDemo.class b/out/production/section_24/com/eazybytes/lambda/FunctionDemo.class deleted file mode 100644 index 37abf56..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/FunctionDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/Hello.class b/out/production/section_24/com/eazybytes/lambda/Hello.class deleted file mode 100644 index 35b7ce2..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/Hello.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/LamdaExpressionDemo.class b/out/production/section_24/com/eazybytes/lambda/LamdaExpressionDemo.class deleted file mode 100644 index e94c737..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/LamdaExpressionDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/LexicalScopeTest.class b/out/production/section_24/com/eazybytes/lambda/LexicalScopeTest.class deleted file mode 100644 index e36b804..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/LexicalScopeTest.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/PredicateDemo.class b/out/production/section_24/com/eazybytes/lambda/PredicateDemo.class deleted file mode 100644 index 88c4de7..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/PredicateDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/PrimitiveFunctionsDemo.class b/out/production/section_24/com/eazybytes/lambda/PrimitiveFunctionsDemo.class deleted file mode 100644 index 8e32bf7..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/PrimitiveFunctionsDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/Printer.class b/out/production/section_24/com/eazybytes/lambda/Printer.class deleted file mode 100644 index 9fcdc58..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/Printer.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/SupplierDemo.class b/out/production/section_24/com/eazybytes/lambda/SupplierDemo.class deleted file mode 100644 index 69319a6..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/SupplierDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/ThisDemo$1.class b/out/production/section_24/com/eazybytes/lambda/ThisDemo$1.class deleted file mode 100644 index 6426ffb..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/ThisDemo$1.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/ThisDemo.class b/out/production/section_24/com/eazybytes/lambda/ThisDemo.class deleted file mode 100644 index 8674af7..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/ThisDemo.class and /dev/null differ diff --git a/out/production/section_24/com/eazybytes/lambda/UnaryOperatorDemo.class b/out/production/section_24/com/eazybytes/lambda/UnaryOperatorDemo.class deleted file mode 100644 index 5e672cc..0000000 Binary files a/out/production/section_24/com/eazybytes/lambda/UnaryOperatorDemo.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/ArithmeticOperation.class b/out/production/section_25/com/eazybytes/method/reference/ArithmeticOperation.class deleted file mode 100644 index 3c965f1..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/ArithmeticOperation.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/ClassMethodReference.class b/out/production/section_25/com/eazybytes/method/reference/ClassMethodReference.class deleted file mode 100644 index ce6d36a..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/ClassMethodReference.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/ConstructorReferenceDemo.class b/out/production/section_25/com/eazybytes/method/reference/ConstructorReferenceDemo.class deleted file mode 100644 index 3ec336c..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/ConstructorReferenceDemo.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/InstanceMethodReference.class b/out/production/section_25/com/eazybytes/method/reference/InstanceMethodReference.class deleted file mode 100644 index 046aa32..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/InstanceMethodReference.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/Product.class b/out/production/section_25/com/eazybytes/method/reference/Product.class deleted file mode 100644 index 83daaba..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/Product.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/ProductInterface.class b/out/production/section_25/com/eazybytes/method/reference/ProductInterface.class deleted file mode 100644 index d5219c5..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/ProductInterface.class and /dev/null differ diff --git a/out/production/section_25/com/eazybytes/method/reference/StaticMethodReference.class b/out/production/section_25/com/eazybytes/method/reference/StaticMethodReference.class deleted file mode 100644 index 975718f..0000000 Binary files a/out/production/section_25/com/eazybytes/method/reference/StaticMethodReference.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/Item.class b/out/production/section_26/com/eazybytes/streams/Item.class deleted file mode 100644 index f4d2384..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/Item.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/ParallelStreamDemo.class b/out/production/section_26/com/eazybytes/streams/ParallelStreamDemo.class deleted file mode 100644 index 7e3d852..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/ParallelStreamDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/Person.class b/out/production/section_26/com/eazybytes/streams/Person.class deleted file mode 100644 index ae6779c..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/Person.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/Product.class b/out/production/section_26/com/eazybytes/streams/Product.class deleted file mode 100644 index 8eb36c8..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/Product.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamCollectOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamCollectOperationDemo.class deleted file mode 100644 index 77693d3..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamCollectOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamCollectingAndThenDemo.class b/out/production/section_26/com/eazybytes/streams/StreamCollectingAndThenDemo.class deleted file mode 100644 index d09196e..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamCollectingAndThenDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamCreationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamCreationDemo.class deleted file mode 100644 index ea4a83e..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamCreationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamFilterOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamFilterOperationDemo.class deleted file mode 100644 index 557d2c2..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamFilterOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamFindMatchOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamFindMatchOperationDemo.class deleted file mode 100644 index bc9576a..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamFindMatchOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamFlatMapOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamFlatMapOperationDemo.class deleted file mode 100644 index 29ae1f6..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamFlatMapOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamGroupingByDemo.class b/out/production/section_26/com/eazybytes/streams/StreamGroupingByDemo.class deleted file mode 100644 index 40e6ef7..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamGroupingByDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamLimitOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamLimitOperationDemo.class deleted file mode 100644 index 5b97a2e..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamLimitOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamMapOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamMapOperationDemo.class deleted file mode 100644 index c5e4f22..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamMapOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamPartitioningByDemo.class b/out/production/section_26/com/eazybytes/streams/StreamPartitioningByDemo.class deleted file mode 100644 index f89122c..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamPartitioningByDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamReduceOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamReduceOperationDemo.class deleted file mode 100644 index 18d872b..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamReduceOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamSkipOperationDemo.class b/out/production/section_26/com/eazybytes/streams/StreamSkipOperationDemo.class deleted file mode 100644 index 2b5fe5c..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamSkipOperationDemo.class and /dev/null differ diff --git a/out/production/section_26/com/eazybytes/streams/StreamTraverseDemo.class b/out/production/section_26/com/eazybytes/streams/StreamTraverseDemo.class deleted file mode 100644 index 8c429eb..0000000 Binary files a/out/production/section_26/com/eazybytes/streams/StreamTraverseDemo.class and /dev/null differ diff --git a/out/production/section_27/com/eazybytes/optional/OptionalDemo.class b/out/production/section_27/com/eazybytes/optional/OptionalDemo.class deleted file mode 100644 index 7ba395a..0000000 Binary files a/out/production/section_27/com/eazybytes/optional/OptionalDemo.class and /dev/null differ diff --git a/out/production/section_27/com/eazybytes/optional/StreamsAPINullCheckTip.class b/out/production/section_27/com/eazybytes/optional/StreamsAPINullCheckTip.class deleted file mode 100644 index 43d7fee..0000000 Binary files a/out/production/section_27/com/eazybytes/optional/StreamsAPINullCheckTip.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/Counter.class b/out/production/section_28/com/eazybytes/multithreading/Counter.class deleted file mode 100644 index b75eaaa..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/Counter.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/CurrentThreadDemo.class b/out/production/section_28/com/eazybytes/multithreading/CurrentThreadDemo.class deleted file mode 100644 index 52eebe9..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/CurrentThreadDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/DeadLockDemo.class b/out/production/section_28/com/eazybytes/multithreading/DeadLockDemo.class deleted file mode 100644 index 6833f70..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/DeadLockDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/Hello.class b/out/production/section_28/com/eazybytes/multithreading/Hello.class deleted file mode 100644 index 2909547..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/Hello.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/HelloThread.class b/out/production/section_28/com/eazybytes/multithreading/HelloThread.class deleted file mode 100644 index c1fb9d9..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/HelloThread.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/HelloThread1.class b/out/production/section_28/com/eazybytes/multithreading/HelloThread1.class deleted file mode 100644 index 50ae915..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/HelloThread1.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/JoinExample.class b/out/production/section_28/com/eazybytes/multithreading/JoinExample.class deleted file mode 100644 index 7a8e297..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/JoinExample.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/NonThreadDemo.class b/out/production/section_28/com/eazybytes/multithreading/NonThreadDemo.class deleted file mode 100644 index 0fcd424..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/NonThreadDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/PriorityExample.class b/out/production/section_28/com/eazybytes/multithreading/PriorityExample.class deleted file mode 100644 index 8a64a6b..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/PriorityExample.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/ProducerConsumerExample.class b/out/production/section_28/com/eazybytes/multithreading/ProducerConsumerExample.class deleted file mode 100644 index b1738d8..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/ProducerConsumerExample.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SharedBooleanResource.class b/out/production/section_28/com/eazybytes/multithreading/SharedBooleanResource.class deleted file mode 100644 index 8be6975..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SharedBooleanResource.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SharedResource.class b/out/production/section_28/com/eazybytes/multithreading/SharedResource.class deleted file mode 100644 index 710fa12..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SharedResource.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SleepDemo.class b/out/production/section_28/com/eazybytes/multithreading/SleepDemo.class deleted file mode 100644 index cb9fec2..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SleepDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SumOfIntsDemo.class b/out/production/section_28/com/eazybytes/multithreading/SumOfIntsDemo.class deleted file mode 100644 index 4f6976b..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SumOfIntsDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SumOfIntsThreadDemo.class b/out/production/section_28/com/eazybytes/multithreading/SumOfIntsThreadDemo.class deleted file mode 100644 index 9edea6a..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SumOfIntsThreadDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SumThread.class b/out/production/section_28/com/eazybytes/multithreading/SumThread.class deleted file mode 100644 index cbd8622..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SumThread.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/SynchronizationExample.class b/out/production/section_28/com/eazybytes/multithreading/SynchronizationExample.class deleted file mode 100644 index e912171..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/SynchronizationExample.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/ThreadDemo.class b/out/production/section_28/com/eazybytes/multithreading/ThreadDemo.class deleted file mode 100644 index e58c083..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/ThreadDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/ThreadIDNameDemo.class b/out/production/section_28/com/eazybytes/multithreading/ThreadIDNameDemo.class deleted file mode 100644 index a0e2c8d..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/ThreadIDNameDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/ThreadPriorityDemo.class b/out/production/section_28/com/eazybytes/multithreading/ThreadPriorityDemo.class deleted file mode 100644 index c4a6f6b..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/ThreadPriorityDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/UnSynchronizationExample.class b/out/production/section_28/com/eazybytes/multithreading/UnSynchronizationExample.class deleted file mode 100644 index 59ecddb..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/UnSynchronizationExample.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/VirtualThreadDemo.class b/out/production/section_28/com/eazybytes/multithreading/VirtualThreadDemo.class deleted file mode 100644 index 3b14c2f..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/VirtualThreadDemo.class and /dev/null differ diff --git a/out/production/section_28/com/eazybytes/multithreading/VolatileExample.class b/out/production/section_28/com/eazybytes/multithreading/VolatileExample.class deleted file mode 100644 index 278cd77..0000000 Binary files a/out/production/section_28/com/eazybytes/multithreading/VolatileExample.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/Bike.class b/out/production/section_29/com/eazybytes/java22/Bike.class deleted file mode 100644 index 59c9628..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/Bike.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/Car.class b/out/production/section_29/com/eazybytes/java22/Car.class deleted file mode 100644 index cabe6db..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/Car.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/Point.class b/out/production/section_29/com/eazybytes/java22/Point.class deleted file mode 100644 index 8ad6087..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/Point.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/Truck.class b/out/production/section_29/com/eazybytes/java22/Truck.class deleted file mode 100644 index 46711c5..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/Truck.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/UnnamedPatterns.class b/out/production/section_29/com/eazybytes/java22/UnnamedPatterns.class deleted file mode 100644 index 179106a..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/UnnamedPatterns.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/UnnamedVariables.class b/out/production/section_29/com/eazybytes/java22/UnnamedVariables.class deleted file mode 100644 index 661fe15..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/UnnamedVariables.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java22/Vehicle.class b/out/production/section_29/com/eazybytes/java22/Vehicle.class deleted file mode 100644 index 4c123c2..0000000 Binary files a/out/production/section_29/com/eazybytes/java22/Vehicle.class and /dev/null differ diff --git a/out/production/section_29/com/eazybytes/java23/MarkDownComments.class b/out/production/section_29/com/eazybytes/java23/MarkDownComments.class deleted file mode 100644 index 2ad4498..0000000 Binary files a/out/production/section_29/com/eazybytes/java23/MarkDownComments.class and /dev/null differ diff --git a/section3/HelloWorld/.gitignore b/section3/HelloWorld/.gitignore index f68d109..13275f1 100644 --- a/section3/HelloWorld/.gitignore +++ b/section3/HelloWorld/.gitignore @@ -2,6 +2,7 @@ out/ !**/src/main/**/out/ !**/src/test/**/out/ +.kotlin ### Eclipse ### .apt_generated diff --git a/section3/HelloWorld/README.md b/section3/HelloWorld/README.md index 5b2a64c..f246153 100644 --- a/section3/HelloWorld/README.md +++ b/section3/HelloWorld/README.md @@ -1,9 +1,10 @@ # Getting Started with Java in IntelliJ IDEA -Welcome to our Java course! In this guide, we'll walk you through creating your first Java class using IntelliJ IDEA, a powerful integrated development environment (IDE) for Java development. +Welcome to our Java course! In this guide, we'll walk you through creating your first Java class using IntelliJ IDEA, a powerful +integrated development environment (IDE) for Java development. ### Prerequisites Before getting started, ensure that you have the following installed on your system: -- IntelliJ IDEA (Community or Ultimate edition) https://www.jetbrains.com/idea/download/?section=windows -- Java Development Kit (JDK) installed on your machine https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/downloads-list.html +- IntelliJ IDEA (Community or Ultimate edition) https://www.jetbrains.com/idea/download/ +- Java Development Kit (JDK) installed on your machine https://docs.aws.amazon.com/corretto/latest/corretto-25-ug/downloads-list.html ### Steps to Create Your First Java Class 1. #### Open IntelliJ IDEA : Launch IntelliJ IDEA on your system. 2. #### Create a New Project : @@ -13,7 +14,7 @@ Before getting started, ensure that you have the following installed on your sys - Choose a Project Location where you want to save your project files. - Select the Language as Java. - Build system as IntelliJ. - - Add JDK as corretto-21 or click on New... and locate your JDK installation directory. + - Add JDK as corretto-25 or click on New... and locate your JDK installation directory. - Click on Create to create the project. 4. #### Create a Java Class : - In the Project tool window (usually located on the left-hand side), right-click on the src folder. @@ -38,5 +39,174 @@ public class HelloWorld { - Click on the green Run icon next to the main method or right-click anywhere inside the main method and select Run 'HelloWorld.main()'. 7. #### View Output : - You should see the output "Hello Madan" printed in the Run tool window at the bottom of the IntelliJ IDEA window. - + +## Launch Single-File & Multi-File Source-Code Programs + +The Single-File Source-Code Program feature, introduced in `Java 11`, allows developers to run Java programs directly from a source file without the need for separate compilation. + +This was later enhanced in `Java 22` to support Multi-File Source-Code Programs, enabling the execution of Java applications that span across multiple `.java` files โ€” still without explicit compilation. + +### โš™๏ธ Traditional Java (Before Java 11) + +Prior to `Java 11`, you had to compile your Java code before running it: + +### ๐Ÿงพ Example +```java +public class Hello { + public static void main(String[] args) { + System.out.println("Hello World..."); + } +} +``` + +โ–ถ๏ธ Commands +``` +javac Hello.java # Compilation +java Hello # Execution +``` +Two distinct steps were required โ€” compile first, then run. + +### ๐Ÿš€ From Java 11 โ€” Single-File Source Programs + +Starting in Java 11, you can execute a Java program directly from its source file using a single command. + +### ๐Ÿงพ Example +```java +public class Hello { + public static void main(String[] args) { + System.out.println("Hello World..."); + } +} +``` + +โ–ถ๏ธ Command +``` +java Hello.java +``` +โœ… The JVM automatically compiles and runs the file in one step. + +**โš ๏ธ Limitation :** Works only if all the code is within a single file. +If your logic spans multiple source files, Java 11 cannot handle it. + + +### ๐Ÿงฑ From Java 22 โ€” Multi-File Source Programs + +Java 22 extends this functionality โ€” now you can run Java programs that use multiple source files (with dependencies) without manual compilation. + +### ๐Ÿงพ Example +```java +public class Hello { + public static void main(String[] args) { + Greetings.sayHello(); + } +} + +public class Greetings { + public static void sayHello() { + System.out.println("Hello World..."); + } +} +``` + +โ–ถ๏ธ Command +``` +java Hello.java +``` + +โœ… Even though Hello depends on another class (Greetings), `Java 22` automatically detects and compiles both files before execution. + +### ๐Ÿง  How It Works + +| Java Version | Behavior | +| ------------------ | ----------------------------------------------------------------------------- | +| **Before Java 11** | Must compile manually using `javac` before running. | +| **Java 11** | Can run a **single file** directly (`java Hello.java`). | +| **Java 22** | Can run **multi-file source programs** โ€” dependencies included automatically. | + +### ๐Ÿ’ก Key Benefits + +- **Faster Prototyping :** No need to compile separately. + +- **Simpler Workflow :** Run `.java` files directly like scripts. + +- **Multi-File Support :** `Java 22` expands usability to larger projects. + +- **Perfect for Demos, Learning, and Automation Scripts**. + +### ๐Ÿงพ Compilation & Execution Summary +| Step | Before Java 11 | From Java 11 | From Java 22 | +| --------------------------- | ------------------ | ------------------------- | ------------------------- | +| **Compile** | `javac Hello.java` | *(Handled automatically)* | *(Handled automatically)* | +| **Execute** | `java Hello` | `java Hello.java` | `java Hello.java` | +| **Supports Multiple Files** | โŒ | โŒ | โœ… | +| **Ease of Use** | Manual | Simplified | Seamless | + +## Compact Source Files & Instance Main Methods + +The Compact Source Files and Instance Main Methods features introduced in Java 25 make Java simpler and more approachable for beginners, while still being powerful for experienced developers. + +These features reduce boilerplate and let you start coding Java applications without needing to define classes or static methods. + +### ๐Ÿ’ป Traditional vs. Compact Example +๐Ÿงพ Before (Classic Java Program) +```java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World!"); + } +} +``` + +โœ… After (Compact Source File in Java 25) +```java +void main() { + IO.println("Hello World!"); +} +``` + +### ๐Ÿง  Explanation + +- Compact Source Files remove the need for explicit class definitions in simple programs. +- Instance Main Methods allow main() to be defined without the static keyword. +- This keeps code concise, beginner-friendly, and ideal for quick prototypes or lightweight scripts. + +๐Ÿ’ก The Java compiler automatically creates an implicit top-level class for compact source files. + +### โš™๏ธ Instance Main Method Explained + +Traditionally, Java required main() to be static: +```java + +public static void main(String[] args) { } +``` + +Now, in Java 25, the `main()` method can be non-static โ€” the JVM automatically instantiates the implicit class to execute it. + +๐Ÿงพ Allowed Variations of main() in Compact Source Files +```java +void main() {} +public void main() {} +static void main() {} +public static void main() {} +public void main(String[] args) {} +public static void main(String[] args) {} +``` +๐Ÿงฉ If both a `main(String[] args)` and a no-argument `main()` exist, the JVM prefers `main(String[] args)` as the programโ€™s entry point. + +### ๐Ÿ’ฌ Why It Matters + +- Beginner-Friendly: No need to understand classes, objects, or static context before writing your first program. +- Less Boilerplate: Write quick experiments, demos, or simple utilities faster. +- Flexible for Experts: Enables rapid prototyping before scaling into larger applications. + + + +### ๐Ÿ”– Summary +| Feature | Description | +| ------------------------- | ------------------------------------------------- | +| **Compact Source Files** | Write Java code without explicit class declarations. | +| **Instance Main Methods** | Define `main()` without `static`. JVM handles instantiation. | +| **Goal** | Simplify Java for beginners and enable quick prototyping. | +| **Status** | Available in Java 25 | + Congratulations! You've successfully created and executed your first Java class using IntelliJ IDEA. diff --git a/section3/HelloWorld/src/Demo.java b/section3/HelloWorld/src/Demo.java deleted file mode 100644 index 7bf788c..0000000 --- a/section3/HelloWorld/src/Demo.java +++ /dev/null @@ -1,53 +0,0 @@ -public class Demo { - - public static void main(String[] args) { - System.out.println("Hello Madan"); - } - - - /** - * Adds two numbers - * @param a the first number - * @param b the second number - * @return the sum of the two numbers - */ - public static int add(int a, int b) { - System.out.println("Sum: " + (a+b)); - return a + b; - } - - /** - * Subtracts two numbers - * @param a the first number - * @param b the second number - * @return the difference of the two numbers - */ - public static int subtract(int a, int b) { - System.out.println("Difference: " + (a-b)); - return a - b; - } - - /** - * Multiplies two numbers - * @param a the first number - * @param b the second number - * @return the product of the two numbers - */ - public static int multiply(int a, int b) { - System.out.println("Product: " + (a*b)); - return a * b; - } - - /** - * Divides two numbers - * @param a the first number - * @param b the second number - * @return the quotient of the two numbers - */ - public static double divide(int a, int b) { - System.out.println("Quotient: " + (a/b)); - return (double)a / b; - } - - -} diff --git a/section3/HelloWorld/src/HelloWorld.java b/section3/HelloWorld/src/HelloWorld.java index 212aa5d..5a47826 100644 --- a/section3/HelloWorld/src/HelloWorld.java +++ b/section3/HelloWorld/src/HelloWorld.java @@ -1,7 +1,8 @@ public class HelloWorld { public static void main(String[] args) { - System.out.println("Hello Madan"); + System.out.println("Hello World"); + IO.println("Hi World"); } } diff --git a/section3/HelloWorld/src/Main.java b/section3/HelloWorld/src/Main.java new file mode 100644 index 0000000..38e0d67 --- /dev/null +++ b/section3/HelloWorld/src/Main.java @@ -0,0 +1,4 @@ +void main() { + IO.println("Hello Madan"); + System.out.print("Hi Java"); +} \ No newline at end of file diff --git a/section_30/.gitignore b/section_30/.gitignore new file mode 100644 index 0000000..13275f1 --- /dev/null +++ b/section_30/.gitignore @@ -0,0 +1,30 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ +.kotlin + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/section_30/README.md b/section_30/README.md new file mode 100755 index 0000000..8a04713 --- /dev/null +++ b/section_30/README.md @@ -0,0 +1,606 @@ +# ๐Ÿงฉ **Java 25 Features** + +## **Module Import Declarations** + +### ๐Ÿ“˜ Definition +The **Module Import Declarations** feature introduced in **Java 25** allows importing entire modules directly within a source file. +Instead of importing individual packages or classes, developers can use a single statement such as: +```java +import module java.base; +``` +This automatically includes all the packages exported by that module (for example, java.util, java.io, etc.), removing the need for +multiple import statements. +### ๐Ÿ’ป Code Example + +๐Ÿงพ Before (Traditional Imports) +```java +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class ImportModule { + public static void main(String[] args) { + // your logic here + } +} +``` +โœ… After (Using import module) +```java +import module java.base; + +public class ImportModule { + public static void main(String[] args) { + // your logic here + } +} +``` +### ๐Ÿง  Code Explanation + +- import module `java.base` โ†’ Imports the entire `java.base` module, making all exported packages available. +- Removes the need to explicitly import every class or package individually. +- Works perfectly for modular and single-file Java programs. + +### โš ๏ธ Ambiguous Imports +When importing multiple modules, you might encounter classes with the same simple name (for example, java.util.Date +and java.sql.Date), causing ambiguity. + +Example โ€” Ambiguous Import + +```java +import module java.base; // exports java.util.Date +import module java.sql; // exports java.sql.Date + +import java.util.Date; + +Date d = new Date(); // โŒ Error: Ambiguous name! +``` +Solution โ€” Use a Single-Type Import +```java +import module java.base; // exports java.util.Date +import module java.sql; // exports java.sql.Date +import java.sql.Date; // resolves the ambiguity + +Date d = new Date(); // โœ… Now refers to java.sql.Date +``` + +๐Ÿงฉ Use single-type imports when multiple modules export classes with the same simple name. + + +### โš™๏ธ Additional Details +๐Ÿ”น **Performance Impact** + +Whether you import a specific class, or an entire package, or an entire module, only the classes that your code actually uses are +loaded at runtime. + +โžก๏ธ So, thereโ€™s no performance overhead with module imports. + +๐Ÿ”น **Compact Source File** + +The java.base module is automatically imported on demand in a compact source file, reducing the boilerplate and keeping your code +clean and minimal. + +๐Ÿ”น **Unnamed Module** + +The import module statement requires a module name. Hence, packages from the unnamed module (i.e., classpath code) cannot be +imported using this feature. + +## **Compact Source Files & Instance Main Methods** + +Java 25 introduces Compact Source Files and Instance Main Methods to make Java more approachable and beginner-friendly. +These features simplify how you write, compile, and run Java code โ€” reducing boilerplate and allowing programs to start without +explicit class declarations or traditional main static methods. + +### ๐Ÿ’ป Classic vs. Compact Example +๐Ÿงพ Before (Traditional HelloWorld) +```java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +โœ… After (Compact Source File in Java 25) +```java +void main() { + IO.println("Hello, World!"); +} +``` +### ๐Ÿง  Code Explanation + +- **No class declaration needed :** +The compiler automatically creates an implicit top-level class behind the scenes. +- **No static keyword required :** +The main method can now be an instance method โ€” Java will automatically create an instance to run it. +- **Automatic module import :** +All public types from the java.base module (like List, Math, IO, etc.) are available automatically. + +### ๐Ÿงฉ Key Features +#### ๐Ÿงฑ Implicit Class + +When you write a compact source file: + +- The compiler generates a final, top-level class automatically. +- The class extends `java.lang.Object` and has no explicit constructor or interfaces. +- All methods and fields in the file become members of that implicit class. +- It must include a launchable main method, or it will fail to compile. + +#### โš™๏ธ Automatic Module Import +In compact source files, Java automatically imports everything from the `java.base` module. + +```java + +void main() { + var list = List.of("Alice", "Bob", "Charlie"); + for (var name : list) { + IO.println("Hello, " + name); + } +} +``` +โžก๏ธ No need to write import `java.util.List` + +#### ๐Ÿ’ก Instance Main Method Variants + +The following method signatures are allowed: +```java +void main() {} +public void main() {} +static void main() {} +public static void main() {} +public static void main(String[] args) {} +``` + +When both `main(String[] args)` and `main()` exist, Java prioritizes `main(String[] args)`. + +#### ๐Ÿ–ฅ๏ธ Console Interaction Simplified +A new utility class โ€” `java.lang.IO` โ€” allows simpler input/output: +```java +void main() { + var name = IO.readln("Enter your name: "); + IO.println("Hello, " + name); +} +``` +- No need for Scanner or System.out.println. +- Makes interactive console programs beginner-friendly. + +### ๐Ÿ“ How It Works + +Compact source files: +- Are compiled directly (no class keyword required). +- Automatically import java.base. +- Must have a valid `main()` method. +- Are great for quick prototypes, educational purposes, and scripting. + + +## Flexible Constructor Bodies + +The Flexible Constructor Bodies feature in Java 25 relaxes a long-standing rule in Java constructors. Traditionally, the first +statement of any constructor had to be a call to `super(...)` or `this(...)`. +With this enhancement, you can now execute statements before these calls, allowing for argument validation and preprocessing. + +### ๐Ÿ’ป Traditional vs. Flexible Example +๐Ÿงพ Before (Strict Constructor Order) +```java +class Car extends Vehicle { + Car(int speed) { + super(speed); // Must be the first statement + if (speed > 200) throw new IllegalArgumentException("Car too fast!"); + } +} +``` + +โœ… After (Flexible Constructor Bodies in Java 25) +```java +class Car extends Vehicle { + Car(int speed) { + if (speed < 0) throw new IllegalArgumentException("Invalid speed"); + if (speed > 200) throw new IllegalArgumentException("Car too fast!"); + super(speed); // Can now be called later + } +} +``` + +### ๐Ÿง Code Explanation + +- **Before Java 25 :** +The constructor chaining rule enforced `super()` or `this()` as the first statement. Developers had to use static helper methods +to validate or process arguments. +- **Now (Java 25) :** +You can perform validations or compute values before invoking the superclass constructor. This gives you flexibility without breaking +the initialization order. + +### โš™๏ธ Benefits +#### ๐Ÿงฉ 1. Argument Validation +Developers can now check arguments before calling super() +#### ๐Ÿงฉ 2. Improved Code Readability +No need for helper methods or static validators โ€” logic stays within the constructor. +#### ๐Ÿงฉ 3. Safer Initialization +Fixes issues where superclass constructors accidentally access uninitialized subclass fields: +```java + +class Account { + public Account() { check(); } + public void check() {} +} + +class SavingsAccount extends Account { + private String accountNumber; + public SavingsAccount(String number) { + this.accountNumber = number; + super(); // allowed after initialization + } + + @Override + public void check() { + if (accountNumber.isEmpty()) throw new RuntimeException("Invalid account"); + } +} +``` +### โš ๏ธ Restrictions + +While this feature offers flexibility, certain rules still apply: +- โŒ Cannot use this or super before their invocation. +- โŒ Cannot access instance fields or methods before calling `super()` or `this()`. +- โœ… You can assign values to only uninitialized fields. +- โœ… You can perform parameter checks, or static method calls safely. + +### ๐Ÿงช Example โ€” Invalid Use +```java +class Book extends Page { + String title; + int pages = 100; + + Book() { + System.out.println(this); // โŒ Not allowed (implicit this) + title = "Java 25"; // โœ… Allowed (uninitialized field) + pages = 200; // โŒ Error (already initialized) + super(); // Constructor call + } +} +``` +### Example โ€” Executing Statements Before `this()` +```java +class Course { + String courseName; + int duration; + + public Course(String name, int duration) { + this.courseName = name; + this.duration = duration; + } + + public Course(String prefix, String name, int duration) { + Objects.requireNonNull(prefix); + Objects.requireNonNull(name); + if (duration <= 0) throw new IllegalArgumentException("Invalid duration"); + this(prefix + name, duration); // โœ… Safe delegation + } +} +``` + +## Scoped Values + +The Scoped Values feature introduced in Java 25 provides a new, safer, and faster mechanism to share immutable data between +methods and threads without explicit parameter passing. + +It acts as a modern alternative to `ThreadLocal` โ€” easier to reason about, more efficient, and less prone to memory leaks. + +### ๐Ÿ’ก Why Scoped Values? + +In traditional Java applications, contextual data (like UserContext, Locale, or Transaction) is often passed as method parameters +or stored in ThreadLocal variables. + +Both approaches have limitations: + +- **Parameter Passing Hell** โ€” every method needs a context argument, even if unused. +- **ThreadLocal Problems** โ€” mutable, requires manual cleanup, and may cause memory leaks. + +### ๐Ÿ’ป Example โ€“ Parameter Passing Hell +```java +public class OrderService { + + public void processOrder(Order order, UserContext context) { + validateOrder(order, context); + calculatePrice(order, context); + saveOrder(order, context); + } + + private void validateOrder(Order order, UserContext context) { + checkUserPermissions(context); + } + + private void calculatePrice(Order order, UserContext context) { + applyUserDiscount(order, context); + } +} +``` +โŒ Problem: The context parameter must be passed around everywhere, even to methods that donโ€™t use it. + +### ๐Ÿงฉ ThreadLocal Approach +```java +public class OrderService { + private static final ThreadLocal CONTEXT = new ThreadLocal<>(); + + public void processOrder(Order order, UserContext context) { + CONTEXT.set(context); // Set context + try { + validateOrder(order); + calculatePrice(order); + saveOrder(order); + } finally { + CONTEXT.remove(); // โ— Must be cleaned up manually + } + } + + private void validateOrder(Order order) { + UserContext context = CONTEXT.get(); // Get context + checkUserPermissions(context); + } +} +``` + +### โš ๏ธ Problems with ThreadLocal + +- **Unconstrained Mutability** โ€” any code can modify the context. +- **Unbounded Lifetime** โ€” forgetting `remove()` causes memory leaks. +- **Expensive Inheritance** โ€” copying all `ThreadLocals` to child threads increases memory overhead. + +### โœ… Scoped Values โ€“ The Modern Solution + +`ScopedValue` addresses all these issues by: +- Storing immutable data that canโ€™t be changed once set. +- Being automatically destroyed after its scope ends. +- Having no cleanup responsibilities for the developer. + +### ๐Ÿ’ป Example โ€“ Scoped Values in Action +```java +public class OrderService { + + private static final ScopedValue CONTEXT = + ScopedValue.newInstance(); + + public void processOrder(Order order, UserContext context) { + ScopedValue.where(CONTEXT, context).run(() -> { + validateOrder(order); + calculatePrice(order); + saveOrder(order); + }); + // Context automatically destroyed here + } + + private void validateOrder(Order order) { + UserContext context = CONTEXT.get(); // Read context + checkUserPermissions(context); + } +} +``` +### โœ… Key Points +- Scoped values are immutable โ€” once set, they canโ€™t be modified. +- They are automatically cleaned up after the run() block ends. +- They work seamlessly with virtual threads and concurrent code. + +### ๐Ÿงช Simple Example +```java +public class SimpleExample { + + private static final ScopedValue USERNAME = + ScopedValue.newInstance(); + + public void doWork() { + ScopedValue.where(USERNAME, "Alice").run(() -> { + processTask(); // Can access USERNAME + }); + // USERNAME no longer accessible here + } + + private void processTask() { + String user = USERNAME.get(); // Returns "Alice" + System.out.println("Processing for: " + user); + callAnotherMethod(); + } + + private void callAnotherMethod() { + String user = USERNAME.get(); // Still returns "Alice" + System.out.println("Still processing for: " + user); + } +} +``` + +### ๐Ÿง  Understanding Dynamic Scope + +Scoped values follow dynamic scoping, not lexical scoping. That means they are accessible only during the lifetime of the run() block +and within any method invoked from it. +```java + +public void methodA() { + ScopedValue.where(NAME, "John").run(() -> { + methodB(); // NAME accessible here + }); + // NAME not accessible here +} + +public void methodB() { + methodC(); // Still within dynamic scope +} + +public void methodC() { + String name = NAME.get(); // Returns "John" +} +``` +๐Ÿ”„ Scoped values propagate dynamically across call chains during runtime + +### ๐Ÿ” Rebinding (Nested Scopes) +Scoped values can be rebound โ€” meaning you can assign a new value temporarily within a nested scope. +```java +private static final ScopedValue LEVEL = + ScopedValue.newInstance(); + +public void outerMethod() { + ScopedValue.where(LEVEL, "Level 1").run(() -> { + System.out.println(LEVEL.get()); // Level 1 + innerMethod(); + System.out.println(LEVEL.get()); // Level 1 + }); +} + +public void innerMethod() { + System.out.println(LEVEL.get()); // Level 1 + ScopedValue.where(LEVEL, "Level 2").run(() -> { + System.out.println(LEVEL.get()); // Level 2 + deepMethod(); + }); + System.out.println(LEVEL.get()); // Back to Level 1 +} + +public void deepMethod() { + System.out.println(LEVEL.get()); // Level 2 +} +``` +Each `ScopedValue.where()` call defines a new nested scope. Once the inner scope ends, the value automatically reverts to its +outer context. + + +### ๐Ÿš€ Conclusion + +Scoped Values modernize context sharing in Java by replacing ThreadLocal with a more efficient, safer, and immutable alternative. +They make context handling: +- Cleaner ๐Ÿงผ +- Faster โšก +- Safer ๐Ÿ”’ +- Perfectly aligned with virtual threads and structured concurrency. + +Java 25โ€™s Scoped Values = Simpler, safer, and smarter context propagation ๐ŸŒ + +## Ahead-of-Time (AOT) Class Loading and Linking + +The Ahead-of-Time (AOT) feature in Java 25 significantly improves application startup time by allowing the JVM to preload, +prelink, and cache classes before execution. + +Instead of performing class loading, verification, and linking every time the JVM starts, AOT does this once during a training run +and reuses the cached results for subsequent runs. + +Think of AOT as meal prepping for your JVM โ€” instead of cooking from scratch every day (JIT), you cook once and reheat quickly +when needed ๐Ÿฑโšก. + +### ๐Ÿš€ Traditional Java Startup (JIT Compilation) + +When you run: +``` +java MyApp +``` +The JVM performs these steps: + +**1**. Starts the JVM. +**2**. Reads JAR files from disk. +**3**. Parses all class files. +**4**. Loads classes into memory. +**5**. Links classes together (verifies and resolves references). +**6**. Runs static initializers. +**7**. Finally, starts your application. + +โžก๏ธ This happens every single time the application starts. + +### ๐Ÿ’ก Ahead-of-Time (AOT) Approach + +Instead of doing all this work during startup, AOT performs it once ahead-of-time and caches the results for reuse. + +#### ๐Ÿ” Workflow Overview +Training Run (Recording Phase): +- Run your app once. +- The JVM records all classes loaded during execution. +- It saves that information in a configuration file. +Production Run (Execution Phase): +- JVM loads preprocessed classes directly from the cache. +- Application starts almost instantly. + +**Result :** ๐Ÿš€ Drastically faster startup times! + +### ๐Ÿ’ป Step-by-Step โ€” AOT in Action +#### ๐Ÿงพ Step 1: Training Run (Record) +Run your app once to record what classes it loads. +``` +java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf \ + -cp app.jar com.example.App +``` + +- JVM monitors the applicationโ€™s class loading. +- Saves all loaded classes to a config file app.aotconf. + +#### ๐Ÿงฑ Step 2: Create AOT Cache + +Generate the prelinked and preverified cache. +``` +java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf \ + -XX:AOTCache=app.aot -cp app.jar +``` + +This processes and stores prelinked class metadata into the cache file app.aot. + +#### โšก Step 3: Production Run (Use the Cache) + +Finally, run your app using the cached data. +``` +java -XX:AOTCache=app.aot -cp app.jar com.example.App +``` +โœ… Classes are instantly loaded from cache โ€” no parsing, linking, or verification needed! + +### ๐Ÿงฉ Simplified One-Step AOT Command (Java 25 Enhancement) + +In JDK 25, the AOT process is streamlined into a single command, eliminating multiple steps. + +โœ… One-Step Cache Creation +``` +java -XX:AOTCacheOutput=app.aot -cp app.jar com.example.App +``` +Then, run the app normally using: +``` +java -XX:AOTCache=app.aot -cp app.jar com.example.App +``` + +### ๐Ÿ’ช Benefits of the New Command + +- **Simpler :** Only one command (training + creation combined). +- **Cleaner :** No leftover configuration files. +- **Automation-Friendly :** Perfect for CI/CD and build pipelines. + +### ๐Ÿง  Whatโ€™s Inside an AOT Cache? +**โœ… Classes That Can Be Cached** +- **JDK Classes :** String, ArrayList, HashMap, etc. +- **Application Classes :** Your appโ€™s compiled classes and JARs. +- **Library Classes :** Frameworks like Spring, Hibernate, etc. +- Classes must be loaded by built-in classloaders. + +โŒ Classes That Cannot Be Cached +- Classes loaded via custom classloaders. +- Signed classes (restricted for security). +- Old bytecode requiring legacy verification. +- Dynamically generated classes at runtime. + +### ๐Ÿงฎ Whatโ€™s Precomputed and Cached? + +AOT precomputes: + +- โœ… Parsed bytecode โ†’ ready-to-use class structures. +- โœ… Resolved references โ†’ all links between classes established. +- โœ… Verified code โ†’ bytecode verified once. +- โœ… Loaded metadata โ†’ class, field, and method details stored. + +This makes runtime startup instant โ€” JVM just reads from the cache instead of redoing work. + +### ๐Ÿ’ผ Using AOT in Spring Boot Applications + +**Step 1: Build your Spring Boot JAR** +``` +mvn clean package +``` +**Step 2: Create an AOT cache (Java 25 style)** +``` +java -XX:AOTCacheOutput=myapp.aot -jar target/myapp.jar +``` +**Step 3: Deploy and run with AOT cache** +``` +java -XX:AOTCache=myapp.aot -jar target/myapp.jar +``` +โœ… The Spring Boot app now starts up significantly faster โ€” ideal for serverless deployments and microservices. \ No newline at end of file diff --git a/section_30/src/HelloWorld.java b/section_30/src/HelloWorld.java new file mode 100644 index 0000000..83af5f7 --- /dev/null +++ b/section_30/src/HelloWorld.java @@ -0,0 +1,17 @@ +String greeting = "Hello, World!"; + +String greeting() { + return "Hello, World!"; +} + +void main() { + var name = IO.readln("Enter your name:"); + IO.println("Hello :" +name); + IO.println(greeting()); + + var authors = List.of("James", "Bill", "Guy", "Alex", "Dan", "Gavin"); + for (var author : authors) { + IO.println(author + ": " + author.length()); + } + +} \ No newline at end of file diff --git a/section_30/src/com/eazybytes/java25/flexconstructor/Account.java b/section_30/src/com/eazybytes/java25/flexconstructor/Account.java new file mode 100644 index 0000000..1758023 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/flexconstructor/Account.java @@ -0,0 +1,13 @@ +package com.eazybytes.java25.flexconstructor; + +public class Account { + + public Account() { + check(); // calls subclass's override + } + + public void check() { + + } + +} diff --git a/section_30/src/com/eazybytes/java25/flexconstructor/Car.java b/section_30/src/com/eazybytes/java25/flexconstructor/Car.java new file mode 100644 index 0000000..3082874 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/flexconstructor/Car.java @@ -0,0 +1,18 @@ +package com.eazybytes.java25.flexconstructor; + +public class Car extends Vehicle { + + Car(int speed) { + if (speed < 0) throw new IllegalArgumentException("Invalid speed"); + if (speed > 200) throw new IllegalArgumentException("Car too fast"); + super(speed); // Forced first call + } + + private static int verifySpeed(int speed) { + if (speed < 0) throw new IllegalArgumentException("Invalid speed"); + if (speed > 200) throw new IllegalArgumentException("Car too fast"); + return speed; + } + + +} diff --git a/section_30/src/com/eazybytes/java25/flexconstructor/SavingsAccount.java b/section_30/src/com/eazybytes/java25/flexconstructor/SavingsAccount.java new file mode 100644 index 0000000..b501d51 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/flexconstructor/SavingsAccount.java @@ -0,0 +1,24 @@ +package com.eazybytes.java25.flexconstructor; + +public class SavingsAccount extends Account { + + private String accountNumber; + + public SavingsAccount(String number) { + this.accountNumber = number; + super(); + } + + @Override + public void check() { + if (accountNumber.length() == 0) { + throw new RuntimeException("Invalid account"); + } + } + + public static void main(String[] args) { + SavingsAccount account = new SavingsAccount("1234567890"); + } + + +} diff --git a/section_30/src/com/eazybytes/java25/flexconstructor/Vehicle.java b/section_30/src/com/eazybytes/java25/flexconstructor/Vehicle.java new file mode 100644 index 0000000..9b058f4 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/flexconstructor/Vehicle.java @@ -0,0 +1,12 @@ +package com.eazybytes.java25.flexconstructor; + +public class Vehicle { + + int speed; + + Vehicle(int speed) { + this.speed = speed; + } + + +} diff --git a/section_30/src/com/eazybytes/java25/moduleimport/ImportModuleDemo.java b/section_30/src/com/eazybytes/java25/moduleimport/ImportModuleDemo.java new file mode 100644 index 0000000..d663b7f --- /dev/null +++ b/section_30/src/com/eazybytes/java25/moduleimport/ImportModuleDemo.java @@ -0,0 +1,54 @@ +package com.eazybytes.java25.moduleimport; + +import module java.base; + +public class ImportModuleDemo { + + public static void main(String[] args) { + // java.util.Scanner + Scanner scanner = new Scanner(System.in); + System.out.println("Enter some names (type 'exit' to finish):"); + + // java.util.List, java.util.ArrayList + List names = new ArrayList<>(); + + while (true) { + String input = scanner.nextLine(); + if ("exit".equalsIgnoreCase(input)) { + break; + } + names.add(input); + } + + // java.util.Collections + Collections.sort(names); + + // java.util.Date + Date now = new Date(); + + // java.io.File and FileWriter + File file = new File("names.txt"); + try (FileWriter writer = new FileWriter(file)) { + writer.write("Sorted names (saved on " + now + "):\n"); + for (String name : names) { + writer.write(name + "\n"); + } + System.out.println("Names saved to " + file.getAbsolutePath()); + } catch (IOException e) { + e.printStackTrace(); + } + + // java.io.BufferedReader and FileReader + System.out.println("\nReading names back from the file:"); + try (BufferedReader reader = new BufferedReader(new FileReader(file))) { + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + + scanner.close(); + } +} diff --git a/section_30/src/com/eazybytes/java25/scoped/NestedScope.java b/section_30/src/com/eazybytes/java25/scoped/NestedScope.java new file mode 100644 index 0000000..7fcc5e3 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/scoped/NestedScope.java @@ -0,0 +1,33 @@ +package com.eazybytes.java25.scoped; + +public class NestedScope { + + private static final ScopedValue LEVEL = ScopedValue.newInstance(); + + public void outerMethod() { + ScopedValue.where(LEVEL, "Level 1").run(() -> { + System.out.println(LEVEL.get()); // Prints "Level 1" + innerMethod(); + System.out.println(LEVEL.get()); // Still prints "Level 1" + }); + } + + public void innerMethod() { + System.out.println(LEVEL.get()); // Prints "Level 1" + + ScopedValue.where(LEVEL, "Level 2").run(() -> { + System.out.println(LEVEL.get()); // Prints "Level 2" + deepMethod(); + }); + + System.out.println(LEVEL.get()); // Back to "Level 1" + } + + public void deepMethod() { + System.out.println(LEVEL.get()); // Prints "Level 2" + } + + void main() { + new NestedScope().outerMethod(); + } +} diff --git a/section_30/src/com/eazybytes/java25/scoped/SimpleExample.java b/section_30/src/com/eazybytes/java25/scoped/SimpleExample.java new file mode 100644 index 0000000..9e3fed8 --- /dev/null +++ b/section_30/src/com/eazybytes/java25/scoped/SimpleExample.java @@ -0,0 +1,46 @@ +package com.eazybytes.java25.scoped; + +public class SimpleExample { + + private static final ScopedValue USER_NAME = ScopedValue.newInstance(); + private static final ScopedValue TRANSACTION_ID = ScopedValue.newInstance(); + + public void doWork() { + ScopedValue.where(USER_NAME, "Alice").where(TRANSACTION_ID, "12345") + .run(() -> { + processTask(); + }); + if(USER_NAME.isBound()) { + String user = USER_NAME.get(); // Returns "Alice" + IO.println("Testing the scope for the user: " + user); + } + if (TRANSACTION_ID.isBound()) { + String transactionID = TRANSACTION_ID.get(); // Returns "12345" + IO.println("Testing the scope for the transactionID: " + transactionID); + } + } + + private void processTask() { + if(USER_NAME.isBound()) { + String user = USER_NAME.get(); // Returns "Alice" + IO.println("Processing for the user: " + user); + } + if (TRANSACTION_ID.isBound()) { + String transactionID = TRANSACTION_ID.get(); // Returns "12345" + IO.println("Processing for the transactionID: " + transactionID); + } + callAnotherMethod(); + } + + private void callAnotherMethod() { + String user = USER_NAME.get(); // Returns "Alice" + IO.println("Still Processing for the user: " + user); + String transactionID = TRANSACTION_ID.get(); // Returns "12345" + IO.println("Still Processing for the transactionID: " + transactionID); + } + + public static void main(String[] args) { + new SimpleExample().doWork(); + } + +}