├── 00-01-course-guide.md ├── 00-02-java-eclipse-installation.md ├── 00-03-path-variable.md ├── 01-IntroductionToJavaProgrammingWithJShell-MultiplicationTable ├── README.md ├── commands.txt └── notes.md ├── 02-IntroductionToMethods-MultiplicationTable ├── README.md ├── commands-and-output.txt └── commands.txt ├── 03-IntroductionToJavaPlatform ├── Planet.java ├── README.md └── commands-and-output.txt ├── 04-IntroductionToEclipse-FirstJavaProject ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── README.md └── src │ └── com │ └── in28minutes │ └── firstjavaproject │ ├── HelloWorld.java │ ├── KeyboardShortcuts.java │ ├── MultiplicationTable.java │ ├── MultiplicationTableRunner.java │ └── MutliplicationTableBeforeRefactoring.java ├── 05-IntroductionToObjectOrientedProgramming ├── .classpath ├── .project ├── 05-end-of-section.md ├── 05-step-04.md ├── 05-step-05.md ├── 05-step-06.md ├── 05-step-07.md ├── 05-step-08.md ├── 05-step-09.md ├── 05-step-10.md ├── 05-step-11.md ├── README.md ├── entireoutput-constructor-puzzles.txt ├── notes.md └── src │ └── com │ └── in28minutes │ └── oops │ ├── Book.java │ ├── BookRunner.java │ ├── MotorBike.java │ └── MotorBikeRunner.java ├── 06-PrimitiveDataTypesAndAlternatives ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── 06-end-of-section.md ├── README.md ├── all-commands-and-output.txt ├── commands.txt ├── java-primitive-data-types-in-depth │ └── .project └── src │ └── com │ └── in28minutes │ └── primitive │ └── datatypes │ ├── BiNumber.java │ ├── BiNumberRunner.java │ ├── MyChar.java │ ├── MyCharRunner.java │ ├── SimpleInterestCalculator.java │ └── SimpleInterestCalculatorRunner.java ├── 07-Conditionals ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── 01-just-before-switch.md ├── 02-end-of-section.md ├── README.md ├── commands-and-output.txt ├── commands.txt └── src │ └── com │ └── in28minutes │ └── ifstatement │ └── examples │ ├── IfStatementRunner.java │ ├── MenuRunner.java │ ├── SwitchExercisesRunner.java │ └── SwitchStatementRunner.java ├── 08-Loops ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── README.md ├── commands-and-output.txt ├── commands.txt └── src │ └── com │ └── in28minutes │ └── loops │ ├── DoWhileRepeatedQuestionRunner.java │ ├── MyNumber.java │ ├── MyNumberRunner.java │ ├── WhileNumberPlayer.java │ └── WhileNumberPlayerRunner.java ├── 09-ReferenceTypes ├── commands-and-output.txt ├── commands.txt └── readme.md ├── 10-ArraysAndArrayList ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── 01-after-variable-arguments.md ├── 02-after-string-array.md ├── 03-end-of-section.md ├── commands-and-output.txt ├── commands.txt ├── readme.md └── src │ └── com │ └── in28minutes │ └── arrays │ ├── StringRunner.java │ ├── Student.java │ └── StudentRunner.java ├── 11-ObjectOrientedProgrammingAgain ├── .classpath ├── .project ├── commands-and-output.txt ├── commands.txt ├── readme.md └── src │ └── com │ └── in28minutes │ └── oops │ └── level2 │ ├── AbstractRecipe.java │ ├── Address.java │ ├── Book.java │ ├── BookRunner.java │ ├── Customer.java │ ├── CustomerRunner.java │ ├── Fan.java │ ├── FanRunner.java │ ├── Recipe1.java │ ├── RecipeRunner.java │ ├── RecipeWithMicrowave.java │ ├── Rectangle.java │ ├── RectangleRunner.java │ ├── Review.java │ ├── inheritance │ ├── AnimalRunner.java │ ├── Employee.java │ ├── Person.java │ ├── Student.java │ ├── StudentRunner.java │ └── StudentWithoutInheritance.java │ └── interfaces │ ├── ChessGame.java │ ├── ComplexAlgorithm.java │ ├── DummyAlgorithm.java │ ├── FlyableRunner.java │ ├── GameRunner.java │ ├── GamingConsole.java │ ├── MarioGame.java │ ├── Project.java │ └── RealAlgorithm.java ├── 12-Collections ├── .classpath ├── .project ├── commands-and-output.txt ├── commands.txt ├── presentation │ ├── .gitignore │ ├── Gruntfile.js │ ├── LICENSE │ ├── collections.html │ ├── css │ │ ├── print │ │ │ ├── paper.css │ │ │ └── pdf.css │ │ ├── reveal-override.css │ │ ├── reveal.css │ │ ├── reveal.scss │ │ └── theme │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source │ │ │ ├── beige.scss │ │ │ ├── black.scss │ │ │ ├── blood.scss │ │ │ ├── league.scss │ │ │ ├── moon.scss │ │ │ ├── night.scss │ │ │ ├── serif.scss │ │ │ ├── simple.scss │ │ │ ├── sky.scss │ │ │ ├── solarized.scss │ │ │ └── white.scss │ │ │ ├── template │ │ │ ├── mixins.scss │ │ │ ├── settings.scss │ │ │ └── theme.scss │ │ │ └── white.css │ ├── images │ │ ├── In28MinutesLogo-300X50.png │ │ ├── Java-Collections-Arrays.png │ │ ├── Java-Collections-Hashing.png │ │ ├── Java-Collections-LinkedList.png │ │ ├── Java-Collections-Tree.png │ │ ├── SpringInterviewGuide_SOAPWebServices.png │ │ └── logo.png │ ├── index.html │ ├── js │ │ └── reveal.js │ ├── lib │ │ ├── css │ │ │ └── zenburn.css │ │ ├── font │ │ │ ├── league-gothic │ │ │ │ ├── LICENSE │ │ │ │ ├── league-gothic.css │ │ │ │ ├── league-gothic.eot │ │ │ │ ├── league-gothic.ttf │ │ │ │ └── league-gothic.woff │ │ │ └── source-sans-pro │ │ │ │ ├── LICENSE │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ └── source-sans-pro.css │ │ └── js │ │ │ ├── classList.js │ │ │ ├── head.min.js │ │ │ └── html5shiv.js │ ├── package.json │ ├── plugin │ │ ├── highlight │ │ │ └── highlight.js │ │ ├── markdown │ │ │ ├── example.html │ │ │ ├── example.md │ │ │ ├── markdown.js │ │ │ └── marked.js │ │ ├── math │ │ │ └── math.js │ │ ├── multiplex │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ ├── master.js │ │ │ └── package.json │ │ ├── notes-server │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ └── notes.html │ │ ├── notes │ │ │ ├── notes.html │ │ │ └── notes.js │ │ ├── print-pdf │ │ │ └── print-pdf.js │ │ ├── search │ │ │ └── search.js │ │ └── zoom-js │ │ │ └── zoom.js │ └── test │ │ ├── examples │ │ ├── assets │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── barebones.html │ │ ├── embedded-media.html │ │ ├── math.html │ │ ├── slide-backgrounds.html │ │ └── slide-transitions.html │ │ ├── qunit-1.12.0.css │ │ ├── qunit-1.12.0.js │ │ ├── simple.md │ │ ├── test-markdown-element-attributes.html │ │ ├── test-markdown-element-attributes.js │ │ ├── test-markdown-external.html │ │ ├── test-markdown-external.js │ │ ├── test-markdown-options.html │ │ ├── test-markdown-options.js │ │ ├── test-markdown-slide-attributes.html │ │ ├── test-markdown-slide-attributes.js │ │ ├── test-markdown.html │ │ ├── test-markdown.js │ │ ├── test-pdf.html │ │ ├── test-pdf.js │ │ ├── test.html │ │ └── test.js └── src │ └── collections │ ├── MapRunner.java │ ├── QueueRunner.java │ ├── SetRunner.java │ ├── Student.java │ └── StudentsCollectionRunner.java ├── 13-Generics ├── .classpath ├── .project └── src │ └── com │ └── in28minutes │ └── generics │ ├── GenericsRunner.java │ └── MyCustomList.java ├── 14-FunctionalProgramming ├── .classpath ├── .project ├── commands-and-output.txt ├── commands.txt └── src │ └── com │ └── in28minutes │ └── functionalprogramming │ ├── FPNumberRunner.java │ ├── FunctionalProgrammingRunner.java │ ├── LambdaBehindTheScreensRunner.java │ └── MethodReferencesRunner.java ├── 15-ThreadsAndConcurrency ├── .classpath ├── .project └── src │ ├── CallableRunner.java │ ├── ExecutorServiceRunner.java │ ├── MultipleAnyCallableRunner.java │ ├── MultipleCallableRunner.java │ └── ThreadBasicsRunner.java ├── 16-ExceptionHandling ├── .classpath ├── .project ├── presentation │ ├── .gitignore │ ├── ExceptionHandling.html │ ├── Gruntfile.js │ ├── LICENSE │ ├── css │ │ ├── print │ │ │ ├── paper.css │ │ │ └── pdf.css │ │ ├── reveal-override.css │ │ ├── reveal.css │ │ ├── reveal.scss │ │ └── theme │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source │ │ │ ├── beige.scss │ │ │ ├── black.scss │ │ │ ├── blood.scss │ │ │ ├── league.scss │ │ │ ├── moon.scss │ │ │ ├── night.scss │ │ │ ├── serif.scss │ │ │ ├── simple.scss │ │ │ ├── sky.scss │ │ │ ├── solarized.scss │ │ │ └── white.scss │ │ │ ├── template │ │ │ ├── mixins.scss │ │ │ ├── settings.scss │ │ │ └── theme.scss │ │ │ └── white.css │ ├── images │ │ ├── In28MinutesLogo-300X50.png │ │ ├── Java-Collections-Arrays.png │ │ ├── Java-Collections-Hashing.png │ │ ├── Java-Collections-LinkedList.png │ │ ├── Java-Collections-Tree.png │ │ ├── SpringInterviewGuide_SOAPWebServices.png │ │ └── logo.png │ ├── index.html │ ├── js │ │ └── reveal.js │ ├── lib │ │ ├── css │ │ │ └── zenburn.css │ │ ├── font │ │ │ ├── league-gothic │ │ │ │ ├── LICENSE │ │ │ │ ├── league-gothic.css │ │ │ │ ├── league-gothic.eot │ │ │ │ ├── league-gothic.ttf │ │ │ │ └── league-gothic.woff │ │ │ └── source-sans-pro │ │ │ │ ├── LICENSE │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ └── source-sans-pro.css │ │ └── js │ │ │ ├── classList.js │ │ │ ├── head.min.js │ │ │ └── html5shiv.js │ ├── package.json │ ├── plugin │ │ ├── highlight │ │ │ └── highlight.js │ │ ├── markdown │ │ │ ├── example.html │ │ │ ├── example.md │ │ │ ├── markdown.js │ │ │ └── marked.js │ │ ├── math │ │ │ └── math.js │ │ ├── multiplex │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ ├── master.js │ │ │ └── package.json │ │ ├── notes-server │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ └── notes.html │ │ ├── notes │ │ │ ├── notes.html │ │ │ └── notes.js │ │ ├── print-pdf │ │ │ └── print-pdf.js │ │ ├── search │ │ │ └── search.js │ │ └── zoom-js │ │ │ └── zoom.js │ └── test │ │ ├── examples │ │ ├── assets │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── barebones.html │ │ ├── embedded-media.html │ │ ├── math.html │ │ ├── slide-backgrounds.html │ │ └── slide-transitions.html │ │ ├── qunit-1.12.0.css │ │ ├── qunit-1.12.0.js │ │ ├── simple.md │ │ ├── test-markdown-element-attributes.html │ │ ├── test-markdown-element-attributes.js │ │ ├── test-markdown-external.html │ │ ├── test-markdown-external.js │ │ ├── test-markdown-options.html │ │ ├── test-markdown-options.js │ │ ├── test-markdown-slide-attributes.html │ │ ├── test-markdown-slide-attributes.js │ │ ├── test-markdown.html │ │ ├── test-markdown.js │ │ ├── test-pdf.html │ │ ├── test-pdf.js │ │ ├── test.html │ │ └── test.js └── src │ └── com │ └── in28minutes │ └── exceptionhandling │ ├── CheckedExceptionRunner.java │ ├── ExceptionHandlingRunner.java │ ├── ExceptionHandlingRunner2.java │ ├── FinallyRunner.java │ ├── ThrowingExceptionRunner.java │ └── TryWithResourcesRunner.java ├── 17-Files ├── .classpath ├── .project ├── resources │ ├── data.txt │ └── file-write.txt └── src │ └── files │ ├── DirectoryScanRunner.java │ ├── FileReadRunner.java │ └── FileWriteRunner.java ├── 18-ConcurrencyLocksAtomicityAndCollections ├── .classpath ├── .project ├── 18-Concurrency.md └── src │ └── com │ └── in28minutes │ └── concurrency │ ├── BiCounter.java │ ├── BiCounterWithAtomicInteger.java │ ├── BiCounterWithLock.java │ ├── ConcurrencyRunner.java │ ├── ConcurrentMapRunner.java │ ├── CopyOnWriteArrayListRunner.java │ └── Counter.java ├── 21-modularization-1-combined ├── .classpath ├── .project └── src │ └── com │ └── in28minutes │ ├── consumer │ ├── DirectConsumer.java │ └── MySortingUtilConsumer.java │ └── sorting │ ├── algorithm │ └── BubbleSort.java │ └── util │ └── MySortingUtil.java ├── 22-modularization-2-service-jar ├── .classpath ├── .project └── src │ └── com │ └── in28minutes │ └── sorting │ ├── algorithm │ └── BubbleSort.java │ └── util │ └── MySortingUtil.java ├── 23-modularization-3-consumer-jar ├── .classpath ├── .project └── src │ └── com │ └── in28minutes │ └── consumer │ ├── DirectConsumer.java │ └── MySortingUtilConsumer.java ├── 24-modularization-4-service-module ├── .classpath ├── .project └── src │ ├── com │ └── in28minutes │ │ └── sorting │ │ ├── algorithm │ │ └── BubbleSort.java │ │ └── util │ │ └── MySortingUtil.java │ └── module-info.java ├── 25-modularization-5-consumer-module ├── .classpath ├── .project └── src │ ├── com │ └── in28minutes │ │ └── consumer │ │ ├── DirectConsumer.java │ │ └── MySortingUtilConsumer.java │ └── module-info.java ├── 31-java-new-api-features ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.ui.prefs ├── resources │ ├── sample-new.txt │ └── sample.txt └── src │ └── com │ └── in28minutes │ └── api │ ├── a │ └── CopyOfApiRunner.java │ ├── b │ └── FileReadWriteRunner.java │ ├── c │ └── PredicateNotRunner.java │ ├── d │ └── StringNewApiRunner.java │ ├── e │ └── TypeInferencesRunner.java │ ├── f │ ├── SwitchEnumsRunner.java │ ├── SwitchExpressionRunner.java │ └── SwitchRecordsRunner.java │ ├── g │ └── TextBlocksRunner.java │ ├── h │ └── RecordsRunner.java │ ├── i │ ├── SealedClassesRunner.java │ └── SealedInterfacesRunner.java │ ├── j │ ├── ExecutorServiceVirtualThreadsRunner.java │ ├── PlatformThreadsRunner.java │ ├── SleepingThread.java │ └── VirtualThreadsRunner.java │ ├── k │ ├── SequencedListRunner.java │ ├── SequencedMapRunner.java │ └── SequencedSetRunner.java │ ├── l │ ├── PatternMatchingNestedRecordsRunner.java │ └── UnnamedVariablesRunner.java │ └── m │ └── StreamGathererRunner.java ├── 51-learn-spring-framework ├── .DS_Store ├── 01-Step03.md ├── 01-Step03.zip ├── 01-Step04.md ├── 01-Step04.zip ├── 01-Step05.md ├── 01-Step05.zip ├── 01-Step06.md ├── 01-Step06.zip ├── 01-Step08.md ├── 01-Step08.zip ├── 01-Step09.md ├── 01-Step09.zip ├── 01-Step10.md ├── 01-Step10.zip ├── 01-Step14.md ├── 01-Step14.zip ├── 01-Step15.md ├── 01-Step15.zip ├── 02-Step01.md ├── 02-Step01.zip ├── 02-Step02.md ├── 02-Step02.zip ├── 02-Step04.md ├── 02-Step04.zip ├── 02-Step08.md ├── 02-Step08.zip ├── 03-Step03.md ├── 03-Step03.zip ├── 03-Step07.md ├── 03-Step07.zip ├── 03-Step10.md ├── 03-Step10.zip ├── HELP.md ├── learn-spring-framework-01 │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── learnspringframework │ │ │ │ ├── App01GamingBasicJava.java │ │ │ │ ├── App03GamingSpringBeans.java │ │ │ │ ├── GamingConfiguration.java │ │ │ │ ├── game │ │ │ │ ├── GameRunner.java │ │ │ │ ├── GamingConsole.java │ │ │ │ ├── MarioGame.java │ │ │ │ ├── PacmanGame.java │ │ │ │ └── SuperContraGame.java │ │ │ │ ├── helloworld │ │ │ │ ├── App02HelloWorldSpring.java │ │ │ │ └── HelloWorldConfiguration.java │ │ │ │ └── test │ │ │ │ ├── ExploringVar.java │ │ │ │ └── SpringBeanVsJavaBean.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── learnspringframework │ │ └── LearnSpringFrameworkApplicationTests.java ├── learn-spring-framework-02 │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── in28minutes │ │ │ │ └── learnspringframework │ │ │ │ ├── examples │ │ │ │ ├── a0 │ │ │ │ │ └── SimpleSpringContextLauncherApplication.java │ │ │ │ ├── a1 │ │ │ │ │ └── DepInjectionLauncherApplication.java │ │ │ │ ├── c1 │ │ │ │ │ ├── BusinessCalculationService.java │ │ │ │ │ ├── DataService.java │ │ │ │ │ ├── MongoDbDataService.java │ │ │ │ │ ├── MySqlDataService.java │ │ │ │ │ └── RealWorldSpringContextLauncherApplication.java │ │ │ │ ├── d1 │ │ │ │ │ └── LazyInitializationLauncherApplication.java │ │ │ │ ├── e1 │ │ │ │ │ └── BeanScopesLauncherApplication.java │ │ │ │ ├── f1 │ │ │ │ │ └── PrePostAnnotationsContextLauncherApplication.java │ │ │ │ ├── g1 │ │ │ │ │ └── CdiContextLauncherApplication.java │ │ │ │ └── h1 │ │ │ │ │ └── XmlConfigurationContextLauncherApplication.java │ │ │ │ └── game │ │ │ │ ├── GameRunner.java │ │ │ │ ├── GamingAppLauncherApplication.java │ │ │ │ ├── GamingConsole.java │ │ │ │ ├── MarioGame.java │ │ │ │ ├── PacmanGame.java │ │ │ │ └── SuperContraGame.java │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── contextConfiguration.out.xml │ │ │ └── contextConfiguration.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── in28minutes │ │ └── learnspringframework │ │ └── LearnSpringFrameworkApplicationTests.java └── step-by-step-code-changes │ └── step-by-step-guide.md ├── 52-learn-spring-boot ├── .gitignore ├── 1.md ├── 2.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── in28minutes │ │ │ └── learnspringboot │ │ │ ├── LearnSpringBootApplication.java │ │ │ └── courses │ │ │ ├── bean │ │ │ └── Course.java │ │ │ ├── controller │ │ │ └── CourseController.java │ │ │ └── repository │ │ │ └── CourseRepository.java │ └── resources │ │ ├── application.properties │ │ └── data.sql │ └── test │ └── java │ └── com │ └── in28minutes │ └── learnspringboot │ └── LearnSpringBootApplicationTests.java ├── 99-TipsAndTricks ├── .classpath ├── .project └── src │ └── com │ └── in28minutes │ └── tips │ ├── access │ ├── package1 │ │ ├── ClassAccessModifiers.java │ │ ├── ExampleClass.java │ │ └── MethodAccessRunnerInsideSamePackage.java │ └── package2 │ │ ├── ClassAccessModifiersRunnerInOtherPackage.java │ │ └── MethodAccessRunnerInDifferentPackage.java │ ├── anonymous │ └── AnonymousClassRunner.java │ ├── blocks │ └── BlocksRunner.java │ ├── eclipse │ ├── DummyForTest.java │ └── EclipseTipsAndTricks.java │ ├── enums │ ├── EnumRunner.java │ └── Season.java │ ├── equals │ └── EqualsRunner.java │ ├── imports │ └── ImportsRunner.java │ ├── nestedclass │ └── NestedClassRunner.java │ └── nonaccess │ └── package1 │ ├── FinalNonAccessModifierRunner.java │ └── StaticModifierRunner.java ├── 99-presentation ├── 00-presentation-moved.html ├── 01-quiz-presentation.html ├── Gruntfile.js ├── LICENSE ├── bower.json ├── css │ ├── print │ │ ├── paper.css │ │ └── pdf.css │ ├── reveal-override.css │ ├── reveal.css │ ├── reveal.scss │ ├── reviews.css │ └── theme │ │ ├── README.md │ │ ├── beige.css │ │ ├── black.css │ │ ├── blood.css │ │ ├── league.css │ │ ├── moon.css │ │ ├── night.css │ │ ├── serif.css │ │ ├── simple.css │ │ ├── sky.css │ │ ├── solarized.css │ │ ├── source │ │ ├── beige.scss │ │ ├── black.scss │ │ ├── blood.scss │ │ ├── league.scss │ │ ├── moon.scss │ │ ├── night.scss │ │ ├── serif.scss │ │ ├── simple.scss │ │ ├── sky.scss │ │ ├── solarized.scss │ │ └── white.scss │ │ ├── template │ │ ├── mixins.scss │ │ ├── settings.scss │ │ └── theme.scss │ │ └── white.css ├── images │ ├── .DS_Store │ ├── 00-icons │ │ ├── azure.png │ │ ├── client.png │ │ ├── database.png │ │ ├── datacenter.png │ │ ├── disk.png │ │ ├── internet.png │ │ ├── master.png │ │ ├── mobile.png │ │ ├── readreplica.png │ │ ├── server.png │ │ ├── standby.png │ │ ├── tape.png │ │ ├── user.png │ │ ├── users.png │ │ └── volume.png │ ├── 02-architecture │ │ ├── application-transport-layers.drawio │ │ ├── application-transport-layers.png │ │ ├── cloud-0-IAAS.png │ │ ├── cloud-2-PAAS.png │ │ ├── container-orchestration.png │ │ ├── containers-docker-overview.png │ │ ├── containers-docker.png │ │ ├── database-columnar-storage-2.png │ │ ├── database-columnar-storage.png │ │ ├── database-document.png │ │ ├── database-fundamentals-1-single-db.drawio │ │ ├── database-fundamentals-1-single-db.png │ │ ├── database-fundamentals-2-single-db-snapshot.drawio │ │ ├── database-fundamentals-2-single-db-snapshot.png │ │ ├── database-fundamentals-3-single-db-snapshot-transaction.drawio │ │ ├── database-fundamentals-3-single-db-snapshot-transaction.png │ │ ├── database-fundamentals-4-standby-database.drawio │ │ ├── database-fundamentals-4-standby-database.png │ │ ├── database-fundamentals-5-reporting-database-application.drawio │ │ ├── database-fundamentals-5-reporting-database-application.png │ │ ├── database-fundamentals-6-sep-reporting-database-application.drawio │ │ ├── database-fundamentals-6-sep-reporting-database-application.png │ │ ├── database-fundamentals-document-database-example.png │ │ ├── database-fundamentals-graph-databases.png │ │ ├── database-fundamentals-relational-schema.png │ │ ├── database-key-value.png │ │ ├── database-relational-icon.png │ │ ├── database-session-store.png │ │ ├── databases.drawio │ │ ├── datastream.png │ │ ├── devops-05-continuous-delivery.png │ │ ├── devops-06-iaac-2-overview.png │ │ ├── devops-06-teams.png │ │ ├── dns-record-types.png │ │ ├── encryption-Asymmetric_encryption.png │ │ ├── encryption-symetrickey.drawio │ │ ├── encryption-symetrickey.png │ │ ├── horizontal-scaling.png │ │ ├── kubernetes.png │ │ ├── microservices.png │ │ ├── operational-continuum.png │ │ ├── private-network-1-SingleDataCenter.png │ │ ├── private-network-1-SingleDataCenterWithDB.drawio │ │ ├── private-network-1-SingleDataCenterWithDB.png │ │ ├── private-network-2-2-datacenters-london.drawio │ │ ├── private-network-2-2-datacenters-london.png │ │ ├── private-network-3-2-datacenters-london-mumbai.drawio │ │ ├── private-network-3-2-datacenters-london-mumbai.png │ │ ├── queueing-01.drawio │ │ ├── queuing-00.drawio │ │ ├── queuing-00.png │ │ ├── queuing-01.png │ │ ├── queuing-02.png │ │ ├── storage-block-storage.png │ │ ├── storage-file-storage.png │ │ ├── storage-raid.drawio │ │ ├── storage-raid.png │ │ ├── storage-types-01.drawio │ │ ├── storage-types-02.drawio │ │ ├── storage-types.png │ │ └── vertical-scaling.png │ ├── In28MinutesLogo-300X50.png │ ├── arrow.png │ ├── arrowbi.png │ ├── arrowdot.png │ ├── arrowdotrev.png │ ├── arrowrev.png │ ├── arrows.drawio │ ├── arrowtd.png │ ├── arrowtdbi.png │ ├── arrowtdsmall.png │ ├── aws-cloud.png │ ├── aws.png │ ├── border.png │ ├── cloud.png │ ├── coding-exercises.png │ ├── eclipse.png │ ├── embedded-approach.png │ ├── forgettting-curve.png │ ├── gamerunner.png │ ├── gamerunnerinterface.png │ ├── gaming-console.png │ ├── happy-programmers.png │ ├── in28minutes-logo-small.png │ ├── in28minutes-logo.png │ ├── java-coding-exercises.png │ ├── java.png │ ├── layers.png │ ├── load-variations.png │ ├── maven.png │ ├── modularization.png │ ├── persistence.png │ ├── remember.png │ ├── remembering-curve.png │ ├── reviews.png │ ├── spring-boot-auto-configure.png │ ├── spring-boot.png │ ├── spring-data-jpa-configuration.png │ ├── spring-modules.png │ ├── spring-projects.png │ ├── spring.png │ └── war-approach.png ├── js │ └── reveal.js ├── lib │ ├── css │ │ └── zenburn.css │ ├── font │ │ ├── league-gothic │ │ │ ├── LICENSE │ │ │ ├── league-gothic.css │ │ │ ├── league-gothic.eot │ │ │ ├── league-gothic.ttf │ │ │ └── league-gothic.woff │ │ └── source-sans-pro │ │ │ ├── LICENSE │ │ │ ├── source-sans-pro-italic.eot │ │ │ ├── source-sans-pro-italic.ttf │ │ │ ├── source-sans-pro-italic.woff │ │ │ ├── source-sans-pro-regular.eot │ │ │ ├── source-sans-pro-regular.ttf │ │ │ ├── source-sans-pro-regular.woff │ │ │ ├── source-sans-pro-semibold.eot │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ ├── source-sans-pro-semibold.woff │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ └── source-sans-pro.css │ └── js │ │ ├── classList.js │ │ ├── head.min.js │ │ └── html5shiv.js ├── package.json ├── plugin │ ├── highlight │ │ └── highlight.js │ ├── markdown │ │ ├── example.html │ │ ├── example.md │ │ ├── markdown.js │ │ └── marked.js │ ├── math │ │ └── math.js │ ├── multiplex │ │ ├── client.js │ │ ├── index.js │ │ ├── master.js │ │ └── package.json │ ├── notes-server │ │ ├── client.js │ │ ├── index.js │ │ └── notes.html │ ├── notes │ │ ├── notes.html │ │ └── notes.js │ ├── print-pdf │ │ └── print-pdf.js │ ├── search │ │ └── search.js │ └── zoom-js │ │ └── zoom.js └── test │ ├── examples │ ├── assets │ │ ├── image1.png │ │ └── image2.png │ ├── barebones.html │ ├── embedded-media.html │ ├── math.html │ ├── slide-backgrounds.html │ └── slide-transitions.html │ ├── qunit-1.12.0.css │ ├── qunit-1.12.0.js │ ├── simple.md │ ├── test-markdown-element-attributes.html │ ├── test-markdown-element-attributes.js │ ├── test-markdown-external.html │ ├── test-markdown-external.js │ ├── test-markdown-options.html │ ├── test-markdown-options.js │ ├── test-markdown-slide-attributes.html │ ├── test-markdown-slide-attributes.js │ ├── test-markdown.html │ ├── test-markdown.js │ ├── test-pdf.html │ ├── test-pdf.js │ ├── test.html │ └── test.js ├── InstallingJavaAndEclipse.pdf ├── LICENSE ├── README.md ├── course-overview.png ├── images ├── 01_Java9JDKDownload.png ├── 02_Oracle_Site.png ├── 03_AcceptLicenseAgreement_Error.png ├── 04_AcceptLicenseAgreement.png ├── 05_Download_JDK_9.png ├── 06_DoubleClick_And_Start_Installation.png ├── 10_Installation_First_Screen.png ├── 11_Installation_Ready_Screen.png ├── 12_Installation_Features_Select_Screen.png ├── 13_Installation_Status_Screen.png ├── 14_Installation_Choose_Custom_Setup.png ├── 15_Installation_Status_Screen.png ├── 16_Congratulations.png ├── 21_Launch_Command_Prompt_Windows.png ├── 21_Launch_Terminal_Mac.png ├── 22_Java_Version_Mac.png ├── 22_Java_Version_Windows.png ├── 23_JShell_Version_Success_Windows.png ├── 24_JShell_Version_Error.png ├── 24_JShell_Version_Success_Mac_1.png ├── 25_JShell_Example_Command.png ├── 26_JShell_Launch_Screen.png ├── 30_JShell_In_JDK_Bin_Folder.png ├── 31_Browsing_To_Java_Folder.png ├── 32_Browsing_To_JDK_Bin_Folder.png ├── 33_Windows_Environment_Variables.png ├── 34_Click_Environment_Variables.png ├── 35_Scroll_And_Select_Path_And_Edit.png ├── 36_Default_Path_value.png ├── 37_Add_JDK_Bin_Folder_To_Path.png ├── 38_Click_ok.png ├── 39_Click_ok.png ├── 40_Click_ok.png ├── 51_google-search-download-eclipse.png ├── 52_eclipse-choose-installation.png ├── java-coding-exercises.png ├── windows10-path-01.png ├── windows10-path-02.png ├── windows10-path-03.png ├── windows10-path-04.png ├── windows10-path-05.png └── windows10-path-06.png ├── in28minutes-course-guide-java-v1.0.pdf ├── text-lectures.md └── zz-recording-notes.md /01-IntroductionToJavaProgrammingWithJShell-MultiplicationTable/notes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/01-IntroductionToJavaProgrammingWithJShell-MultiplicationTable/notes.md -------------------------------------------------------------------------------- /03-IntroductionToJavaPlatform/Planet.java: -------------------------------------------------------------------------------- 1 | class Planet { 2 | 3 | void revolve() { 4 | System.out.println("Revolve"); 5 | } 6 | 7 | public static void main(String[] args) { 8 | Planet earth = new Planet(); 9 | earth.revolve(); 10 | } 11 | } -------------------------------------------------------------------------------- /03-IntroductionToJavaPlatform/README.md: -------------------------------------------------------------------------------- 1 | ![](https://raw.githubusercontent.com/in28minutes/java-cheat-sheet/master/images/java-write-once-run-anywhere.png) 2 | 3 | 4 | # JDK vs JRE vs JVM 5 | 6 | - JVM (Java Virtual Machine) runs Java bytecode. 7 | - JRE = JVM + Libraries + Other Components 8 | - JDK = JRE + Compilers + Debuggers 9 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | FirstJavaProjectWithIn28Minutes 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=9 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=9 12 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/src/com/in28minutes/firstjavaproject/HelloWorld.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.firstjavaproject; 2 | 3 | public class HelloWorld { 4 | 5 | public static void main(String[] args) { 6 | 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/src/com/in28minutes/firstjavaproject/KeyboardShortcuts.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.firstjavaproject; 2 | 3 | public class KeyboardShortcuts { 4 | public static void main(String[] args) { 5 | int i = 0; 6 | System.out.println(i); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/src/com/in28minutes/firstjavaproject/MultiplicationTable.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.firstjavaproject; 2 | 3 | public class MultiplicationTable { 4 | 5 | void print() { 6 | print(5); 7 | } 8 | 9 | void print(int table) { 10 | print(table, 1, 10); 11 | } 12 | 13 | void print(int table, int from, int to) { 14 | for (int i = from; i <= to; i++) { 15 | System.out.printf("%d X %d = %d", table, i, table * i).println(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/src/com/in28minutes/firstjavaproject/MultiplicationTableRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.firstjavaproject; 2 | 3 | public class MultiplicationTableRunner { 4 | 5 | public static void main(String[] args) { 6 | MultiplicationTable table = new MultiplicationTable(); 7 | table.print(); 8 | 9 | //table.print(6); 10 | //table.print(6, 11, 20); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /04-IntroductionToEclipse-FirstJavaProject/src/com/in28minutes/firstjavaproject/MutliplicationTableBeforeRefactoring.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.firstjavaproject; 2 | 3 | public class MutliplicationTableBeforeRefactoring { 4 | void print() { 5 | for (int i = 1; i <= 10; i++) { 6 | System.out.printf("%d X %d = %d", 5, i, 5 * i).println(); 7 | } 8 | } 9 | 10 | void print(int table) { 11 | for (int i = 1; i <= 10; i++) { 12 | System.out.printf("%d X %d = %d", table, i, table * i).println(); 13 | } 14 | } 15 | 16 | void print(int table, int from, int to) { 17 | for (int i = from; i <= to; i++) { 18 | System.out.printf("%d X %d = %d", table, i, table * i).println(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /05-IntroductionToObjectOrientedProgramming/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /05-IntroductionToObjectOrientedProgramming/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | introduction-to-object-oriented-programming 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /05-IntroductionToObjectOrientedProgramming/src/com/in28minutes/oops/Book.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops; 2 | 3 | public class Book { 4 | 5 | private int noOfCopies; 6 | 7 | public Book(int noOfCopies) { 8 | this.noOfCopies = noOfCopies; 9 | } 10 | 11 | public void setNoOfCopies(int noOfCopies) { 12 | if (noOfCopies > 0) 13 | this.noOfCopies = noOfCopies; 14 | } 15 | 16 | public void increaseNoOfCopies(int howMuch) { 17 | setNoOfCopies(this.noOfCopies + howMuch); 18 | } 19 | 20 | public void decreaseNoOfCopies(int howMuch) { 21 | setNoOfCopies(this.noOfCopies - howMuch); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /05-IntroductionToObjectOrientedProgramming/src/com/in28minutes/oops/BookRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops; 2 | 3 | public class BookRunner { 4 | 5 | public static void main(String[] args) { 6 | // Create a new class called Book 7 | // Create three instances 8 | Book artOfComputerProgramming = new Book(100); 9 | Book effectiveJava = new Book(50); 10 | Book cleanCode = new Book(40); 11 | 12 | artOfComputerProgramming.setNoOfCopies(100); 13 | effectiveJava.setNoOfCopies(50); 14 | cleanCode.setNoOfCopies(45); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /05-IntroductionToObjectOrientedProgramming/src/com/in28minutes/oops/MotorBike.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops; 2 | 3 | public class MotorBike { 4 | //state 5 | private int speed; //member variable 6 | 7 | 8 | //constructors 9 | MotorBike() { 10 | this(5); 11 | } 12 | 13 | MotorBike(int speed) { 14 | this.speed = speed; 15 | } 16 | 17 | //behavior 18 | public int getSpeed() { 19 | return speed; 20 | } 21 | 22 | public void setSpeed(int speed) { 23 | if(speed > 0 ) 24 | this.speed = speed; 25 | } 26 | 27 | public void increaseSpeed(int howMuch) { 28 | setSpeed(this.speed + howMuch); 29 | } 30 | 31 | public void decreaseSpeed(int howMuch) { 32 | setSpeed(this.speed - howMuch); 33 | } 34 | 35 | void start() { 36 | System.out.println("Bike Started"); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | java-primitive-data-types-in-depth 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=9 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=9 12 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/java-primitive-data-types-in-depth/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | java-primitive-data-types-in-depth 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/src/com/in28minutes/primitive/datatypes/BiNumber.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.primitive.datatypes; 2 | 3 | public class BiNumber { 4 | private int number1; 5 | private int number2; 6 | 7 | public int getNumber1() { 8 | return number1; 9 | } 10 | 11 | public void setNumber1(int number1) { 12 | this.number1 = number1; 13 | } 14 | 15 | public int getNumber2() { 16 | return number2; 17 | } 18 | 19 | public void setNumber2(int number2) { 20 | this.number2 = number2; 21 | } 22 | 23 | public BiNumber(int number1, int number2) { 24 | this.number1 = number1; 25 | this.number2 = number2; 26 | } 27 | 28 | public int add() { 29 | return number1 + number2; 30 | } 31 | 32 | public int multiply() { 33 | return number1 * number2; 34 | } 35 | 36 | public void doubleValue() { 37 | this.number1 *= 2; 38 | this.number2 *= 2; 39 | } 40 | } -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/src/com/in28minutes/primitive/datatypes/BiNumberRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.primitive.datatypes; 2 | 3 | public class BiNumberRunner { 4 | 5 | public static void main(String[] args) { 6 | BiNumber numbers = new BiNumber(2, 3); 7 | 8 | System.out.println(numbers.add());//2+3 9 | System.out.println(numbers.multiply());//2*3 10 | 11 | numbers.doubleValue();//Double both numbers 12 | 13 | System.out.println(numbers.getNumber1());//4 14 | System.out.println(numbers.getNumber2());//6 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/src/com/in28minutes/primitive/datatypes/MyCharRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.primitive.datatypes; 2 | 3 | public class MyCharRunner { 4 | 5 | public static void main(String[] args) { 6 | MyChar myChar = new MyChar('B'); 7 | System.out.println(myChar.isVowel()); 8 | 9 | //'a', 'e', 'i', 'o', 'u' and Capitals 10 | System.out.println(myChar.isDigit()); 11 | System.out.println(myChar.isAlphabet()); //'a' to 'z' or 'A' to 'Z' 12 | 13 | System.out.println(myChar.isConsonant()); 14 | 15 | MyChar.printLowerCaseAlphabets(); 16 | MyChar.printUpperCaseAlphabets(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/src/com/in28minutes/primitive/datatypes/SimpleInterestCalculator.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.primitive.datatypes; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class SimpleInterestCalculator { 6 | 7 | BigDecimal principal; 8 | 9 | BigDecimal interest; 10 | 11 | public SimpleInterestCalculator(String principal, String interest) { 12 | this.principal = new BigDecimal(principal); 13 | this.interest = new BigDecimal(interest).divide(new BigDecimal(100)); 14 | } 15 | 16 | public BigDecimal calculateTotalValue(int noOfYears) { 17 | // Total Value = principal + principal * interest * noOfYears; 18 | BigDecimal noOfYearsBigDecimal = new BigDecimal(noOfYears); 19 | BigDecimal totalValue = principal.add(principal.multiply(interest).multiply(noOfYearsBigDecimal)); 20 | return totalValue; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /06-PrimitiveDataTypesAndAlternatives/src/com/in28minutes/primitive/datatypes/SimpleInterestCalculatorRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.primitive.datatypes; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class SimpleInterestCalculatorRunner { 6 | 7 | public static void main(String[] args) { 8 | 9 | SimpleInterestCalculator calculator = 10 | new SimpleInterestCalculator("4500.00", "7.5"); 11 | BigDecimal totalValue = 12 | calculator.calculateTotalValue(5);// 5 years 13 | //6187.50000 14 | System.out.println(totalValue); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /07-Conditionals/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /07-Conditionals/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | conditionals-if-and-switch 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /07-Conditionals/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=9 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=9 12 | -------------------------------------------------------------------------------- /08-Loops/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /08-Loops/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | loops 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /08-Loops/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=9 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=9 12 | -------------------------------------------------------------------------------- /08-Loops/src/com/in28minutes/loops/DoWhileRepeatedQuestionRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.loops; 2 | 3 | import java.util.Scanner; 4 | 5 | public class DoWhileRepeatedQuestionRunner { 6 | 7 | public static void main(String[] args) { 8 | 9 | Scanner scanner = new Scanner(System.in); 10 | int number = -1; 11 | 12 | do { 13 | if (number != -1) { 14 | System.out.println("Cube is " + (number * number * number)); 15 | } 16 | System.out.print("Enter a number: "); 17 | number = scanner.nextInt(); 18 | } while (number >= 0); 19 | System.out.print("Thank You! Have Fun!"); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /08-Loops/src/com/in28minutes/loops/MyNumberRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.loops; 2 | 3 | import com.in28minutes.loops.MyNumber; 4 | 5 | public class MyNumberRunner { 6 | 7 | public static void main(String[] args) { 8 | MyNumber number = new MyNumber(5); 9 | 10 | boolean isPrime = number.isPrime(); 11 | System.out.println("isPrime " + isPrime); 12 | 13 | int sum = number.sumUptoN(); 14 | System.out.println("sumUptoN " + sum); 15 | 16 | int sumOfDivisors = number.sumOfDivisors(); 17 | System.out.println("sumOfDivisors " + sumOfDivisors); 18 | 19 | number.printNumberTriangle(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /08-Loops/src/com/in28minutes/loops/WhileNumberPlayer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.loops; 2 | 3 | public class WhileNumberPlayer { 4 | 5 | private int limit; 6 | 7 | public WhileNumberPlayer(int limit) { 8 | this.limit = limit; 9 | } 10 | 11 | // For limit = 30, output would be 1 4 9 16 25 12 | public void printSquaresUptoLimit() { 13 | int i = 1; 14 | while (i * i < limit) { 15 | System.out.print(i * i + " "); 16 | i++; 17 | } 18 | System.out.println(); 19 | } 20 | 21 | // For limit = 27, output would be 1 8 27 22 | public void printCubesUptoLimit() { 23 | int i = 1; 24 | while (i * i * i <= limit) { 25 | System.out.print(i * i * i + " "); 26 | i++; 27 | } 28 | System.out.println(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /08-Loops/src/com/in28minutes/loops/WhileNumberPlayerRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.loops; 2 | 3 | public class WhileNumberPlayerRunner { 4 | public static void main(String[] args) { 5 | WhileNumberPlayer player = new WhileNumberPlayer(27); 6 | player.printSquaresUptoLimit(); 7 | player.printCubesUptoLimit(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /10-ArraysAndArrayList/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /10-ArraysAndArrayList/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | introduction-to-array-and-arraylist 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /10-ArraysAndArrayList/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=9 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=9 12 | -------------------------------------------------------------------------------- /10-ArraysAndArrayList/src/com/in28minutes/arrays/StringRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.arrays; 2 | 3 | public class StringRunner { 4 | 5 | public static void main(String[] args) { 6 | 7 | String[] daysOfWeek = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; 8 | 9 | String dayWithMostCharacters = ""; 10 | 11 | for (String day : daysOfWeek) { 12 | if (day.length() > dayWithMostCharacters.length()) { 13 | dayWithMostCharacters = day; 14 | } 15 | } 16 | 17 | System.out.println("Day with Most number of characters " + dayWithMostCharacters); 18 | 19 | for (int i = daysOfWeek.length - 1; i >= 0; i--) { 20 | System.out.println(daysOfWeek[i]); 21 | } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | object-oriented-programming-2 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/AbstractRecipe.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public abstract class AbstractRecipe { 4 | 5 | public void execute() { 6 | getReady(); 7 | doTheDish(); 8 | cleanup(); 9 | } 10 | 11 | abstract void getReady(); 12 | abstract void doTheDish(); 13 | abstract void cleanup(); 14 | } 15 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/Address.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class Address { 4 | private String line1; 5 | private String city; 6 | private String zip; 7 | 8 | //creation 9 | public Address(String line1, String city, String zip) { 10 | super(); 11 | this.line1 = line1; 12 | this.city = city; 13 | this.zip = zip; 14 | } 15 | 16 | public String toString() { 17 | return line1 + " " + city + " " + zip; 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/Book.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class Book { 6 | 7 | private int id; 8 | private String name; 9 | private String author; 10 | private ArrayList reviews = new ArrayList<>(); 11 | 12 | public Book(int id, String name, String author) { 13 | this.id = id; 14 | this.name = name; 15 | this.author = author; 16 | } 17 | 18 | public void addReview(Review review) { 19 | this.reviews.add(review); 20 | } 21 | 22 | public String toString() { 23 | return String.format("id =%d name = %s author = %s Reviews = [%s]", 24 | id, name, author, reviews); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/BookRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class BookRunner { 4 | 5 | public static void main(String[] args) { 6 | Book book = new Book(123, "Object Oriented Programming with Java", 7 | "Ranga"); 8 | book.addReview(new Review(10, "Great Book", 5)); 9 | book.addReview(new Review(101, "Awesome", 5)); 10 | 11 | System.out.println(book); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/CustomerRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class CustomerRunner { 4 | 5 | public static void main(String[] args) { 6 | Address homeAddress = new Address("line 1", "Hyderabad", "500035"); 7 | Customer customer = new Customer("Ranga", homeAddress); 8 | System.out.println(customer); 9 | 10 | Address workAddress = new Address("line 1 for work", "Hyderabad", "500078"); 11 | customer.setWorkAddress(workAddress); 12 | 13 | System.out.println(customer); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/FanRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class FanRunner { 4 | public static void main(String[] args) { 5 | Fan fan = new Fan("Manufacturer 1", 0.34567, "GREEN"); 6 | fan.switchOn(); 7 | System.out.println(fan); 8 | fan.setSpeed((byte)3); 9 | System.out.println(fan); 10 | fan.switchOff(); 11 | System.out.println(fan); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/Recipe1.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class Recipe1 extends AbstractRecipe{ 4 | 5 | @Override 6 | void getReady() { 7 | System.out.println("Get the raw materials"); 8 | System.out.println("Get the utensils"); 9 | } 10 | 11 | @Override 12 | void doTheDish() { 13 | System.out.println("do the dish"); 14 | } 15 | 16 | @Override 17 | void cleanup() { 18 | System.out.println("Cleanup the utensils"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/RecipeRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class RecipeRunner { 4 | 5 | public static void main(String[] args) { 6 | Recipe1 recipe = new Recipe1(); 7 | recipe.execute(); 8 | 9 | RecipeWithMicrowave recipeWithMicrowave = new RecipeWithMicrowave(); 10 | recipeWithMicrowave.execute(); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/RecipeWithMicrowave.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class RecipeWithMicrowave extends AbstractRecipe{ 4 | 5 | @Override 6 | void getReady() { 7 | System.out.println("Get the raw materials"); 8 | System.out.println("Switch on the microwave"); 9 | } 10 | 11 | @Override 12 | void doTheDish() { 13 | System.out.println("get stuff ready"); 14 | System.out.println("Put it in the microwave"); 15 | } 16 | 17 | @Override 18 | void cleanup() { 19 | System.out.println("Cleanup the utensils"); 20 | System.out.println("Switch off the microwave"); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/RectangleRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class RectangleRunner { 4 | 5 | public static void main(String[] args) { 6 | Rectangle rectangle = new Rectangle(12, 23); 7 | System.out.println(rectangle); 8 | rectangle.setWidth(25); 9 | System.out.println(rectangle); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/Review.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2; 2 | 3 | public class Review { 4 | 5 | private int id; 6 | private String description; 7 | private int rating; 8 | 9 | public Review(int id, String description, int rating) { 10 | this.id = id; 11 | this.description = description; 12 | this.rating = rating; 13 | } 14 | 15 | public String toString() { 16 | return id + " " + description + " " + rating; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/inheritance/AnimalRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.inheritance; 2 | 3 | abstract class Animal { 4 | abstract void bark(); 5 | } 6 | 7 | class Dog extends Animal { 8 | public void bark() { 9 | System.out.println("Bow Bow"); 10 | } 11 | } 12 | 13 | class Cat extends Animal { 14 | public void bark() { 15 | System.out.println("Meow Meow"); 16 | } 17 | } 18 | 19 | public class AnimalRunner { 20 | public static void main(String[] args) { 21 | Animal[] animals = {new Cat(), new Dog()}; 22 | for(Animal animal:animals) { 23 | animal.bark(); 24 | } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/inheritance/Person.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.inheritance; 2 | 3 | public class Person extends Object{ 4 | private String name; 5 | private String email; 6 | private String phoneNumber; 7 | 8 | public Person(String name) { 9 | System.out.println("Person Constructor"); 10 | this.name = name; 11 | } 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | 17 | public String getEmail() { 18 | return email; 19 | } 20 | 21 | public void setEmail(String email) { 22 | this.email = email; 23 | } 24 | 25 | public String getPhoneNumber() { 26 | return phoneNumber; 27 | } 28 | 29 | public void setPhoneNumber(String phoneNumber) { 30 | this.phoneNumber = phoneNumber; 31 | } 32 | 33 | public String toString() { 34 | return name + "#" + email + "#" + phoneNumber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/inheritance/Student.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.inheritance; 2 | 3 | public class Student extends Person { 4 | private String collegeName; 5 | private int year; 6 | 7 | public Student(String name, String collegeName) { 8 | super(name); 9 | this.collegeName = collegeName; 10 | } 11 | 12 | public String getCollegeName() { 13 | return collegeName; 14 | } 15 | 16 | public void setCollegeName(String collegeName) { 17 | this.collegeName = collegeName; 18 | } 19 | 20 | public int getYear() { 21 | return year; 22 | } 23 | 24 | public void setYear(int year) { 25 | this.year = year; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/ChessGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class ChessGame implements GamingConsole{ 4 | 5 | @Override 6 | public void up() { 7 | System.out.println("Move piece up"); 8 | } 9 | 10 | @Override 11 | public void down() { 12 | System.out.println("Move piece down"); 13 | } 14 | 15 | @Override 16 | public void left() { 17 | System.out.println("Move piece left"); 18 | } 19 | 20 | @Override 21 | public void right() { 22 | System.out.println("Move piece right"); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/ComplexAlgorithm.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public interface ComplexAlgorithm { 4 | int complexAlgorithm(int number1, int number2); 5 | } 6 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/DummyAlgorithm.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class DummyAlgorithm implements ComplexAlgorithm{ 4 | 5 | @Override 6 | public int complexAlgorithm(int number1, int number2) { 7 | return number1 + number2; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/FlyableRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | interface Flyable{ 4 | void fly(); 5 | } 6 | 7 | class Bird implements Flyable{ 8 | 9 | @Override 10 | public void fly() { 11 | System.out.println("with wings"); 12 | } 13 | 14 | } 15 | 16 | class Aeroplane implements Flyable{ 17 | 18 | @Override 19 | public void fly() { 20 | System.out.println("with fuel"); 21 | } 22 | 23 | } 24 | 25 | public class FlyableRunner { 26 | 27 | public static void main(String[] args) { 28 | Flyable[] flyingObjects = { new Bird(), new Aeroplane()}; 29 | for(Flyable object : flyingObjects) { 30 | object.fly(); 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/GameRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class GameRunner { 4 | 5 | public static void main(String[] args) { 6 | GamingConsole[] games = {new MarioGame(), new ChessGame()}; 7 | 8 | for(GamingConsole game:games) { 9 | game.up(); 10 | game.down(); 11 | game.left(); 12 | game.right(); 13 | } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/GamingConsole.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public interface GamingConsole { 4 | public void up(); 5 | public void down(); 6 | public void left(); 7 | public void right(); 8 | } 9 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/MarioGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class MarioGame implements GamingConsole{ 4 | 5 | @Override 6 | public void up() { 7 | System.out.println("Jump"); 8 | } 9 | 10 | @Override 11 | public void down() { 12 | System.out.println("Goes into a hole"); 13 | } 14 | 15 | @Override 16 | public void left() { 17 | } 18 | 19 | @Override 20 | public void right() { 21 | System.out.println("Go Forward"); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/Project.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class Project { 4 | 5 | interface Test { 6 | void nothing(); 7 | 8 | default void nothing1() { 9 | 10 | } 11 | 12 | } 13 | 14 | class Class1 implements Test { 15 | 16 | @Override 17 | public void nothing() { 18 | // TODO Auto-generated method stub 19 | 20 | } 21 | 22 | } 23 | 24 | class Class2 implements Test { 25 | 26 | @Override 27 | public void nothing() { 28 | // TODO Auto-generated method stub 29 | 30 | } 31 | 32 | } 33 | 34 | public static void main(String[] args) { 35 | ComplexAlgorithm algorithm = new RealAlgorithm(); 36 | System.out.println(algorithm.complexAlgorithm(10, 20)); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /11-ObjectOrientedProgrammingAgain/src/com/in28minutes/oops/level2/interfaces/RealAlgorithm.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.oops.level2.interfaces; 2 | 3 | public class RealAlgorithm implements ComplexAlgorithm{ 4 | 5 | @Override 6 | public int complexAlgorithm(int number1, int number2) { 7 | return number1 * number2; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /12-Collections/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /12-Collections/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | collections 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /12-Collections/presentation/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.iml 3 | *.iws 4 | *.eml 5 | out/ 6 | .DS_Store 7 | .svn 8 | log/*.log 9 | tmp/** 10 | node_modules/ 11 | .sass-cache 12 | css/reveal.min.css 13 | js/reveal.min.js -------------------------------------------------------------------------------- /12-Collections/presentation/css/reveal-override.css: -------------------------------------------------------------------------------- 1 | body:after { 2 | content: url(../images/logo.png); 3 | position: fixed; 4 | top: 1em; 5 | right: 1em; 6 | } -------------------------------------------------------------------------------- /12-Collections/presentation/images/In28MinutesLogo-300X50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/In28MinutesLogo-300X50.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/Java-Collections-Arrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/Java-Collections-Arrays.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/Java-Collections-Hashing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/Java-Collections-Hashing.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/Java-Collections-LinkedList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/Java-Collections-LinkedList.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/Java-Collections-Tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/Java-Collections-Tree.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/SpringInterviewGuide_SOAPWebServices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/SpringInterviewGuide_SOAPWebServices.png -------------------------------------------------------------------------------- /12-Collections/presentation/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/images/logo.png -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('league-gothic.eot'); 4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('league-gothic.woff') format('woff'), 6 | url('league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /12-Collections/presentation/lib/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | document.createElement('header'); 2 | document.createElement('nav'); 3 | document.createElement('section'); 4 | document.createElement('article'); 5 | document.createElement('aside'); 6 | document.createElement('footer'); 7 | document.createElement('hgroup'); -------------------------------------------------------------------------------- /12-Collections/presentation/plugin/markdown/example.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | ## External 1.1 6 | 7 | Content 1.1 8 | 9 | Note: This will only appear in the speaker notes window. 10 | 11 | 12 | ## External 1.2 13 | 14 | Content 1.2 15 | 16 | 17 | 18 | ## External 2 19 | 20 | Content 2.1 21 | 22 | 23 | 24 | ## External 3.1 25 | 26 | Content 3.1 27 | 28 | 29 | ## External 3.2 30 | 31 | Content 3.2 32 | -------------------------------------------------------------------------------- /12-Collections/presentation/plugin/multiplex/client.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var multiplex = Reveal.getConfig().multiplex; 3 | var socketId = multiplex.id; 4 | var socket = io.connect(multiplex.url); 5 | 6 | socket.on(multiplex.id, function(data) { 7 | // ignore data from sockets that aren't ours 8 | if (data.socketId !== socketId) { return; } 9 | if( window.location.host === 'localhost:1947' ) return; 10 | 11 | Reveal.setState(data.state); 12 | }); 13 | }()); 14 | -------------------------------------------------------------------------------- /12-Collections/presentation/plugin/multiplex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal-js-multiplex", 3 | "version": "1.0.0", 4 | "description": "reveal.js multiplex server", 5 | "homepage": "http://lab.hakim.se/reveal-js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "engines": { 10 | "node": "~4.1.1" 11 | }, 12 | "dependencies": { 13 | "express": "~4.13.3", 14 | "grunt-cli": "~0.1.13", 15 | "mustache": "~2.2.1", 16 | "socket.io": "~1.3.7" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/test/examples/assets/image1.png -------------------------------------------------------------------------------- /12-Collections/presentation/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/12-Collections/presentation/test/examples/assets/image2.png -------------------------------------------------------------------------------- /12-Collections/presentation/test/examples/barebones.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | reveal.js - Barebones 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 |
19 |

Barebones Presentation

20 |

This example contains the bare minimum includes and markup required to run a reveal.js presentation.

21 |
22 | 23 |
24 |

No Theme

25 |

There's no theme included, so it will fall back on browser defaults.

26 |
27 | 28 |
29 | 30 |
31 | 32 | 33 | 34 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/simple.md: -------------------------------------------------------------------------------- 1 | ## Slide 1.1 2 | 3 | ```js 4 | var a = 1; 5 | ``` 6 | 7 | 8 | ## Slide 1.2 9 | 10 | 11 | 12 | ## Slide 2 13 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/test-markdown-external.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | test( 'Horizontal separator', function() { 12 | strictEqual( document.querySelectorAll( '.reveal .slides>section' ).length, 2, 'found two slides' ); 13 | }); 14 | 15 | test( 'Language highlighter', function() { 16 | strictEqual( document.querySelectorAll( '.hljs-keyword' ).length, 1, 'got rendered highlight tag.' ); 17 | strictEqual( document.querySelector( '.hljs-keyword' ).innerHTML, 'var', 'the same keyword: var.' ); 18 | }); 19 | 20 | 21 | } ); 22 | 23 | Reveal.initialize(); 24 | 25 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/test-markdown-options.js: -------------------------------------------------------------------------------- 1 | Reveal.addEventListener( 'ready', function() { 2 | 3 | QUnit.module( 'Markdown' ); 4 | 5 | test( 'Options are set', function() { 6 | strictEqual( marked.defaults.smartypants, true ); 7 | }); 8 | 9 | test( 'Smart quotes are activated', function() { 10 | var text = document.querySelector( '.reveal .slides>section>p' ).textContent; 11 | 12 | strictEqual( /['"]/.test( text ), false ); 13 | strictEqual( /[“”‘’]/.test( text ), true ); 14 | }); 15 | 16 | } ); 17 | 18 | Reveal.initialize({ 19 | dependencies: [ 20 | { src: '../plugin/markdown/marked.js' }, 21 | { src: '../plugin/markdown/markdown.js' }, 22 | ], 23 | markdown: { 24 | smartypants: true 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/test-markdown.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize(); 15 | 16 | -------------------------------------------------------------------------------- /12-Collections/presentation/test/test-pdf.js: -------------------------------------------------------------------------------- 1 | 2 | Reveal.addEventListener( 'ready', function() { 3 | 4 | // Only one test for now, we're mainly ensuring that there 5 | // are no execution errors when running PDF mode 6 | 7 | test( 'Reveal.isReady', function() { 8 | strictEqual( Reveal.isReady(), true, 'returns true' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize({ pdf: true }); 15 | 16 | -------------------------------------------------------------------------------- /12-Collections/src/collections/QueueRunner.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | import java.util.Comparator; 4 | import java.util.List; 5 | import java.util.PriorityQueue; 6 | import java.util.Queue; 7 | 8 | class StringLengthComparator implements Comparator { 9 | @Override 10 | public int compare(String value1, String value2) { 11 | return Integer.compare(value2.length(), 12 | value1.length()); 13 | } 14 | 15 | } 16 | 17 | public class QueueRunner { 18 | 19 | public static void main(String[] args) { 20 | Queue queue = new PriorityQueue<>(10, 21 | new StringLengthComparator()); 22 | queue.addAll(List.of("Zebra", "Monkey", "Cat", "A", 23 | "B", "C", "D", "E", "F", "G")); 24 | queue.offer("Z"); 25 | while (queue.peek() != null) 26 | System.out.println(queue.poll()); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /12-Collections/src/collections/SetRunner.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | import java.util.HashSet; 4 | import java.util.LinkedHashSet; 5 | import java.util.List; 6 | import java.util.Set; 7 | import java.util.TreeSet; 8 | 9 | public class SetRunner { 10 | 11 | public static void main(String[] args) { 12 | List characters = List.of('A','Z','A', 'B', 'Z','F'); 13 | //unique - Set 14 | // Tree 15 | // Hash 16 | // LinkedHash 17 | 18 | Set treeSet = new TreeSet<>(characters); 19 | System.out.println("treeSet "+ treeSet); 20 | 21 | Set linkedHashSet = new LinkedHashSet<>(characters); 22 | System.out.println("linkedHashSet "+ linkedHashSet); 23 | 24 | Set hashSet = new HashSet<>(characters); 25 | System.out.println("hashSet "+ hashSet); 26 | 27 | 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /12-Collections/src/collections/Student.java: -------------------------------------------------------------------------------- 1 | package collections; 2 | 3 | public class Student implements Comparable{ 4 | private int id; 5 | private String name; 6 | 7 | public Student(int id, String name) { 8 | super(); 9 | this.id = id; 10 | this.name = name; 11 | } 12 | 13 | public int getId() { 14 | return id; 15 | } 16 | 17 | public void setId(int id) { 18 | this.id = id; 19 | } 20 | 21 | public String getName() { 22 | return name; 23 | } 24 | 25 | public void setName(String name) { 26 | this.name = name; 27 | } 28 | 29 | public String toString() { 30 | return id + " " + name; 31 | } 32 | 33 | @Override 34 | public int compareTo(Student that) { 35 | return Integer.compare(that.id, this.id); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /13-Generics/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /13-Generics/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | generics 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /13-Generics/src/com/in28minutes/generics/MyCustomList.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.generics; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class MyCustomList{ 6 | 7 | ArrayList list = new ArrayList<>(); 8 | 9 | public void addElement(T element) { 10 | list.add(element); 11 | } 12 | 13 | public void removeElement(T element) { 14 | list.remove(element); 15 | } 16 | 17 | public String toString() { 18 | return list.toString(); 19 | } 20 | 21 | public T get(int index) { 22 | return list.get(index); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /14-FunctionalProgramming/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /14-FunctionalProgramming/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | functional-programming 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /15-ThreadsAndConcurrency/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /15-ThreadsAndConcurrency/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Multithreading 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /15-ThreadsAndConcurrency/src/MultipleAnyCallableRunner.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | import java.util.concurrent.ExecutionException; 3 | import java.util.concurrent.ExecutorService; 4 | import java.util.concurrent.Executors; 5 | import java.util.concurrent.Future; 6 | 7 | public class MultipleAnyCallableRunner { 8 | 9 | public static void main(String[] args) throws InterruptedException, ExecutionException { 10 | ExecutorService executorService = Executors.newFixedThreadPool(3); 11 | 12 | List tasks = List.of( 13 | new CallableTask("in28Minutes"), 14 | new CallableTask("Ranga"), 15 | new CallableTask("Adam")); 16 | 17 | String result = executorService.invokeAny(tasks); 18 | 19 | System.out.println(result); 20 | 21 | executorService.shutdown(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /15-ThreadsAndConcurrency/src/MultipleCallableRunner.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | import java.util.concurrent.ExecutionException; 3 | import java.util.concurrent.ExecutorService; 4 | import java.util.concurrent.Executors; 5 | import java.util.concurrent.Future; 6 | 7 | public class MultipleCallableRunner { 8 | 9 | public static void main(String[] args) throws InterruptedException, ExecutionException { 10 | ExecutorService executorService = Executors.newFixedThreadPool(3); 11 | 12 | List tasks = List.of(new CallableTask("in28Minutes"), 13 | new CallableTask("Ranga"), new CallableTask("Adam")); 14 | 15 | List> results = executorService.invokeAll(tasks); 16 | 17 | for(Future result:results) { 18 | System.out.println(result.get()); 19 | } 20 | 21 | executorService.shutdown(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /16-ExceptionHandling/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /16-ExceptionHandling/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | exception-handling 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.iml 3 | *.iws 4 | *.eml 5 | out/ 6 | .DS_Store 7 | .svn 8 | log/*.log 9 | tmp/** 10 | node_modules/ 11 | .sass-cache 12 | css/reveal.min.css 13 | js/reveal.min.js -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/css/reveal-override.css: -------------------------------------------------------------------------------- 1 | body:after { 2 | content: url(../images/logo.png); 3 | position: fixed; 4 | top: 1em; 5 | right: 1em; 6 | } -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/In28MinutesLogo-300X50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/In28MinutesLogo-300X50.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/Java-Collections-Arrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/Java-Collections-Arrays.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/Java-Collections-Hashing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/Java-Collections-Hashing.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/Java-Collections-LinkedList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/Java-Collections-LinkedList.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/Java-Collections-Tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/Java-Collections-Tree.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/SpringInterviewGuide_SOAPWebServices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/SpringInterviewGuide_SOAPWebServices.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/images/logo.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('league-gothic.eot'); 4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('league-gothic.woff') format('woff'), 6 | url('league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/lib/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | document.createElement('header'); 2 | document.createElement('nav'); 3 | document.createElement('section'); 4 | document.createElement('article'); 5 | document.createElement('aside'); 6 | document.createElement('footer'); 7 | document.createElement('hgroup'); -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/plugin/markdown/example.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | ## External 1.1 6 | 7 | Content 1.1 8 | 9 | Note: This will only appear in the speaker notes window. 10 | 11 | 12 | ## External 1.2 13 | 14 | Content 1.2 15 | 16 | 17 | 18 | ## External 2 19 | 20 | Content 2.1 21 | 22 | 23 | 24 | ## External 3.1 25 | 26 | Content 3.1 27 | 28 | 29 | ## External 3.2 30 | 31 | Content 3.2 32 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/plugin/multiplex/client.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var multiplex = Reveal.getConfig().multiplex; 3 | var socketId = multiplex.id; 4 | var socket = io.connect(multiplex.url); 5 | 6 | socket.on(multiplex.id, function(data) { 7 | // ignore data from sockets that aren't ours 8 | if (data.socketId !== socketId) { return; } 9 | if( window.location.host === 'localhost:1947' ) return; 10 | 11 | Reveal.setState(data.state); 12 | }); 13 | }()); 14 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/plugin/multiplex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal-js-multiplex", 3 | "version": "1.0.0", 4 | "description": "reveal.js multiplex server", 5 | "homepage": "http://lab.hakim.se/reveal-js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "engines": { 10 | "node": "~4.1.1" 11 | }, 12 | "dependencies": { 13 | "express": "~4.13.3", 14 | "grunt-cli": "~0.1.13", 15 | "mustache": "~2.2.1", 16 | "socket.io": "~1.3.7" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/test/examples/assets/image1.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/16-ExceptionHandling/presentation/test/examples/assets/image2.png -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/simple.md: -------------------------------------------------------------------------------- 1 | ## Slide 1.1 2 | 3 | ```js 4 | var a = 1; 5 | ``` 6 | 7 | 8 | ## Slide 1.2 9 | 10 | 11 | 12 | ## Slide 2 13 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/test-markdown-external.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | test( 'Horizontal separator', function() { 12 | strictEqual( document.querySelectorAll( '.reveal .slides>section' ).length, 2, 'found two slides' ); 13 | }); 14 | 15 | test( 'Language highlighter', function() { 16 | strictEqual( document.querySelectorAll( '.hljs-keyword' ).length, 1, 'got rendered highlight tag.' ); 17 | strictEqual( document.querySelector( '.hljs-keyword' ).innerHTML, 'var', 'the same keyword: var.' ); 18 | }); 19 | 20 | 21 | } ); 22 | 23 | Reveal.initialize(); 24 | 25 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/test-markdown-options.js: -------------------------------------------------------------------------------- 1 | Reveal.addEventListener( 'ready', function() { 2 | 3 | QUnit.module( 'Markdown' ); 4 | 5 | test( 'Options are set', function() { 6 | strictEqual( marked.defaults.smartypants, true ); 7 | }); 8 | 9 | test( 'Smart quotes are activated', function() { 10 | var text = document.querySelector( '.reveal .slides>section>p' ).textContent; 11 | 12 | strictEqual( /['"]/.test( text ), false ); 13 | strictEqual( /[“”‘’]/.test( text ), true ); 14 | }); 15 | 16 | } ); 17 | 18 | Reveal.initialize({ 19 | dependencies: [ 20 | { src: '../plugin/markdown/marked.js' }, 21 | { src: '../plugin/markdown/markdown.js' }, 22 | ], 23 | markdown: { 24 | smartypants: true 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/test-markdown.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize(); 15 | 16 | -------------------------------------------------------------------------------- /16-ExceptionHandling/presentation/test/test-pdf.js: -------------------------------------------------------------------------------- 1 | 2 | Reveal.addEventListener( 'ready', function() { 3 | 4 | // Only one test for now, we're mainly ensuring that there 5 | // are no execution errors when running PDF mode 6 | 7 | test( 'Reveal.isReady', function() { 8 | strictEqual( Reveal.isReady(), true, 'returns true' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize({ pdf: true }); 15 | 16 | -------------------------------------------------------------------------------- /16-ExceptionHandling/src/com/in28minutes/exceptionhandling/CheckedExceptionRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.exceptionhandling; 2 | 3 | public class CheckedExceptionRunner { 4 | 5 | public static void main(String[] args) { 6 | /* try { 7 | someOtherMethod(); 8 | Thread.sleep(2000); 9 | } catch (InterruptedException e) { 10 | e.printStackTrace(); 11 | }*/ 12 | //someOtherMethod1(); 13 | someOtherMethod2(); 14 | 15 | } 16 | 17 | private static void someOtherMethod2() throws RuntimeException{ 18 | 19 | } 20 | 21 | private static void someOtherMethod() throws InterruptedException{ 22 | Thread.sleep(2000); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /16-ExceptionHandling/src/com/in28minutes/exceptionhandling/ExceptionHandlingRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.exceptionhandling; 2 | 3 | public class ExceptionHandlingRunner { 4 | 5 | public static void main(String[] args) { 6 | method1(); 7 | System.out.println("Main Ended"); 8 | } 9 | 10 | private static void method1() { 11 | method2(); 12 | System.out.println("Method1 Ended"); 13 | } 14 | 15 | private static void method2() { 16 | String str = null; 17 | str.length(); 18 | System.out.println("Method2 Ended"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /16-ExceptionHandling/src/com/in28minutes/exceptionhandling/FinallyRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.exceptionhandling; 2 | 3 | import java.util.Scanner; 4 | 5 | public class FinallyRunner { 6 | 7 | public static void main(String[] args) { 8 | 9 | Scanner scanner = null; 10 | 11 | try { 12 | scanner = new Scanner(System.in); 13 | int[] numbers = { 12, 3, 4, 5 }; 14 | 15 | int number = numbers[21]; 16 | 17 | } catch (Exception e) { 18 | e.printStackTrace(); 19 | } finally { 20 | System.out.println("Before Scanner Close"); 21 | if(scanner!=null) { 22 | scanner.close(); 23 | } 24 | } 25 | 26 | System.out.println("Just before closing out main"); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /16-ExceptionHandling/src/com/in28minutes/exceptionhandling/TryWithResourcesRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.exceptionhandling; 2 | 3 | import java.util.Scanner; 4 | 5 | public class TryWithResourcesRunner { 6 | 7 | public static void main(String[] args) { 8 | try (Scanner scanner = new Scanner(System.in)) { 9 | int[] numbers = { 12, 3, 4, 5 }; 10 | int number = numbers[21]; 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /17-Files/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /17-Files/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | files 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /17-Files/resources/data.txt: -------------------------------------------------------------------------------- 1 | 123,122 2 | jljlfsadf 3 | Apple 4 | Bat 5 | Cat 6 | 7 | -------------------------------------------------------------------------------- /17-Files/resources/file-write.txt: -------------------------------------------------------------------------------- 1 | Apple 2 | Boy 3 | Cat 4 | Dog 5 | Elephant 6 | 7 | -------------------------------------------------------------------------------- /17-Files/src/files/FileReadRunner.java: -------------------------------------------------------------------------------- 1 | package files; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Files; 5 | import java.nio.file.Path; 6 | import java.nio.file.Paths; 7 | import java.util.List; 8 | 9 | public class FileReadRunner { 10 | 11 | public static void main(String[] args) throws IOException { 12 | Path pathFileToRead = Paths.get("./resources/data.txt"); 13 | 14 | //List lines = Files.readAllLines(pathFileToRead); 15 | //System.out.println(lines); 16 | 17 | Files.lines(pathFileToRead) 18 | .map(String::toLowerCase) 19 | .filter(str -> str.contains("a")) 20 | .forEach(System.out::println); 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /17-Files/src/files/FileWriteRunner.java: -------------------------------------------------------------------------------- 1 | package files; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Files; 5 | import java.nio.file.Path; 6 | import java.nio.file.Paths; 7 | import java.util.List; 8 | 9 | public class FileWriteRunner { 10 | 11 | public static void main(String[] args) throws IOException { 12 | Path pathFileToWrite = Paths.get("./resources/file-write.txt"); 13 | 14 | List list = 15 | List.of("Apple", "Boy", "Cat", "Dog", "Elephant"); 16 | 17 | Files.write(pathFileToWrite, list); 18 | 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | concurrency 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/BiCounter.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | public class BiCounter { 4 | private int i = 0; 5 | private int j = 0; 6 | 7 | synchronized public void incrementI() { 8 | i++; 9 | //get i 10 | //increment 11 | //set i 12 | } 13 | 14 | public int getI() { 15 | return i; 16 | } 17 | 18 | synchronized public void incrementJ() { 19 | j++; 20 | //get j 21 | //increment 22 | //set j 23 | } 24 | 25 | public int getJ() { 26 | return j; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/BiCounterWithAtomicInteger.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | import java.util.concurrent.atomic.AtomicInteger; 4 | import java.util.concurrent.locks.Lock; 5 | import java.util.concurrent.locks.ReentrantLock; 6 | 7 | public class BiCounterWithAtomicInteger { 8 | private AtomicInteger i = new AtomicInteger(); 9 | private AtomicInteger j = new AtomicInteger(); 10 | 11 | public void incrementI() { 12 | i.incrementAndGet(); 13 | } 14 | 15 | public int getI() { 16 | return i.get(); 17 | } 18 | 19 | public void incrementJ() { 20 | j.incrementAndGet(); 21 | } 22 | 23 | public int getJ() { 24 | return j.get(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/BiCounterWithLock.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | import java.util.concurrent.locks.Lock; 4 | import java.util.concurrent.locks.ReentrantLock; 5 | 6 | public class BiCounterWithLock { 7 | private int i = 0; 8 | private int j = 0; 9 | 10 | Lock lockForI = new ReentrantLock(); 11 | Lock lockForJ = new ReentrantLock(); 12 | 13 | public void incrementI() { 14 | lockForI.lock();//Get Lock For I 15 | i++; 16 | lockForI.unlock(); 17 | //Release Lock For I 18 | } 19 | 20 | public int getI() { 21 | return i; 22 | } 23 | 24 | public void incrementJ() { 25 | lockForJ.lock();//Get Lock For J 26 | j++; 27 | lockForJ.unlock();//Release Lock For J 28 | } 29 | 30 | public int getJ() { 31 | return j; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/ConcurrencyRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | public class ConcurrencyRunner { 4 | 5 | public static void main(String[] args) { 6 | Counter counter = new Counter(); 7 | counter.increment(); 8 | counter.increment(); 9 | counter.increment(); 10 | System.out.println(counter.getI()); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/CopyOnWriteArrayListRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | import java.util.List; 4 | import java.util.concurrent.CopyOnWriteArrayList; 5 | 6 | public class CopyOnWriteArrayListRunner { 7 | 8 | //add - copy 9 | //get 10 | 11 | public static void main(String[] args) { 12 | List list = new CopyOnWriteArrayList<>(); 13 | 14 | //Threads - 3 15 | list.add("Ant"); 16 | list.add("Bat"); 17 | list.add("Cat"); 18 | 19 | //Threads - 10000 20 | for(String element:list) { 21 | System.out.println(element); 22 | } 23 | 24 | // TODO Auto-generated method stub 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /18-ConcurrencyLocksAtomicityAndCollections/src/com/in28minutes/concurrency/Counter.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.concurrency; 2 | 3 | public class Counter { 4 | private int i = 0; 5 | 6 | synchronized public void increment() { 7 | i++; 8 | //get i 9 | //increment 10 | //set i 11 | } 12 | 13 | public int getI() { 14 | return i; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /21-modularization-1-combined/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /21-modularization-1-combined/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | modularization-1-combined 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /21-modularization-1-combined/src/com/in28minutes/consumer/DirectConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.algorithm.BubbleSort; 7 | 8 | public class DirectConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(DirectConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | BubbleSort util = new BubbleSort(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /21-modularization-1-combined/src/com/in28minutes/consumer/MySortingUtilConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.util.MySortingUtil; 7 | 8 | public class MySortingUtilConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(MySortingUtilConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | MySortingUtil util = new MySortingUtil(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /21-modularization-1-combined/src/com/in28minutes/sorting/algorithm/BubbleSort.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.algorithm; 2 | 3 | import java.util.List; 4 | 5 | public class BubbleSort { 6 | 7 | public List sort(List names) { 8 | return names; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /21-modularization-1-combined/src/com/in28minutes/sorting/util/MySortingUtil.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.util; 2 | 3 | import java.util.List; 4 | 5 | import com.in28minutes.sorting.algorithm.BubbleSort; 6 | 7 | public class MySortingUtil { 8 | 9 | public List sort(List names){ 10 | BubbleSort bubbleSort = new BubbleSort(); 11 | return bubbleSort.sort(names); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /22-modularization-2-service-jar/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /22-modularization-2-service-jar/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | modularization-2-service-jar 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /22-modularization-2-service-jar/src/com/in28minutes/sorting/algorithm/BubbleSort.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.algorithm; 2 | 3 | import java.util.List; 4 | 5 | public class BubbleSort { 6 | 7 | public List sort(List names) { 8 | return names; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /22-modularization-2-service-jar/src/com/in28minutes/sorting/util/MySortingUtil.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.util; 2 | 3 | import java.util.List; 4 | 5 | import com.in28minutes.sorting.algorithm.BubbleSort; 6 | 7 | public class MySortingUtil { 8 | 9 | public List sort(List names){ 10 | BubbleSort bubbleSort = new BubbleSort(); 11 | return bubbleSort.sort(names); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /23-modularization-3-consumer-jar/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /23-modularization-3-consumer-jar/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | modularization-3-consumer-jar 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /23-modularization-3-consumer-jar/src/com/in28minutes/consumer/DirectConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.algorithm.BubbleSort; 7 | 8 | public class DirectConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(DirectConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | BubbleSort util = new BubbleSort(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /23-modularization-3-consumer-jar/src/com/in28minutes/consumer/MySortingUtilConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.util.MySortingUtil; 7 | 8 | public class MySortingUtilConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(MySortingUtilConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | MySortingUtil util = new MySortingUtil(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /24-modularization-4-service-module/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /24-modularization-4-service-module/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | modularization-4-service-module 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /24-modularization-4-service-module/src/com/in28minutes/sorting/algorithm/BubbleSort.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.algorithm; 2 | 3 | import java.util.List; 4 | 5 | public class BubbleSort { 6 | 7 | public List sort(List names) { 8 | return names; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /24-modularization-4-service-module/src/com/in28minutes/sorting/util/MySortingUtil.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.sorting.util; 2 | 3 | import java.util.List; 4 | 5 | import com.in28minutes.sorting.algorithm.BubbleSort; 6 | 7 | public class MySortingUtil { 8 | 9 | public List sort(List names){ 10 | BubbleSort bubbleSort = new BubbleSort(); 11 | return bubbleSort.sort(names); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /24-modularization-4-service-module/src/module-info.java: -------------------------------------------------------------------------------- 1 | module com.in28minutes.service.provider { 2 | exports com.in28minutes.sorting.util; 3 | exports com.in28minutes.sorting.algorithm; 4 | } -------------------------------------------------------------------------------- /25-modularization-5-consumer-module/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /25-modularization-5-consumer-module/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | modularization-5-consumer-module 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /25-modularization-5-consumer-module/src/com/in28minutes/consumer/DirectConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.algorithm.BubbleSort; 7 | 8 | public class DirectConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(DirectConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | BubbleSort util = new BubbleSort(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /25-modularization-5-consumer-module/src/com/in28minutes/consumer/MySortingUtilConsumer.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.consumer; 2 | 3 | import java.util.List; 4 | import java.util.logging.Logger; 5 | 6 | import com.in28minutes.sorting.util.MySortingUtil; 7 | 8 | public class MySortingUtilConsumer { 9 | 10 | private static Logger logger = 11 | Logger.getLogger(MySortingUtilConsumer.class.getName()); 12 | 13 | public static void main(String[] args) { 14 | MySortingUtil util = new MySortingUtil(); 15 | List sorted 16 | = util.sort(List.of("Ranga", "Ravi", "Sathish", "Adam","Eve")); 17 | logger.info(sorted.toString()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /25-modularization-5-consumer-module/src/module-info.java: -------------------------------------------------------------------------------- 1 | module com.in28minutes.consumer { 2 | requires com.in28minutes.service.provider; 3 | requires transitive java.logging; 4 | } -------------------------------------------------------------------------------- /31-java-new-api-features/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /31-java-new-api-features/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | java-new-api-features 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /31-java-new-api-features/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.ui.text.custom_code_templates= 3 | -------------------------------------------------------------------------------- /31-java-new-api-features/resources/sample-new.txt: -------------------------------------------------------------------------------- 1 | Sample 2 | Lines 2 3 | Lines 3 -------------------------------------------------------------------------------- /31-java-new-api-features/resources/sample.txt: -------------------------------------------------------------------------------- 1 | Sample 2 | Line 2 3 | Line 3 -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/a/CopyOfApiRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.a; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class CopyOfApiRunner { 7 | 8 | public static void main(String[] args) { 9 | List names = new ArrayList(); 10 | names.add("Ranga"); 11 | names.add("Ravi"); 12 | names.add("John"); 13 | 14 | List copyOfNames = List.copyOf(names); 15 | 16 | doNotChange(copyOfNames); 17 | System.out.println(copyOfNames); 18 | 19 | } 20 | 21 | private static void doNotChange(List names) { 22 | names.add("ShouldNotbeAllowed"); 23 | 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/b/FileReadWriteRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.b; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Files; 5 | import java.nio.file.Path; 6 | import java.nio.file.Paths; 7 | 8 | public class FileReadWriteRunner { 9 | 10 | public static void main(String[] args) throws IOException { 11 | Path path = Paths.get("./resources/sample.txt"); 12 | String fileContent = Files.readString(path); 13 | System.out.println(fileContent); 14 | String newFileContent = fileContent.replace("Line", "Lines"); 15 | 16 | Path newFilePath = Paths.get("./resources/sample-new.txt"); 17 | Files.writeString(newFilePath, newFileContent); 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/c/PredicateNotRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.c; 2 | 3 | import java.util.List; 4 | import java.util.function.Predicate; 5 | 6 | public class PredicateNotRunner { 7 | 8 | public static boolean isEven(Integer number) { 9 | return number%2==0; 10 | } 11 | 12 | public static void main(String[] args) { 13 | List numbers = List.of(3,4,5,67,89,88); 14 | // Predicate evenNumberPredicate = number -> number%2==0; 15 | // numbers.stream().filter(evenNumberPredicate.negate()).forEach(System.out::println); 16 | numbers.stream().filter(Predicate.not(PredicateNotRunner::isEven)) 17 | .forEach(System.out::println); 18 | 19 | 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/e/TypeInferencesRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.e; 2 | 3 | import java.util.List; 4 | import java.util.stream.Stream; 5 | 6 | public class TypeInferencesRunner { 7 | 8 | public static void main(String[] args) { 9 | var names1 = List.of("Ranga", "Ravi"); 10 | var names2 = List.of("John", "Adam"); 11 | var var = ""; 12 | 13 | final var names = List.of(names1,names2); 14 | 15 | names.stream().forEach(System.out::println); 16 | 17 | for(var name:names1) 18 | System.out.println(name); 19 | 20 | var filter = List.of("Ranga", "Ravi").stream().filter(s -> s.length()<5); 21 | filter.forEach(System.out::println); 22 | 23 | 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/f/SwitchEnumsRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.f; 2 | 3 | import java.time.DayOfWeek; 4 | 5 | public class SwitchEnumsRunner { 6 | 7 | public static void main(String[] args) { 8 | 9 | DayOfWeek dayOfWeek = DayOfWeek.SUNDAY; 10 | 11 | String str = switch(dayOfWeek) { 12 | case MONDAY -> "First Day Of the work week!"; 13 | case TUESDAY, WEDNESDAY, THURSDAY -> "Middle Of the Work Week"; 14 | case FRIDAY -> "Last Day of the work week!"; 15 | case SATURDAY, SUNDAY -> "Weekend"; 16 | }; 17 | 18 | System.out.println(str); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/g/TextBlocksRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.g; 2 | 3 | public class TextBlocksRunner { 4 | 5 | public static void main(String[] args) { 6 | String str1 = """ 7 | fsadfjklasjf"""; 8 | String str = """ 9 | "Line 1" 10 | "Line 2" 11 | Line 3 12 | Line 4 13 | Line 5 14 | Line 6"""; 15 | 16 | String textBlock = """ 17 | Line 1: %s 18 | Line 2: %s 19 | Line 3 20 | Line 4 21 | """.formatted("Some Value", "Some Other Value"); 22 | 23 | System.out.print(textBlock); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/i/SealedClassesRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.i; 2 | 3 | public class SealedClassesRunner { 4 | 5 | //sealed class Vehicle permits Car, Truck, Bike {} 6 | sealed class Vehicle permits Car, Truck, Bike {} 7 | 8 | //final, sealed, or non-sealed 9 | final class Car extends Vehicle {} 10 | 11 | //class Dummy extends Car{} 12 | 13 | //final, sealed, or non-sealed 14 | non-sealed class Truck extends Vehicle {} 15 | 16 | class Dummy1 extends Truck{} 17 | class Dummy2 extends Truck{} 18 | 19 | //final, sealed, or non-sealed 20 | sealed class Bike extends Vehicle permits SuperBike{} 21 | 22 | final class SuperBike extends Bike{} 23 | 24 | //class Dummy extends Vehicle {} 25 | 26 | 27 | public static void main(String[] args) { 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/i/SealedInterfacesRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.i; 2 | 3 | public class SealedInterfacesRunner { 4 | 5 | sealed interface Flyable permits Bird, Aeroplane, Helicopter {} 6 | 7 | final class Bird implements Flyable {} 8 | 9 | sealed class Aeroplane implements Flyable permits Boeing{} 10 | 11 | final class Boeing extends Aeroplane{} 12 | 13 | non-sealed class Helicopter implements Flyable {} 14 | 15 | public static void main(String[] args) { 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/j/ExecutorServiceVirtualThreadsRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.j; 2 | 3 | import java.util.concurrent.ExecutorService; 4 | import java.util.concurrent.Executors; 5 | 6 | public class ExecutorServiceVirtualThreadsRunner { 7 | 8 | public static void main(String[] args) { 9 | 10 | ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); 11 | 12 | for (int i = 0; i < 1_000_000; i++) { 13 | System.out.println(i); 14 | //Thread.startVirtualThread(new SleepingThread()); 15 | executor.execute(new SleepingThread()); 16 | } 17 | 18 | executor.shutdown(); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/j/PlatformThreadsRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.j; 2 | 3 | public class PlatformThreadsRunner { 4 | 5 | public static void main(String[] args) { 6 | 7 | for (int i = 0; i < 1_000_000; i++) { 8 | System.out.println(i); 9 | new Thread(new SleepingThread()).start(); 10 | } 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/j/SleepingThread.java: -------------------------------------------------------------------------------- 1 | 2 | package com.in28minutes.api.j; 3 | 4 | import java.util.concurrent.TimeUnit; 5 | 6 | public class SleepingThread implements Runnable { 7 | 8 | @Override 9 | public void run() { 10 | try { 11 | TimeUnit.SECONDS.sleep(1); 12 | } catch (InterruptedException e) { 13 | // TODO Auto-generated catch block 14 | e.printStackTrace(); 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/j/VirtualThreadsRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.j; 2 | 3 | public class VirtualThreadsRunner { 4 | 5 | public static void main(String[] args) { 6 | 7 | for (int i = 0; i < 1_000_000; i++) { 8 | System.out.println(i); 9 | //new Thread(new SleepingThread()).start(); 10 | Thread.startVirtualThread(new SleepingThread()); 11 | //Thread.ofVirtual().start(new SleepingThread()); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /31-java-new-api-features/src/com/in28minutes/api/k/SequencedSetRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.api.k; 2 | 3 | import java.util.LinkedHashSet; 4 | import java.util.List; 5 | 6 | public class SequencedSetRunner { 7 | 8 | public static void main(String[] args) { 9 | var courses = List.of("Spring", "Spring Boot", "AWS", "Azure"); 10 | var courseDetailsSet = new LinkedHashSet<>(courses); 11 | 12 | courseDetailsSet.add("AWS"); 13 | 14 | 15 | System.out.println("Adding new elements"); 16 | courseDetailsSet.addFirst("Spring Security"); 17 | courseDetailsSet.addLast("Spring AI"); 18 | System.out.println("Order:: "+courseDetailsSet); 19 | System.out.println("Reversed:: "+courseDetailsSet.reversed()); 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /51-learn-spring-framework/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/.DS_Store -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step03.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step04.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step04.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step05.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step06.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step06.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step08.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step09.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step10.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step10.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step14.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step14.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/01-Step15.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/01-Step15.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/02-Step01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/02-Step01.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/02-Step02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/02-Step02.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/02-Step04.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/02-Step04.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/02-Step08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/02-Step08.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/03-Step03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/03-Step03.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/03-Step07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/03-Step07.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/03-Step10.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/03-Step10.zip -------------------------------------------------------------------------------- /51-learn-spring-framework/HELP.md: -------------------------------------------------------------------------------- 1 | # Read Me First 2 | The following was discovered as part of building this project: 3 | 4 | * The original package name 'com.in28minutes.learn-spring-framework' is invalid and this project uses 'com.in28minutes.learnspringframework' instead. 5 | 6 | # Getting Started 7 | 8 | ### Reference Documentation 9 | For further reference, please consider the following sections: 10 | 11 | * [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) 12 | * [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.4.4/maven-plugin/reference/html/) 13 | * [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.4.4/maven-plugin/reference/html/#build-image) 14 | 15 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/App01GamingBasicJava.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework; 2 | 3 | import com.in28minutes.learnspringframework.game.GameRunner; 4 | import com.in28minutes.learnspringframework.game.PacmanGame; 5 | 6 | public class App01GamingBasicJava { 7 | 8 | public static void main(String[] args) { 9 | 10 | //var game = new MarioGame(); 11 | //var game = new SuperContraGame(); 12 | 13 | var game = new PacmanGame(); //1: Object Creation 14 | 15 | var gameRunner = new GameRunner(game); 16 | //2: Object Creation + Wiring of Dependencies 17 | // Game is a Dependency of GameRunner 18 | 19 | gameRunner.run(); 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/App03GamingSpringBeans.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework; 2 | 3 | import org.springframework.context.annotation.AnnotationConfigApplicationContext; 4 | 5 | import com.in28minutes.learnspringframework.game.GameRunner; 6 | import com.in28minutes.learnspringframework.game.GamingConsole; 7 | 8 | public class App03GamingSpringBeans { 9 | 10 | public static void main(String[] args) { 11 | 12 | try (var context = 13 | new AnnotationConfigApplicationContext 14 | (GamingConfiguration.class)) { 15 | 16 | context.getBean(GamingConsole.class).up(); 17 | 18 | context.getBean(GameRunner.class).run(); 19 | 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/GamingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | import com.in28minutes.learnspringframework.game.GameRunner; 7 | import com.in28minutes.learnspringframework.game.GamingConsole; 8 | import com.in28minutes.learnspringframework.game.PacmanGame; 9 | 10 | @Configuration 11 | public class GamingConfiguration { 12 | 13 | @Bean 14 | public GamingConsole game() { 15 | var game = new PacmanGame(); 16 | return game; 17 | } 18 | 19 | @Bean 20 | public GameRunner gameRunner(GamingConsole game) { 21 | var gameRunner = new GameRunner(game); 22 | return gameRunner; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/game/GameRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | //PacmanGame 4 | public class GameRunner { 5 | 6 | private GamingConsole game; 7 | 8 | public GameRunner(GamingConsole game) { 9 | this.game = game; 10 | } 11 | 12 | public void run() { 13 | 14 | System.out.println("Running game: " + game); 15 | game.up(); 16 | game.down(); 17 | game.left(); 18 | game.right(); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/game/GamingConsole.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | public interface GamingConsole { 4 | void up(); 5 | void down(); 6 | void left(); 7 | void right(); 8 | } 9 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/game/MarioGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | public class MarioGame implements GamingConsole{ 4 | 5 | public void up() { 6 | System.out.println("Jump"); 7 | } 8 | 9 | public void down() { 10 | System.out.println("Go into a hole"); 11 | } 12 | 13 | public void left() { 14 | System.out.println("Go back"); 15 | } 16 | 17 | public void right() { 18 | System.out.println("Accelerate"); 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/game/PacmanGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | public class PacmanGame implements GamingConsole{ 4 | 5 | public void up() { 6 | System.out.println("up"); 7 | } 8 | 9 | public void down() { 10 | System.out.println("down"); 11 | } 12 | 13 | public void left() { 14 | System.out.println("left"); 15 | } 16 | 17 | public void right() { 18 | System.out.println("right"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/game/SuperContraGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | public class SuperContraGame implements GamingConsole{ 4 | 5 | public void up() { 6 | System.out.println("up"); 7 | } 8 | 9 | public void down() { 10 | System.out.println("Sit down"); 11 | } 12 | 13 | public void left() { 14 | System.out.println("Go back"); 15 | } 16 | 17 | public void right() { 18 | System.out.println("Shoot a bullet"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/java/com/in28minutes/learnspringframework/test/ExploringVar.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.test; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class ExploringVar { 6 | 7 | //ERROR: var Something = new ArrayList(); 8 | 9 | public static void main(String[] args) { 10 | 11 | var myList = new ArrayList(); 12 | 13 | //var var = new ArrayList(); 14 | 15 | myList.add("someString"); 16 | 17 | for(var element:myList) { 18 | System.out.println(element); 19 | } 20 | 21 | System.out.println(myList.getClass()); 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-01/src/test/java/com/in28minutes/learnspringframework/LearnSpringFrameworkApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class LearnSpringFrameworkApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/examples/a0/SimpleSpringContextLauncherApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.examples.a0; 2 | 3 | import java.util.Arrays; 4 | 5 | import org.springframework.context.annotation.AnnotationConfigApplicationContext; 6 | import org.springframework.context.annotation.ComponentScan; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | @Configuration 10 | @ComponentScan 11 | public class SimpleSpringContextLauncherApplication { 12 | 13 | public static void main(String[] args) { 14 | 15 | try (var context = 16 | new AnnotationConfigApplicationContext 17 | (SimpleSpringContextLauncherApplication.class)) { 18 | 19 | Arrays.stream(context.getBeanDefinitionNames()) 20 | .forEach(System.out::println); 21 | 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/examples/c1/BusinessCalculationService.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.examples.c1; 2 | 3 | import java.util.Arrays; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | //@Component 8 | @Service 9 | public class BusinessCalculationService { 10 | 11 | private DataService dataService; 12 | 13 | public BusinessCalculationService(DataService dataService) { 14 | super(); 15 | this.dataService = dataService; 16 | } 17 | 18 | public int findMax() { 19 | return Arrays.stream(dataService.retrieveData()).max().orElse(0); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/examples/c1/DataService.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.examples.c1; 2 | 3 | public interface DataService { 4 | int[] retrieveData(); 5 | } 6 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/examples/c1/MongoDbDataService.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.examples.c1; 2 | 3 | import org.springframework.context.annotation.Primary; 4 | import org.springframework.stereotype.Repository; 5 | 6 | //@Component 7 | @Repository 8 | @Primary 9 | public class MongoDbDataService implements DataService { 10 | 11 | @Override 12 | public int[] retrieveData() { 13 | return new int[] { 11, 22, 33, 44, 55 }; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/examples/c1/MySqlDataService.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.examples.c1; 2 | 3 | import org.springframework.stereotype.Repository; 4 | 5 | //@Component 6 | @Repository 7 | public class MySqlDataService implements DataService { 8 | 9 | @Override 10 | public int[] retrieveData() { 11 | return new int[] { 1, 2, 3, 4, 5 }; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/GameRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | import org.springframework.stereotype.Component; 5 | 6 | @Component 7 | public class GameRunner { 8 | 9 | private GamingConsole game; 10 | 11 | public GameRunner(@Qualifier("SuperContraGameQualifier") GamingConsole game) { 12 | this.game = game; 13 | } 14 | 15 | public void run() { 16 | 17 | System.out.println("Running game: " + game); 18 | game.up(); 19 | game.down(); 20 | game.left(); 21 | game.right(); 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/GamingAppLauncherApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | import org.springframework.context.annotation.AnnotationConfigApplicationContext; 4 | import org.springframework.context.annotation.ComponentScan; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | @ComponentScan("com.in28minutes.learnspringframework.game") 9 | public class GamingAppLauncherApplication { 10 | 11 | public static void main(String[] args) { 12 | 13 | try (var context = 14 | new AnnotationConfigApplicationContext 15 | (GamingAppLauncherApplication.class)) { 16 | 17 | context.getBean(GamingConsole.class).up(); 18 | 19 | context.getBean(GameRunner.class).run(); 20 | 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/GamingConsole.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | public interface GamingConsole { 4 | void up(); 5 | void down(); 6 | void left(); 7 | void right(); 8 | } 9 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/MarioGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | import org.springframework.context.annotation.Primary; 4 | import org.springframework.stereotype.Component; 5 | 6 | @Component 7 | @Primary 8 | public class MarioGame implements GamingConsole{ 9 | 10 | public void up() { 11 | System.out.println("Jump"); 12 | } 13 | 14 | public void down() { 15 | System.out.println("Go into a hole"); 16 | } 17 | 18 | public void left() { 19 | System.out.println("Go back"); 20 | } 21 | 22 | public void right() { 23 | System.out.println("Accelerate"); 24 | } 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/PacmanGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | import org.springframework.stereotype.Component; 4 | 5 | @Component 6 | public class PacmanGame implements GamingConsole{ 7 | 8 | public void up() { 9 | System.out.println("up"); 10 | } 11 | 12 | public void down() { 13 | System.out.println("down"); 14 | } 15 | 16 | public void left() { 17 | System.out.println("left"); 18 | } 19 | 20 | public void right() { 21 | System.out.println("right"); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/java/com/in28minutes/learnspringframework/game/SuperContraGame.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework.game; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | import org.springframework.stereotype.Component; 5 | 6 | @Component 7 | @Qualifier("SuperContraGameQualifier") 8 | public class SuperContraGame implements GamingConsole{ 9 | 10 | public void up() { 11 | System.out.println("up"); 12 | } 13 | 14 | public void down() { 15 | System.out.println("Sit down"); 16 | } 17 | 18 | public void left() { 19 | System.out.println("Go back"); 20 | } 21 | 22 | public void right() { 23 | System.out.println("Shoot a bullet"); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/main/resources/contextConfiguration.out.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/51-learn-spring-framework/learn-spring-framework-02/src/main/resources/contextConfiguration.out.xml -------------------------------------------------------------------------------- /51-learn-spring-framework/learn-spring-framework-02/src/test/java/com/in28minutes/learnspringframework/LearnSpringFrameworkApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringframework; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class LearnSpringFrameworkApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /52-learn-spring-boot/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /52-learn-spring-boot/src/main/java/com/in28minutes/learnspringboot/LearnSpringBootApplication.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringboot; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | //@SpringBootConfiguration 8 | //@EnableAutoConfiguration 9 | //@ComponentScan 10 | public class LearnSpringBootApplication { 11 | 12 | public static void main(String[] args) { 13 | SpringApplication.run(LearnSpringBootApplication.class, args); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /52-learn-spring-boot/src/main/java/com/in28minutes/learnspringboot/courses/repository/CourseRepository.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringboot.courses.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import com.in28minutes.learnspringboot.courses.bean.Course; 6 | 7 | public interface CourseRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /52-learn-spring-boot/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #logging.level.org.springframework=DEBUG 2 | #management.endpoints.web.exposure.include=* 3 | management.endpoints.web.exposure.include=health,metrics 4 | #spring.datasource.url=jdbc:h2:mem:testdb 5 | 6 | spring.jpa.hibernate.ddl-auto=update 7 | spring.datasource.url=jdbc:mysql://localhost:3306/courses 8 | spring.datasource.username=courses-user 9 | spring.datasource.password=dummycourses 10 | spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect 11 | 12 | #courses-user@localhost:3306 -------------------------------------------------------------------------------- /52-learn-spring-boot/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | insert into COURSE (ID, AUTHOR, NAME) 2 | values (100001, 'in28minutes', 'Learn Microservices'); 3 | insert into COURSE (ID, AUTHOR, NAME) 4 | values (100002, 'in28minutes', 'Learn FullStack with React and Angular'); 5 | insert into COURSE (ID, AUTHOR, NAME) 6 | values (100003, 'in28minutes', 'Learn AWS, GCP and Azure'); -------------------------------------------------------------------------------- /52-learn-spring-boot/src/test/java/com/in28minutes/learnspringboot/LearnSpringBootApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.learnspringboot; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class LearnSpringBootApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /99-TipsAndTricks/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /99-TipsAndTricks/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | tips-and-tricks 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/access/package1/ClassAccessModifiers.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.access.package1; 2 | 3 | 4 | //public, protected, (default), private 5 | public class ClassAccessModifiers { 6 | 7 | public static void main(String[] args) { 8 | // TODO Auto-generated method stub 9 | ClassAccessModifiers c = new ClassAccessModifiers(); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/access/package1/ExampleClass.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.access.package1; 2 | 3 | public class ExampleClass { 4 | public void publicMethod() {} 5 | protected void protectedMethod() {} 6 | private void privateMethod() {} 7 | void defaultMethod() {} 8 | 9 | public static void main(String[] args) { 10 | ExampleClass exampleClass = new ExampleClass(); 11 | exampleClass.privateMethod(); 12 | exampleClass.protectedMethod(); 13 | exampleClass.publicMethod(); 14 | exampleClass.defaultMethod(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/access/package1/MethodAccessRunnerInsideSamePackage.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.access.package1; 2 | 3 | public class MethodAccessRunnerInsideSamePackage { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | ExampleClass exampleClass = new ExampleClass(); 8 | //exampleClass.privateMethod(); 9 | exampleClass.protectedMethod(); 10 | exampleClass.publicMethod(); 11 | exampleClass.defaultMethod(); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/access/package2/ClassAccessModifiersRunnerInOtherPackage.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.access.package2; 2 | 3 | import com.in28minutes.tips.access.package1.ClassAccessModifiers; 4 | 5 | //public, protected, (default), private 6 | public class ClassAccessModifiersRunnerInOtherPackage { 7 | 8 | public static void main(String[] args) { 9 | ClassAccessModifiers c = new ClassAccessModifiers(); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/access/package2/MethodAccessRunnerInDifferentPackage.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.access.package2; 2 | 3 | import com.in28minutes.tips.access.package1.ExampleClass; 4 | 5 | public class MethodAccessRunnerInDifferentPackage { 6 | 7 | public static void main(String[] args) { 8 | // TODO Auto-generated method stub 9 | ExampleClass exampleClass = new ExampleClass(); 10 | 11 | //exampleClass.privateMethod(); 12 | //exampleClass.protectedMethod(); 13 | exampleClass.publicMethod(); 14 | //exampleClass.defaultMethod(); 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/anonymous/AnonymousClassRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.anonymous; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collections; 5 | import java.util.Comparator; 6 | import java.util.List; 7 | 8 | public class AnonymousClassRunner { 9 | 10 | public static void main(String[] args) { 11 | List animals = new ArrayList( 12 | List.of("Ant", "Cat", "Ball", "Elephant")); 13 | 14 | Comparator lengthComparator = new Comparator() { 15 | @Override 16 | public int compare(String str1, String str2) { 17 | return Integer.compare(str1.length(), str2.length()); 18 | } 19 | }; 20 | 21 | Collections.sort(animals, 22 | lengthComparator 23 | ); 24 | System.out.println(animals); 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/blocks/BlocksRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.blocks; 2 | 3 | public class BlocksRunner { 4 | public static final int SECONDS_IN_MINUTE = 60; 5 | public static final int MINUTES_IN_HOUR = 60; 6 | public static final int HOURS_IN_DAY = 24; 7 | public static final int SECONDS_IN_DAY 8 | = SECONDS_IN_MINUTE * MINUTES_IN_HOUR * HOURS_IN_DAY; 9 | 10 | public static void main(String[] args) { 11 | //System.out.print(Integer.MIN_VALUE); 12 | System.out.print(SECONDS_IN_DAY); 13 | 14 | //System.out.print("main"); 15 | 16 | { 17 | int i; 18 | //System.out.print("3>2"); 19 | //System.out.print("3>2"); 20 | } 21 | 22 | //System.out.print(i); 23 | 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/eclipse/DummyForTest.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.eclipse; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class DummyForTest { 7 | 8 | public void doSomething() { 9 | List list = new ArrayList(); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/enums/EnumRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.enums; 2 | 3 | import java.util.Arrays; 4 | 5 | public class EnumRunner { 6 | 7 | public static void main(String[] args) { 8 | Season season = Season.FALL; 9 | 10 | Season season1 = Season.valueOf("WINTER"); 11 | System.out.println(season1); 12 | System.out.println(Season.SPRING.ordinal()); 13 | System.out.println(Season.SPRING.getValue()); 14 | 15 | System.out 16 | .println(Arrays.toString(Season.values())); 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/enums/Season.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.enums; 2 | public enum Season { 3 | SPRING(4), SUMMER(1), WINTER(2), FALL(3) ; 4 | 5 | private int value; 6 | 7 | private Season(int value) { 8 | this.value = value; 9 | } 10 | 11 | public int getValue() { 12 | return value; 13 | } 14 | 15 | 16 | //0,1,2,3 17 | } 18 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/imports/ImportsRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.imports; 2 | 3 | //import java.lang.*; //DEFAULT 4 | import java.math.BigDecimal; 5 | import java.util.ArrayList; 6 | //import java.util.Collections; 7 | 8 | import static java.lang.System.out; 9 | import static java.util.Collections.*; 10 | 11 | public class ImportsRunner { 12 | 13 | public static void main(String[] args) { 14 | 15 | out.println("IMports"); 16 | out.println("Static Imports"); 17 | 18 | sort(new ArrayList()); 19 | 20 | BigDecimal db = null; 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/nestedclass/NestedClassRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.nestedclass; 2 | 3 | class DefaultClass { 4 | 5 | } 6 | 7 | public class NestedClassRunner { 8 | 9 | int i; 10 | 11 | class InnerClass { 12 | public void method() { 13 | i = 5; 14 | } 15 | } 16 | 17 | static class StaticNestedClass { 18 | public void method() { 19 | //i = 5; 20 | } 21 | 22 | } 23 | 24 | public static void main(String[] args) { 25 | //InnerClass innerClass = new InnerClass(); 26 | StaticNestedClass staticNestedClass = new StaticNestedClass(); 27 | 28 | NestedClassRunner nestedClassRunner = new NestedClassRunner(); 29 | InnerClass innerClass = nestedClassRunner.new InnerClass(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /99-TipsAndTricks/src/com/in28minutes/tips/nonaccess/package1/FinalNonAccessModifierRunner.java: -------------------------------------------------------------------------------- 1 | package com.in28minutes.tips.nonaccess.package1; 2 | 3 | final class FinalClass { 4 | 5 | } 6 | 7 | //class SomeClass extends FinalClass{ 8 | //} 9 | 10 | class SomeClass { 11 | final public void doSomething() {} 12 | public void doSomethingElse(final int arg) { 13 | //arg = 6; 14 | 15 | } 16 | } 17 | 18 | class ExtendingClass extends SomeClass { 19 | //public void doSomething() {} 20 | } 21 | 22 | public class FinalNonAccessModifierRunner { 23 | 24 | public static void main(String[] args) { 25 | final int i; 26 | i=5; 27 | 28 | //i = 7; 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /99-presentation/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal.js", 3 | "version": "3.5.0", 4 | "main": [ 5 | "js/reveal.js", 6 | "css/reveal.css" 7 | ], 8 | "homepage": "http://lab.hakim.se/reveal-js/", 9 | "license": "MIT", 10 | "description": "The HTML Presentation Framework", 11 | "authors": [ 12 | "Hakim El Hattab " 13 | ], 14 | "dependencies": { 15 | "headjs": "~1.0.3" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/hakimel/reveal.js.git" 20 | }, 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test" 26 | ] 27 | } -------------------------------------------------------------------------------- /99-presentation/css/reveal-override.css: -------------------------------------------------------------------------------- 1 | body { 2 | height: 86%; 3 | } 4 | 5 | body:after { 6 | content: url(../images/in28minutes-logo-small.png); 7 | position: fixed; 8 | top: 1em; 9 | right: 1em; 10 | } 11 | 12 | .reveal h2 { 13 | color: brown; 14 | } 15 | 16 | .reveal h1 { 17 | color: #1BA84A; 18 | } 19 | 20 | .reveal h3 { 21 | color: #59C8DE; 22 | } 23 | 24 | .reveal h5 { 25 | margin-top: 20px; 26 | } 27 | 28 | .reveal .slides { 29 | text-align: left; 30 | } -------------------------------------------------------------------------------- /99-presentation/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/.DS_Store -------------------------------------------------------------------------------- /99-presentation/images/00-icons/azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/azure.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/client.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/database.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/datacenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/datacenter.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/disk.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/internet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/internet.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/master.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/mobile.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/readreplica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/readreplica.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/server.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/standby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/standby.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/tape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/tape.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/user.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/users.png -------------------------------------------------------------------------------- /99-presentation/images/00-icons/volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/00-icons/volume.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/application-transport-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/application-transport-layers.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/cloud-0-IAAS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/cloud-0-IAAS.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/cloud-2-PAAS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/cloud-2-PAAS.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/container-orchestration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/container-orchestration.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/containers-docker-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/containers-docker-overview.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/containers-docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/containers-docker.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-columnar-storage-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-columnar-storage-2.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-columnar-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-columnar-storage.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-document.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-1-single-db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-1-single-db.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-2-single-db-snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-2-single-db-snapshot.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-3-single-db-snapshot-transaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-3-single-db-snapshot-transaction.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-4-standby-database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-4-standby-database.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-5-reporting-database-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-5-reporting-database-application.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-6-sep-reporting-database-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-6-sep-reporting-database-application.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-document-database-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-document-database-example.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-graph-databases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-graph-databases.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-fundamentals-relational-schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-fundamentals-relational-schema.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-key-value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-key-value.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-relational-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-relational-icon.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/database-session-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/database-session-store.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/datastream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/datastream.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/devops-05-continuous-delivery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/devops-05-continuous-delivery.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/devops-06-iaac-2-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/devops-06-iaac-2-overview.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/devops-06-teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/devops-06-teams.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/dns-record-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/dns-record-types.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/encryption-Asymmetric_encryption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/encryption-Asymmetric_encryption.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/encryption-symetrickey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/encryption-symetrickey.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/horizontal-scaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/horizontal-scaling.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/kubernetes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/kubernetes.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/microservices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/microservices.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/operational-continuum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/operational-continuum.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/private-network-1-SingleDataCenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/private-network-1-SingleDataCenter.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/private-network-1-SingleDataCenterWithDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/private-network-1-SingleDataCenterWithDB.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/private-network-2-2-datacenters-london.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/private-network-2-2-datacenters-london.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/private-network-3-2-datacenters-london-mumbai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/private-network-3-2-datacenters-london-mumbai.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/queuing-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/queuing-00.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/queuing-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/queuing-01.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/queuing-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/queuing-02.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/storage-block-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/storage-block-storage.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/storage-file-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/storage-file-storage.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/storage-raid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/storage-raid.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/storage-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/storage-types.png -------------------------------------------------------------------------------- /99-presentation/images/02-architecture/vertical-scaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/02-architecture/vertical-scaling.png -------------------------------------------------------------------------------- /99-presentation/images/In28MinutesLogo-300X50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/In28MinutesLogo-300X50.png -------------------------------------------------------------------------------- /99-presentation/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrow.png -------------------------------------------------------------------------------- /99-presentation/images/arrowbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowbi.png -------------------------------------------------------------------------------- /99-presentation/images/arrowdot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowdot.png -------------------------------------------------------------------------------- /99-presentation/images/arrowdotrev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowdotrev.png -------------------------------------------------------------------------------- /99-presentation/images/arrowrev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowrev.png -------------------------------------------------------------------------------- /99-presentation/images/arrowtd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowtd.png -------------------------------------------------------------------------------- /99-presentation/images/arrowtdbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowtdbi.png -------------------------------------------------------------------------------- /99-presentation/images/arrowtdsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/arrowtdsmall.png -------------------------------------------------------------------------------- /99-presentation/images/aws-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/aws-cloud.png -------------------------------------------------------------------------------- /99-presentation/images/aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/aws.png -------------------------------------------------------------------------------- /99-presentation/images/border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/border.png -------------------------------------------------------------------------------- /99-presentation/images/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/cloud.png -------------------------------------------------------------------------------- /99-presentation/images/coding-exercises.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/coding-exercises.png -------------------------------------------------------------------------------- /99-presentation/images/eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/eclipse.png -------------------------------------------------------------------------------- /99-presentation/images/embedded-approach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/embedded-approach.png -------------------------------------------------------------------------------- /99-presentation/images/forgettting-curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/forgettting-curve.png -------------------------------------------------------------------------------- /99-presentation/images/gamerunner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/gamerunner.png -------------------------------------------------------------------------------- /99-presentation/images/gamerunnerinterface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/gamerunnerinterface.png -------------------------------------------------------------------------------- /99-presentation/images/gaming-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/gaming-console.png -------------------------------------------------------------------------------- /99-presentation/images/happy-programmers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/happy-programmers.png -------------------------------------------------------------------------------- /99-presentation/images/in28minutes-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/in28minutes-logo-small.png -------------------------------------------------------------------------------- /99-presentation/images/in28minutes-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/in28minutes-logo.png -------------------------------------------------------------------------------- /99-presentation/images/java-coding-exercises.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/java-coding-exercises.png -------------------------------------------------------------------------------- /99-presentation/images/java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/java.png -------------------------------------------------------------------------------- /99-presentation/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/layers.png -------------------------------------------------------------------------------- /99-presentation/images/load-variations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/load-variations.png -------------------------------------------------------------------------------- /99-presentation/images/maven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/maven.png -------------------------------------------------------------------------------- /99-presentation/images/modularization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/modularization.png -------------------------------------------------------------------------------- /99-presentation/images/persistence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/persistence.png -------------------------------------------------------------------------------- /99-presentation/images/remember.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/remember.png -------------------------------------------------------------------------------- /99-presentation/images/remembering-curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/remembering-curve.png -------------------------------------------------------------------------------- /99-presentation/images/reviews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/reviews.png -------------------------------------------------------------------------------- /99-presentation/images/spring-boot-auto-configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring-boot-auto-configure.png -------------------------------------------------------------------------------- /99-presentation/images/spring-boot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring-boot.png -------------------------------------------------------------------------------- /99-presentation/images/spring-data-jpa-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring-data-jpa-configuration.png -------------------------------------------------------------------------------- /99-presentation/images/spring-modules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring-modules.png -------------------------------------------------------------------------------- /99-presentation/images/spring-projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring-projects.png -------------------------------------------------------------------------------- /99-presentation/images/spring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/spring.png -------------------------------------------------------------------------------- /99-presentation/images/war-approach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/images/war-approach.png -------------------------------------------------------------------------------- /99-presentation/lib/font/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /99-presentation/lib/font/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('league-gothic.eot'); 4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('league-gothic.woff') format('woff'), 6 | url('league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } -------------------------------------------------------------------------------- /99-presentation/lib/font/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /99-presentation/lib/font/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /99-presentation/lib/font/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /99-presentation/lib/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | document.createElement('header'); 2 | document.createElement('nav'); 3 | document.createElement('section'); 4 | document.createElement('article'); 5 | document.createElement('aside'); 6 | document.createElement('footer'); 7 | document.createElement('hgroup'); -------------------------------------------------------------------------------- /99-presentation/plugin/markdown/example.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | ## External 1.1 6 | 7 | Content 1.1 8 | 9 | Note: This will only appear in the speaker notes window. 10 | 11 | 12 | ## External 1.2 13 | 14 | Content 1.2 15 | 16 | 17 | 18 | ## External 2 19 | 20 | Content 2.1 21 | 22 | 23 | 24 | ## External 3.1 25 | 26 | Content 3.1 27 | 28 | 29 | ## External 3.2 30 | 31 | Content 3.2 32 | -------------------------------------------------------------------------------- /99-presentation/plugin/multiplex/client.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var multiplex = Reveal.getConfig().multiplex; 3 | var socketId = multiplex.id; 4 | var socket = io.connect(multiplex.url); 5 | 6 | socket.on(multiplex.id, function(data) { 7 | // ignore data from sockets that aren't ours 8 | if (data.socketId !== socketId) { return; } 9 | if( window.location.host === 'localhost:1947' ) return; 10 | 11 | Reveal.setState(data.state); 12 | }); 13 | }()); 14 | -------------------------------------------------------------------------------- /99-presentation/plugin/multiplex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal-js-multiplex", 3 | "version": "1.0.0", 4 | "description": "reveal.js multiplex server", 5 | "homepage": "http://lab.hakim.se/reveal-js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "engines": { 10 | "node": "~4.1.1" 11 | }, 12 | "dependencies": { 13 | "express": "~4.13.3", 14 | "grunt-cli": "~0.1.13", 15 | "mustache": "~2.2.1", 16 | "socket.io": "~1.3.7" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /99-presentation/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/test/examples/assets/image1.png -------------------------------------------------------------------------------- /99-presentation/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/99-presentation/test/examples/assets/image2.png -------------------------------------------------------------------------------- /99-presentation/test/examples/barebones.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | reveal.js - Barebones 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 |
19 |

Barebones Presentation

20 |

This example contains the bare minimum includes and markup required to run a reveal.js presentation.

21 |
22 | 23 |
24 |

No Theme

25 |

There's no theme included, so it will fall back on browser defaults.

26 |
27 | 28 |
29 | 30 |
31 | 32 | 33 | 34 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /99-presentation/test/simple.md: -------------------------------------------------------------------------------- 1 | ## Slide 1.1 2 | 3 | ```js 4 | var a = 1; 5 | ``` 6 | 7 | 8 | ## Slide 1.2 9 | 10 | 11 | 12 | ## Slide 2 13 | -------------------------------------------------------------------------------- /99-presentation/test/test-markdown-external.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | test( 'Horizontal separator', function() { 12 | strictEqual( document.querySelectorAll( '.reveal .slides>section' ).length, 2, 'found two slides' ); 13 | }); 14 | 15 | test( 'Language highlighter', function() { 16 | strictEqual( document.querySelectorAll( '.hljs-keyword' ).length, 1, 'got rendered highlight tag.' ); 17 | strictEqual( document.querySelector( '.hljs-keyword' ).innerHTML, 'var', 'the same keyword: var.' ); 18 | }); 19 | 20 | 21 | } ); 22 | 23 | Reveal.initialize(); 24 | 25 | -------------------------------------------------------------------------------- /99-presentation/test/test-markdown-options.js: -------------------------------------------------------------------------------- 1 | Reveal.addEventListener( 'ready', function() { 2 | 3 | QUnit.module( 'Markdown' ); 4 | 5 | test( 'Options are set', function() { 6 | strictEqual( marked.defaults.smartypants, true ); 7 | }); 8 | 9 | test( 'Smart quotes are activated', function() { 10 | var text = document.querySelector( '.reveal .slides>section>p' ).textContent; 11 | 12 | strictEqual( /['"]/.test( text ), false ); 13 | strictEqual( /[“”‘’]/.test( text ), true ); 14 | }); 15 | 16 | } ); 17 | 18 | Reveal.initialize({ 19 | dependencies: [ 20 | { src: '../plugin/markdown/marked.js' }, 21 | { src: '../plugin/markdown/markdown.js' }, 22 | ], 23 | markdown: { 24 | smartypants: true 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /99-presentation/test/test-markdown.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | Reveal.addEventListener( 'ready', function() { 4 | 5 | QUnit.module( 'Markdown' ); 6 | 7 | test( 'Vertical separator', function() { 8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize(); 15 | 16 | -------------------------------------------------------------------------------- /99-presentation/test/test-pdf.js: -------------------------------------------------------------------------------- 1 | 2 | Reveal.addEventListener( 'ready', function() { 3 | 4 | // Only one test for now, we're mainly ensuring that there 5 | // are no execution errors when running PDF mode 6 | 7 | test( 'Reveal.isReady', function() { 8 | strictEqual( Reveal.isReady(), true, 'returns true' ); 9 | }); 10 | 11 | 12 | } ); 13 | 14 | Reveal.initialize({ pdf: true }); 15 | 16 | -------------------------------------------------------------------------------- /InstallingJavaAndEclipse.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/InstallingJavaAndEclipse.pdf -------------------------------------------------------------------------------- /course-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/course-overview.png -------------------------------------------------------------------------------- /images/01_Java9JDKDownload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/01_Java9JDKDownload.png -------------------------------------------------------------------------------- /images/02_Oracle_Site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/02_Oracle_Site.png -------------------------------------------------------------------------------- /images/03_AcceptLicenseAgreement_Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/03_AcceptLicenseAgreement_Error.png -------------------------------------------------------------------------------- /images/04_AcceptLicenseAgreement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/04_AcceptLicenseAgreement.png -------------------------------------------------------------------------------- /images/05_Download_JDK_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/05_Download_JDK_9.png -------------------------------------------------------------------------------- /images/06_DoubleClick_And_Start_Installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/06_DoubleClick_And_Start_Installation.png -------------------------------------------------------------------------------- /images/10_Installation_First_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/10_Installation_First_Screen.png -------------------------------------------------------------------------------- /images/11_Installation_Ready_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/11_Installation_Ready_Screen.png -------------------------------------------------------------------------------- /images/12_Installation_Features_Select_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/12_Installation_Features_Select_Screen.png -------------------------------------------------------------------------------- /images/13_Installation_Status_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/13_Installation_Status_Screen.png -------------------------------------------------------------------------------- /images/14_Installation_Choose_Custom_Setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/14_Installation_Choose_Custom_Setup.png -------------------------------------------------------------------------------- /images/15_Installation_Status_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/15_Installation_Status_Screen.png -------------------------------------------------------------------------------- /images/16_Congratulations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/16_Congratulations.png -------------------------------------------------------------------------------- /images/21_Launch_Command_Prompt_Windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/21_Launch_Command_Prompt_Windows.png -------------------------------------------------------------------------------- /images/21_Launch_Terminal_Mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/21_Launch_Terminal_Mac.png -------------------------------------------------------------------------------- /images/22_Java_Version_Mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/22_Java_Version_Mac.png -------------------------------------------------------------------------------- /images/22_Java_Version_Windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/22_Java_Version_Windows.png -------------------------------------------------------------------------------- /images/23_JShell_Version_Success_Windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/23_JShell_Version_Success_Windows.png -------------------------------------------------------------------------------- /images/24_JShell_Version_Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/24_JShell_Version_Error.png -------------------------------------------------------------------------------- /images/24_JShell_Version_Success_Mac_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/24_JShell_Version_Success_Mac_1.png -------------------------------------------------------------------------------- /images/25_JShell_Example_Command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/25_JShell_Example_Command.png -------------------------------------------------------------------------------- /images/26_JShell_Launch_Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/26_JShell_Launch_Screen.png -------------------------------------------------------------------------------- /images/30_JShell_In_JDK_Bin_Folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/30_JShell_In_JDK_Bin_Folder.png -------------------------------------------------------------------------------- /images/31_Browsing_To_Java_Folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/31_Browsing_To_Java_Folder.png -------------------------------------------------------------------------------- /images/32_Browsing_To_JDK_Bin_Folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/32_Browsing_To_JDK_Bin_Folder.png -------------------------------------------------------------------------------- /images/33_Windows_Environment_Variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/33_Windows_Environment_Variables.png -------------------------------------------------------------------------------- /images/34_Click_Environment_Variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/34_Click_Environment_Variables.png -------------------------------------------------------------------------------- /images/35_Scroll_And_Select_Path_And_Edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/35_Scroll_And_Select_Path_And_Edit.png -------------------------------------------------------------------------------- /images/36_Default_Path_value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/36_Default_Path_value.png -------------------------------------------------------------------------------- /images/37_Add_JDK_Bin_Folder_To_Path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/37_Add_JDK_Bin_Folder_To_Path.png -------------------------------------------------------------------------------- /images/38_Click_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/38_Click_ok.png -------------------------------------------------------------------------------- /images/39_Click_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/39_Click_ok.png -------------------------------------------------------------------------------- /images/40_Click_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/40_Click_ok.png -------------------------------------------------------------------------------- /images/51_google-search-download-eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/51_google-search-download-eclipse.png -------------------------------------------------------------------------------- /images/52_eclipse-choose-installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/52_eclipse-choose-installation.png -------------------------------------------------------------------------------- /images/java-coding-exercises.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/java-coding-exercises.png -------------------------------------------------------------------------------- /images/windows10-path-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-01.png -------------------------------------------------------------------------------- /images/windows10-path-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-02.png -------------------------------------------------------------------------------- /images/windows10-path-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-03.png -------------------------------------------------------------------------------- /images/windows10-path-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-04.png -------------------------------------------------------------------------------- /images/windows10-path-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-05.png -------------------------------------------------------------------------------- /images/windows10-path-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/images/windows10-path-06.png -------------------------------------------------------------------------------- /in28minutes-course-guide-java-v1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/in28minutes/java-a-course-for-beginners/07a270106088c735ba56443b6fe49a5cd8617263/in28minutes-course-guide-java-v1.0.pdf --------------------------------------------------------------------------------