Skip to content

nodiscardme/java-a-course-for-beginners

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn Java Programming in 250 Steps

Image

Hands on Step by Step Introduction to the most popular programming language

Getting Started

Installing Tools

Overview

Introduction

We love Programming. Our aim with this course is to create a love for Programming.

Java is one of the most popular programming languages. Java offers both object oriented and functional programming features.

We take an hands-on approach using a combination of JShell(An awesome new feature in Java 9) and Eclipse as an IDE to illustrate more than 200 Java Coding Exercises, Puzzles and Code Examples.

In more than 250 Steps, we explore the most important Java Programming Language Features

  • Basics of Java Programming - Expressions, Variables and Printing Output
  • Java Operators - Java Assignment Operator, Relational and Logical Operators, Short Circuit Operators
  • Java Conditionals and If Statement
  • Methods - Parameters, Arguments and Return Values
  • An Overview Of Java Platform - java, javac, bytecode, JVM and Platform Independence - JDK vs JRE vs JVM
  • Object Oriented Programming - Class, Object, State and Behavior
  • Basics of OOPS - Encapsulation, Abstraction, Inheritance and Polymorphism
  • Basics about Java Data Types - Casting, Operators and More
  • Java Built in Classes - BigDecimal, String, Java Wrapper Classes
  • Conditionals with Java - If Else Statement, Nested If Else, Java Switch Statement, Java Ternary Operator
  • Loops - For Loop, While Loop in Java, Do While Loop, Break and Continue
  • Immutablity of Java Wrapper Classes, String and BigDecimal
  • Java Dates - Introduction to LocalDate, LocalTime and LocalDateTime
  • Java Array and ArrayList - Java String Arrays, Arrays of Objects, Primitive Data Types, toString and Exceptions
  • Introduction to Variable Arguments
  • Basics of Designing a Class - Class, Object, State and Behavior. Deciding State and Constructors.
  • Understanding Object Composition and Inheritance
  • Java Abstract Class and Interfaces. Introduction to Polymorphism.
  • Java Collections - List Interface(ArrayList, LinkedList and Vector), Set Interface (HashSet, LinkedHashSet and TreeSet), Queue Interface (PriorityQueue) and Map Interface (HashMap, HashTable, LinkedHashMap and TreeMap() - Compare, Contrast and Choose
  • Generics - Why do we need Generics? Restrictions with extends and Generic Methods, WildCards - Upper Bound and Lower Bound.
  • Functional Programming - Lambda Expression, Stream and Operations on a Stream (Intermediate Operations - Sort, Distinct, Filter, Map and Terminal Operations - max, min, collect to List), Functional Interfaces - Predicate Interface,Consumer Interface, Function Inteface for Mapping, Method References - static and instance methods
  • Introduction to Threads and MultiThreading - Need for Threads
  • Implementing Threads - Extending Thread Class and Implementing Runnable Interface
  • States of a Thread and Communication between Threads
  • Introduction to Executor Service - Customizing number of Active Threads. Returning a Future, invokeAll and invokeAny
  • Introduction to Exception Handling - Your Thought Process during Exception Handling. try, catch and finally. Exception Hierarchy - Checked Exceptions vs Unchecked Exceptions. Throwing an Exception. Creating and Throwing a Custom Exception - CurrenciesDoNotMatchException. Try with Resources - New Feature in Java 7.
  • List files and folders in Directory with Files list method, File walk method and find methods. Read and write from a File.

What You will learn

  • You will learn how to think as a Java Programmer
  • You will learn how to start your journey as a Java Programmer
  • You will learn the basics of Eclipse IDE and JShell
  • You will learn to develop awesome object oriented programs with Java
  • You will solve a wide variety of hands-on exercises on the topics discussed below
  • You will learn the basics of programming - variables, choosing a data type, conditional execution, loops, writing great methods, breaking down problems into sub problems and implementing great Exception Handling.
  • You will learn the basics of Object Oriented Programming - Intefaces, Inheritance, Abstract Class and Constructors
  • You will learn the important concepts of Object Oriented Programming - Abstraction, Inheritance, Encapsulation and Polymorphism
  • You will learn to do basic functional programming with Java
  • You will learn the basics of MultiThreading - with Executor Service
  • You will learn about a wide variety of Collections - List, Map, Set and Queue Interfaces

Requirements

  • Connectivity to Internet to download Java 9 and Eclipse.
  • We will help you install Java9 with JShell and Eclipse.

Step Wise Details

Introduction

  • Course-Beginning
  • Course-Ending
  • Step 00 - How To Make Best use of the Course Guide?
  • Step 01 - Installing JDK 9 - with installation guide PDF
  • Step 02 - Verifying Java and Jshell
  • Step 03 - Troubleshooting Java installation
  • Step 04 - Setting Path environment variable in Windows

01-IntroductionToJavaProgrammingWithJShell-MultiplicationTable

  • Step 00 - Getting Started with Programming
  • Step 01 - Introduction to Multiplication Table challenge
  • Step 02 - Launch JShell
  • Step 03 - Break Down Multiplication Table Challenge
  • Step 04 - Java Expression - An Introduction
  • Step 05 - Java Expression - Exercises
  • Step 06 - Java Expression - Puzzles
  • Step 07 - Printing output to console with Java
  • Step 08 - Printing output to console with Java - Exercise Statements
  • Step 09 - Printing output to console with Java - Exercise Solutions
  • Step 10 - Printing output to console with Java - Puzzles
  • Step 11 - Advanced Printing output to console with Java
  • Step 12 - Advanced Printing output to console with Java - Exercises and Puzzles
  • Step 13 - Introduction to Variables in Java
  • Step 14 - Introduction to Variables in Java - Exercises and Puzzles
  • Step 15 - 4 Important Things to Know about Variables in Java
  • Step 16 - How are variables stored in memory?
  • Step 17 - How to name a variable?
  • Step 18 - Understanding Primitive Variable Types in Java
  • Step 19 - Understanding Primitive Variable Types in Java - Choosing a Type
  • Step 20 - Java Assignment Operator
  • Step 21 - Java Assignment Operator - Puzzles on Increment, Decrement and Compound Assignment
  • Step 23 - Java Conditionals and If Statement - Introduction
  • Step 24 - Java Conditionals and If Statement - Exercise Statements
  • Step 25 - Java Conditionals and If Statement - Exercise Solutions
  • Step 26 - Java Conditionals and If Statement - Puzzles
  • Step 27 - Java For Loop to Print Multiplication Table - Introduction
  • Step 28 - Java For Loop to Print Multiplication Table - Exercise Statements
  • Step 29 - Java For Loop to Print Multiplication Table - Exercise Solutions
  • Step 30 - Java For Loop to Print Multiplication Table - Puzzles
  • Step 31 - Programming Tips : JShell - Shortcuts, Multiple Lines and Variables TODO Move up
  • Step 32 - Getting Started with Programming - Revise all Terminology

02-IntroductionToMethods-MultiplicationTable

  • Step 00 - Section 02 - Methods - An Introduction
  • Step 01 - Your First Java Method - Hello World Twice and Exercise Statements
  • Step 02 - Introduction to Java Methods - Exercises and Puzzles
  • Step 03 - Programming Tip - Editing Methods with JShell
  • Step 04 - Introduction to Java Methods - Arguments and Parameters
  • Step 05 - Introduction to Java Method Arguments - Exercises
  • Step 06 - Introduction to Java Method Arguments - Puzzles and Tips
  • Step 07 - Getting back to Multiplication Table - Creating a method
  • Step 08 - Print Multiplication Table with a Parameter and Method Overloading
  • Step 09 - Passing Multiple Parameters to a Java Method
  • Step 10 - Returning from a Java Method - An Introduction
  • Step 11 - Returning from a Java Method - Exercises
  • Step 99 - Methods - Section Review

03-IntroductionToJavaPlatform

  • Step 00 - Section 03 - Overview Of Java Platform - Section Overview
  • Step 01 - Overview Of Java Platform - An Introduction - java, javac, bytecode and JVM
  • Step 02 - Java Class and Object - First Look
  • Step 03 - Create a method in a Java class
  • Step 04 - Create and Compile Planet.java class
  • Step 05 - Run Planet calss with Java - Using a main method
  • Step 06 - Play and Learn with Planet Class
  • Step 07 - JDK vs JRE vs JVM

04-IntroductionToEclipse-FirstJavaProject

  • Step 00 - Installing Eclipse
  • Step 01 - Creating a New Java Project with Eclipse
  • Step 02 - Your first Java class with Eclipse
  • Step 03 - Writing Multiplication Table Java Program with Eclipse
  • Step 04 - Adding more methods for Multiplication Table Program
  • Step 05 - Programming Tip 1 : Refactoring with Eclipse
  • Step 06 - Programming Tip 2 : Debugging with Eclipse
  • Step 07 - Programming Tip 3 : Eclipse vs JShell - How to choose?

05-IntroductionToObjectOrientedProgramming

  • Step 00 - Introduction to Object Oriented Programming - Section Overview
  • Step 01 - Introduction to Object Oriented Programming - Basics
  • Step 02 - Introduction to Object Oriented Programming - Terminology - Class, Object, State and Behavior
  • Step 03 - Introduction to Object Oriented Programming - Exercise - Online Shopping System and Person
  • Step 04 - Create Motor Bike Java Class and a couple of objects
  • Step 05 - Exercise Solutions - Book class and Three instances
  • Step 06 - Introducing State of an object with speed variable
  • Step 07 - Understanding basics of Encapsulation with Setter methods
  • Step 08 - Exercises and Tips - Getters and Generating Getters and Setters with Eclipse
  • Step 09 - Puzzles on this and initialization of member variables
  • Step 10 - First Advantage of Encapsulation
  • Step 11 - Introduction to Encapsulation - Level 2
  • Step 12 - Encapsulation Exercises - Better Validation and Book class
  • Step 13 - Introdcution to Abstraction
  • Step 14 - Introduction to Java Constructors
  • Step 15 - Introduction to Java Constructors - Exercises and Puzzles
  • Step 16 - Introduction to Object Oriented Programming - Conclusion

06-PrimitiveDataTypesAndAlternatives

  • Step 00 - Primitive Data Types in Depth - Section Overview
  • Step 01 - Basics about Java Integer Data Types - Casting, Operators and More
  • Step 02 - Java Integer Data Types - Puzzles - Octal, Hexadecimal, Post and Pre increment
  • Step 03 - Java Integer Data Types - Exercises - BiNumber - add, multiply and double
  • Step 04 - Java Floating Point Data Types - Casting , Conversion and Accuracy
  • Step 05 - Introduction to BigDecimal Java Class
  • Step 06 - BigDecimal Puzzles - Adding Integers
  • Step 07 - BigDecimal Exercises - Simple Interest Calculation
  • Step 08 - Java Boolean Data Type - Relational and Logical Operators
  • Step 09 - Java Boolean Data Type - Puzzles - Short Circuit Operators
  • Step 10 - Java Character Data Type char - Representation and Conversion
  • Step 11 - Java char Data Type - Exercises 1 - isVowel
  • Step 12 - Java char Data Type - Exercises 2 - isDigit
  • Step 13 - Java char Data Type - Exercises 3 - isConsonant, List Upper Case and Lower Case Characters
  • Step 14 - Primitive Data Types in Depth - Conclusion

07-Conditionals

  • Step 00 - Conditionals with Java - Section Overview
  • Step 01 - Introduction to If Else Statement
  • Step 02 - Introduction to Nested If Else
  • Step 03 - If Else Statement - Puzzles
  • Step 04 - If Else Problem - How to get User Input in Java?
  • Step 05 - If Else Problem - How to get number 2 and choice from user?
  • Step 06 - If Else Problem - Implementing with Nested If Else
  • Step 07 - Java Switch Statement - An introduction
  • Step 08 - Java Switch Statement - Puzzles - Default, Break and Fall Through
  • Step 09 - Java Switch Statement - Exercises - isWeekDay, nameOfMonth, nameOfDay
  • Step 10 - Java Ternary Operation - An Introduction
  • Step 11 - Conditionals with Java - Conclusion

08-Loops

  • Step 00 - Java Loops - Section Introduction
  • Step 01 - Java For Loop - Syntax and Puzzles
  • Step 02 - Java For Loop - Exercises Overview and First Exercise Prime Numbers
  • Step 03 - Java For Loop - Exercise - Sum Upto N Numbers and Sum of Divisors
  • Step 04 - Java For Loop - Exercise - Print a Number Triangle
  • Step 05 - While Loop in Java - An Introduction
  • Step 06 - While Loop - Exericises - Cubes and Squares upto limit
  • Step 07 - Do While Loop in Java - An Introduction
  • Step 08 - Do While Loop in Java - An Example - Cube while user enters positive numbers
  • Step 09 - Introduction to Break and Continue
  • Step 10 - Selecting Loop in Java - For vs While vs Do While

09-ReferenceTypes

  • Step 00 - Java Reference Types - Section Introduction
  • Step 01 - Reference Types - How are they stored in Memory?
  • Step 02 - Java Reference Types - Puzzles
  • Step 03 - String class - Introduction and Exercise - Print each word and char on a new line
  • Step 04 - String class - Exercise Solution and Some More Important Methods
  • Step 05 - Understanding String is Immutable and String Concat, Upper Case, Lower Case, Trim methods
  • Step 06 - String Concatenation and Join, Replace Methods
  • Step 07 - Java String Alternatives - StringBuffer and StringBuilder
  • Step 08 - Java Wrapper Classes - An Introduction - Why and What?
  • Step 09 - Java Wrapper Classes - Creation - Constructor and valueOf
  • Step 10 - Java Wrapper Classes - Auto Boxing and a Few Wrapper Constants - SIZE, BYTES, MAX_VALUE and MIN_VALUE
  • Step 11 - Java Dates - Introduction to LocalDate, LocalTime and LocalDateTime
  • Step 12 - Java Dates - Exploring LocalDate - Creation and Methods to play with Date
  • Step 13 - Java Dates - Exploring LocalDate - Comparing Dates and Creating Specific Dates
  • Step 14 - Java Reference Types - Conclusion

10-ArraysAndArrayList

  • Step 00 - Introduction to Array and ArrayList - Section Introduction with a Challenge
  • Step 01 - Understanding the need and Basics about an Array
  • Step 02 - Java Arrays - Creating and Accessing Values - Introduction
  • Step 03 - Java Arrays - Puzzles - Arrays of Objects, Primitive Data Types, toString and Exceptions
  • Step 04 - Java Arrays - Compare, Sort and Fill
  • Step 05 - Java Arrays - Exercise - Create Student Class - Part 1 - Total and Average Marks
  • Step 06 - Java Arrays - Exercise - Create Student Class - Part 2 - Maximum and Minimum Mark
  • Step 07 - Introduction to Variable Arguments - Need
  • Step 08 - Introduction to Variable Arguments - Basics
  • Step 09 - Introduction to Variable Arguments - Enhancing Student Class
  • Step 10 - Java Arrays - Using Person Objects and String Elements with Exercises
  • Step 11 - Java String Arrays - Exercise Solutions - Print Day of Week with Most number of letters and more
  • Step 12 - Adding and Removing Marks - Problem with Arrays
  • Step 13 - First Look at ArrayList - An Introduction
  • Step 14 - First Look at ArrayList - Refactoring Student Class to use ArrayList
  • Step 15 - First Look at ArrayList - Enhancing Student Class with Add and Remove Marks
  • Step 16 - Introduction to Array and ArrayList - Conclusion

11-ObjectOrientedProgrammingAgain

  • Step 00 - Object Oriented Programming - Level 2 - Section Introduction
  • Step 01 - Basics of Designing a Class - Class, Object, State and Behavior
  • Step 02 - OOPS Example - Fan Class - Deciding State and Constructors
  • Step 03 - OOPS Example - Fan Class - Deciding Behavior with Methods
  • Step 04 - OOPS Exercise - Rectangle Class
  • Step 05 - Understanding Object Composition with Customer Address Example
  • Step 06 - Understanding Object Composition - An Exercise - Books and Reviews
  • Step 07 - Understanding Inheritance - Why do we need it?
  • Step 08 - Object is at top of Inheritance Hierarchy
  • Step 09 - Inheritance and Overriding - with toString() method
  • Step 10 - Java Inheritance - Exercise - Student and Employee Classes
  • Step 11 - Java Inheritance - Default Constructors and super() method call
  • Step 12 - Java Inheritance - Puzzles - Multiple Inheritance, Reference Variables and instanceof
  • Step 13 - Java Abstract Class - Introductio
  • Step 14 - Java Abstract Class - First Example - Creating Recipes with Template Method
  • Step 15 - Java Abstract Class - Puzzles
  • Step 16 - Java Interface - Example 1 - Gaming Console - How to think about Intefaces?
  • Step 17 - Java Interface - Example 2 - Complex Algorithm - API defined by external team
  • Step 18 - Java Interface - Puzzles - Unimplemented methods, Abstract Classes, Variables, Default Methods and more
  • Step 19 - Java Interface vs Abstract Class - A Comparison
  • Step 20 - Java Interface Flyable and Abstract Class Animal - An Exercise
  • Step 21 - Polymorphism - An introduction

12-Collections

  • Step 01 - Java Collections - Section Overview with Need For Collections
  • Step 02 - List Interface - Introduction - Position is King
  • Step 03 - List Inteface - Immutability and Introduction of Implementations - ArrayList, LinkedList and Vector
  • Step 04 - List Inteface Implementations - ArrayList vs LinkedList
  • Step 05 - List Inteface Implementations - ArrayList vs Vector
  • Step 06 - List Inteface - Methods to add, remove and change elements and lists
  • Step 07 - List and ArrayList - Iterating around elements
  • Step 08 - List and ArrayList - Choosing iteration approach for printing and deleting elements
  • Step 09 - List and ArrayList - Puzzles - Type Safety and Removing Integers
  • Step 10 - List and ArrayList - Sorting - Introduction to Collections sort static method
  • Step 11 - List and ArrayList - Sorting - Implementing Comparable Inteface in Student Class
  • Step 12 - List and ArrayList - Sorting - Providing Flexibility by implementing Comparator interface
  • Step 13 - List and ArrayList - A Summary
  • Step 14 - Set Interface - Introduction - No Duplication
  • Step 15 - Understanding Data Structures - Array, LinkedList and Hashing
  • Step 16 - Understanding Data Structures - Tree - Sorted Order
  • Step 17 - Set Interface - Hands on - HashSet, LinkedHashSet and TreeSet
  • Step 18 - Set Interface - Exercise - Find Unique Characters in a List
  • Step 19 - TreeSet - Methods from NavigableSet - floor,lower,upper, subSet, head and tailSet
  • Step 20 - Queue Interface - Process Elements in Order
  • Step 21 - Introduction to PriorityQueue - Basic Methods and Customized Priority
  • Step 22 - Map Interface - An Introduction - Key and Value
  • Step 23 - Map Interface - Implementations - HashMap, HashTable, LinkedHashMap and TreeMap
  • Step 24 - Map Interface - Basic Operations
  • Step 25 - Map Interface - Comparison - HashMap vs LinkedHashMap vs TreeMap
  • Step 26 - Map Interface - Exercise - Count occurances of characters and words in a piece of text
  • Step 27 - TreeMap - Methods from NavigableMap - floorKey, higherKey, firstEntry, subMap and more
  • Step 28 - Java Collections - Conclusion with Three Tips

13-Generics

  • Step 01 - Introduction to Generics - Why do we need Generics?
  • Step 02 - Implementing Generics for the Custom List
  • Step 03 - Extending Custom List with a Generic Return Method
  • Step 04 - Generics Puzzles - Restrictions with extends and Generic Methods
  • Step 05 - Generics and WildCards - Upper Bound and Lower Bound

14-FunctionalProgramming

  • Step 01 - Introduction to Functional Programming - Functions are First Class Citizens
  • Step 02 - Functional Programming - First Example with Function as Parameter
  • Step 03 - Functional Programming - Exercise - Loop a List of Numbers
  • Step 04 - Functional Programming - Filtering - Exercises to print odd and even numbers from List
  • Step 05 - Functional Programming - Collect - Sum of Numbers in a List
  • Step 06 - Functional Programming vs Structural Programming - A Quick Comparison
  • Step 07 - Functional Programming Terminology - Lambda Expression, Stream and Operations on a Stream
  • Step 08 - Stream Intermediate Operations - Sort, Distinct, Filter and Map
  • Step 09 - Stream Intermediate Operations - Exercises - Squares of First 10, Map String List to LowerCase and Length of String
  • Step 10 - Stream Terminal Operations - 1 - max operation with Comparator
  • Step 11 - Stream Terminal Operations - 2 - min, collect to List,
  • Step 12 - Optional class in Java - An Introduction
  • Step 13 - Behind the Screens with Functional Interfaces - Implement Predicate Interface
  • Step 14 - Behind the Screens with Functional Interfaces - Implement Consumer Interface
  • Step 15 - Behind the Screens with Functional Interfaces - Implement Function Inteface for Mapping
  • Step 16 - Simplify Functional Programming code with Method References - static and instance methods
  • Step 17 - Functions are First Class Citizens
  • Step 18 - Introduction to Functional Programming - Conclusion

15-ThreadsAndConcurrency

  • Step 01 - Introduction to Threads and MultiThreading - Need for Threads
  • Step 02 - Creating a Thread for Task1 - Extending Thread Class
  • Step 03 - Creating a Thread for Task2 - Implement Runnable Interface
  • Step 04 - Theory - States of a Thread
  • Step 05 - Placing Priority Requests for Threads
  • Step 06 - Communication between Threads - join method
  • Step 07 - Thread utility methods and synchronized keyword - sleep, yield
  • Step 08 - Need for Controlling the Execution of Threads
  • Step 09 - Introduction to Executor Service
  • Step 10 - Executor Service - Customizing number of Threads
  • Step 11 - Executor Service - Returning a Future from Thread using Callable
  • Step 12 - Executor Service - Waiting for completion of multiple tasks using invokeAll
  • Step 13 - Executor Service - Wait for only the fastest task using invokeAny
  • Step 14 - Threads and MultiThreading - Conclusion

16-ExceptionHandling

  • Step 01 - Introduction to Exception Handling - Your Thought Process during Exception Handling
  • Step 02 - Basics of Exceptions - NullPointerException and StackTrace
  • Step 03 - Basics of Handling Exceptions - try and catch
  • Step 04 - Basics of Handling Exceptions - Exception Hierarchy, Matching and Catching Multiple Exceptions
  • Step 05 - Basics of Handling Exceptions - Need for finally
  • Step 06 - Basics of Handling Exceptions - Puzzles
  • Step 07 - Checked Exceptions vs Unchecked Exceptions - An Example
  • Step 08 - Hierarchy of Errors and Exceptions - Checked and Runtime
  • Step 09 - Throwing an Exception - Currencies Do Not Match Runtime Exception
  • Step 10 - Throwing a Checked Exception - Throws in method signature and handling
  • Step 11 - Throwing a Custom Exception - CurrenciesDoNotMatchException
  • Step 12 - Write less code with Try with Resources - New Feature in Java 7
  • Step 13 - Basics of Handling Exceptions - Puzzles 2
  • Step 14 - Exception Handling - Conclusion with Best Practices

17-Files

  • Step 01 - List files and folders in Directory with Files list method
  • Step 02 - Recursively List and Filter all files and folders in Directory with Step Files walk method and Search with find method
  • Step 03 - Read content from a File - Files readAllLines and lines methods
  • Step 04 - Writing Content to a File - Files write method
  • Step 05 - Files - Conclusion

More Concurrency with Atomic Operations and Concurrent Collections

  • Step 01 - Getting started with Synchronized
  • Step 02 - Problem with Synchronized - Less Concurrency
  • Step 03 - Enter Locks with ReEntrantLock
  • Step 04 - Introduction to Atomic Classes - AtomicInteger
  • Step 05 - Need for ConcurrentMap
  • Step 06 - Implementing an example with ConcurrentHashMap
  • Step 07 - ConcurrentHashMap uses different locks for diferrent regions
  • Step 08 - CopyOnWrite Concurrent Collections - When reads are more than writes
  • Step 09 - Conclusion

Java Tips

  • Java Tip 01 - Imports and Static Imports
  • Java Tip 02 - Blocks
  • Java Tip 03 - equals method
  • Java Tip 04 - hashcode method
  • Java Tip 05 - Class Access Modifiers - public and default
  • Java Tip 06 - Method Access Modifiers - public, protected, private and default
  • Java Tip 07 - Final classes and Final methods
  • Java Tip 08 - Final Variables and Final Arguments
  • Java Tip 09 - Why do we need static variables?
  • Java Tip 09 - Why do we need static methods?
  • Java Tip 10 - Static methods cannot use instance methods or variables
  • Java Tip 11 - public static final - Constants
  • Java Tip 12 - Nested Classes - Inner Class vs Static Nested Class
  • Java Tip 13 - Anonymous Classes
  • Java Tip 14 - Why Enum and Enum Basics - ordinal and values
  • Java Tip 15 - Enum - Constructor, variables and methods
  • Java Tip 16 - Quick look at inbuild Enums - Month, DayOfWeek

Future Things To Do

  • Volatile
  • Java Keywords
  • Video 2 36:35 -> Include a list of formatting options for System.out.printf
  • Video 16 Array average of Numbers -> Rounding mode needs editing
    • Big Decimal Rounding Modes introduction seperate video!
  • What else should a great developer do?
    • 4 Principles of Simple Design
    • Unit Testing
    • TDD
  • Initialization Blocks
    • Static & Instance Initializer Blocks
  • BigDecimal Rounding Modes
  • Tip : Do not create a lot of objects and leaks - Understand Garbage Collection
  • Serialization
  • Coding Standards
  • Writing JavaDoc
  • 10 Effective Java Tips
    • Don't use Raw Types
    • Use Enum instead of int or String Constants
    • Minimize scope of variables
    • Check Parameters for validity
    • Beware of String Concatenation
    • Do not return nulls - return empty collection
    • Use Enhanced For Loop
    • Avoid Double for Financial Calculations
    • Refer to objects by Interfaces
    • Follow Naming Conventions
  • Try Pair Programming!
  • Comments

Troubleshooting

Youtube Playlists - 500+ Videos

Click here - 30+ Playlists with 500+ Videos on Spring, Spring Boot, REST, Microservices and the Cloud

Keep Learning in28Minutes

in28Minutes is creating amazing solutions for you to learn Spring Boot, Full Stack and the Cloud - Docker, Kubernetes, AWS, React, Angular etc. - Check out all our courses here

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 47.8%
  • CSS 34.5%
  • HTML 12.2%
  • Java 5.5%