Core Java Development Course For Beginners
5.0 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
82 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Core Java Development Course For Beginners to your Wishlist.

Add to Wishlist

Core Java Development Course For Beginners

Build solid foundation in Core Java with 22+ hrs. of Video content, 140 Quiz ques. and 74 Coding challenges
5.0 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
82 students enrolled
Created by Udayan Khattry
Last updated 7/2017
English
Current price: $10 Original price: $155 Discount: 94% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 22.5 hours on-demand video
  • 20 Articles
  • 150 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Core concepts of Java including Variables, datatypes, operators, control statements, arrays, packages, classpath, usre-input and debugging
  • Object Oriented Programming concepts and their application
  • String, Wrapper classes, Exception handling and Enumeration in detail
  • Adding appropriate comments to your code
  • Writing professional Java code using Industry best practices
  • Be Ready to face interviews
View Curriculum
Requirements
  • A Windows computer/laptop: I have used Windows environment for this lecture.
  • Dedication and commitment as it is not a superficial course.
  • Nothing else as software used in this course are free for personal use.
Description

This course is for anyone who wants to learn Java from scratch, polish java skills, face java interviews and prepare for java certifications.
Anyone can take this course and go from 0 developments skills to being expert in OOPs and core Java

Java is the most popular language world wide and technologies like Servlets & JSP, J2EE, Struts, Spring, Hibernate, JMS or android for mobile applications are all based on core Java.
Even Kotlin (android's new programming language) becomes easier if you know Java.

Having a sound understanding of core java concepts is necessary, if you want to learn advance concepts, frameworks and android programming. 

I have interviewed 100s of candidates and seen candidates with more than 3 years of experience struggling with the very basic concepts such as :

  • Why public methods of super class can't be overridden with private access specifier
  • Difference between == operator and equals method while comparing Strings
  • What will be the value of res variable in this statement(1000000000000 or something else):

                                             int res = 1000000 * 1000000;

  • What's the output: System.out.println("Result is: " + 10 > 5);
  • What is abstraction?
  • Employee is a super class of SoftwareDeveloper, which of the following 2 statements will you prefer and why?

                                           Employee e1 = new SoftwareDeveloper();

                                           SoftwareDeveloper e2 = new SoftwareDeveloper();

  • And many more.
Being an inquisitive student myself, I always wanted to know why's of everything. I sometimes got the answers, sometimes I didn't.
In this course, I have tried to give why's of most of the concepts. Rather than simply accepting the rules, if you know the reason behind, it is a lot more easier to understand.


In my teaching experience, I have observed that traditional black/white boards are extremely effective teaching aids, therefore I used lots of screen drawing to simulate the same classroom experience.In the lectures I have also included a lot of practical tips and tricks, best practices and dos and don'ts, which will help you in professional assignments.

*****************************************************************************************************************

I will start this course by downloading, installing and configuring required software.
Then in next section, I will help you to write your first Java program in text editor as well as Eclipse IDE and I will slowly cover following topics in detail:

  • Understand JVM, JRE and JDK
  • Javadoc and developer comments and their significance.
  • Variables, Data Types and Operators
  • Control Statements Types
  • Java arrays and Command-line arguments
  • Packages, classpath and User-input 
  • Eclipse debugging in detail
  • Classes, objects, constructors, initialization blocks, type of variables, methods and Garbage collection
  • Object Oriented Programming Concepts: Encapsulation, Inheritance, Ploymorphism and Abstraction
  • Access specifier, instanceof operator and casting
  • String, StringBuilder and Wrapper classes
  • Exception
  • Enumeration

To check the details of each topic, you can download course synopsis from Add-ons section.

If you want to get 100% out of this course, then I recommend to complete the sections in sequence, don't jump :). Solve all the questions given in Video lectures along with Java Coding Challenge exercises, to practice your newly acquired skills. Attempt all the quiz questions provided at the end of each section to validate your knowledge.

Although respective source code is provided with the lectures; you can download complete workspace from Add-ons section.

If you have doubts, then please ask your questions in discussion board and I will reply to your queries within 24 - 48 hours.

Hope you enjoy this course and level up your Java expertise.

Who is the target audience?
  • The course is ideal for beginners, no previous programming experience is required
  • Software developers working in other languages, switching to Java
  • Students / Java developers who are not confident about their current Core Java knowledge
  • Professional not doing good in Core Java interviews / assignments
  • Java professionals with extensive knowledge and experience may not benefit much out of this course
Students Who Viewed This Course Also Viewed
Curriculum For This Course
132 Lectures
22:27:31
+
Introduction
1 Lecture 04:46
+
Setup
1 Lecture 09:32

This lecture is all about downloading and installing software that will be used throughout this course.

You are going to download & install following:
- JDK (Java Development Kit)
- Notepad++
- Eclipse IDE

You will also learn how to configure JDK and Eclipse on your systems.

Download, Install and Configure Software
09:32
+
Let's Start coding
6 Lectures 43:19

In this lecture, you will: 

  • Write your first Java Program in Notepad++ (Text Editor), compile and run it using Windows command prompt.
  • Learn some details regarding class file and how to execute it.
  • Learn how to check and correct compilation errors.
Write your first java program in Notepad++
04:41

In this lecture, you will learn:

  • To create a workspace folder in Eclipse.
  • To open Package Explorer, Command view in Eclipse.
  • To create a new Java Project and your first class.
  • To compile and run java classes in Eclipse.
  • To check compilation errors in Eclipse.
  • Windows folder structure corresponding to Eclipse project, path for .java and .class files.
  • Some of the cool shortcuts in Eclipse.
Write your first Java Program in Eclipse IDE
05:22

In this lecture, you will learn:

  • Development Steps we followed to write, compile and execute/run our first Java Program.
  • Why JAVA is Write Once and Run Anywhere language?
  • What are JVM, JRE and JDK?
Short explanation on JVM, JRE and JDK
03:01

In this lecture, you will learn:

  • Explanation of MyFirstClass line by line.
  • IDENTIFIERS in Java and their naming rules.
  • Various keywords in Java.
  • Explanation of main(String [] args) method in java.
  • Difference between System.out.println(""); and System.out.print(""); statements.
  • Few more cool Eclipse shortcuts.
Dissection of MyFirstClass Java Program
07:39

This is one of the most important topics in learning Java. In this lecture, you will learn:

  • About comments and why they are so important.
  • Two types of comments: Javadoc and developer.
  • How and where to add comments in your code?
  • Various comment related syntax.
  • What are TODO statements?
  • To generate a help document using your Javadoc comments.
  • To find out and use functionality of third party classes.
  • How to open the current folder in Command prompt using Notepad++?
Comments in Java Program - 1
15:13

In this lecture, you will learn:

  • How developer comments can help other developers / support staff to make changes in the code?
  • Eclipse Shortcut to comment multiple lines of code.
  • Download and use Java documentation of JDK 8.
Comments in Java Program - 2
07:23

Quiz-01
10 questions
+
Variables, Data Types & Operators
9 Lectures 01:58:44

In this lecture you will learn:

  • Integer Literals
  • Floating-Point Literals
  • Boolean Literals
  • Character Literals
  • How to use characters from other languages?
  • How to change character encoding in Eclipse to print special characters on to the console.
Literals and Variables - 1
11:26

In this lecture you will learn:

  • String Literals
  • null Literal
  • What is a variable in Java?
  • Variable for Primitives and Object Reference
Preview 09:33

In this lecture you will learn:

  • Primitive types: byte, short, int and long
  • How positive and negative numbers are stored in the memory?
  • Convert decimal to binary
  • 2's complement method
Primitive Data Types in Java - 1
13:59

In this lecture you will learn:

  • Primitive types: float, double, char and boolean
  • How integral values can be assigned to char type and vice versa?
Primitive Data Types in Java - 2
09:30

In this lecture you will learn about:

  • Arithmetic Plus (+) operator
  • Implicit casting and explicit casting for primitive data types
Operators in Java - 1
17:06

In this lecture you will learn about:

  • Remaining Arithmetic operators (-, *, /, %)
  • Division(/) and remainder(%) operators with integral type and floating point numbers
  • Unary operators (+, -, ++, --, !)
  • Difference between Pre and Post increment/decrement operators
Operators in Java - 2
19:03

In this lecture you will learn about:

  • Relational operators (>, >=, <, <=, ==, !=)
  • Logical operators (&&, &, ||, |, ^, ?:)
  • Truth table for &&, &
  • Truth table for ||, |
  • Truth table for ^
Operators in Java - 3
15:32

In this lecture you will learn about:

  • Assignment operators (=, +=, -=, *=, /= and %=)
Operators in Java - 4
05:25

In this lecture you will learn:

  • Operator Precedence and Associativity
  • How to solve an expression containing various operators?
Operator Precedence in Java
17:10

Quiz-02
10 questions
+
Control Statement Types
15 Lectures 02:19:58

In this lecture you will learn:

  • What are Control flow statements in Java
  • Various Control flow statements
  • if and if - else selection statements
  • Interesting scenarios when curly brackets {} are not used
Selection Statements: if & if - else
18:09

In this lecture you will learn about:

  • if - else if - else selection statement.
  • Solving a problem using either if, if - else or if - else if - else statement and decide which one to use.
Selection Statements: if - else if - else
08:30

In this lecture you will learn about:

  • switch - case statement
  • Solving same problem using if - else if - else statement AND switch-case statement
  • fall-through
  • Moving default block within switch
Selection Statements: switch - case
19:40

Java Coding Challenge - 1
00:33

In this lecture you will learn:

  • Looping statements available in Java
  • Syntax of while loop
  • Working of while loop at runtime
  • How while loop can reduce the lines of codes, if you have to execute certain statements multiple times
Looping Statements: while - 1
16:53

In this lecture you will learn:

  • Various boolean expressions used in while loop.
  • How to write infinite loops in Java?
  • Why while(false){...} block gives compilation error?
  • Why if(false){...} block doesn't give compilation error?
Looping Statements: while - 2
07:41

Java Coding Challenge - 2
00:44

In this lecture you will learn about:

  • Syntax of do - while loop
  • Working of do - while loop at runtime
  • Differences between while and do - while loop
Preview 09:06

In this lecture you will learn:

  • Syntax of for Loop
  • Working of for loop at runtime
  • How to Convert while loop to for loop
  • How to access loop's counter variable outside loop's body?
  • How to write an infinite for loop?
  • Scenarios that cause "Unreachable code" error with for loop.
  • Interesting examples on Step expression.
Looping Statements: for
13:45

Java Coding Challenge - 3
00:30

In this lecture you will learn:

  • What are Nested Control Statements?
  • Various Nested Control Statements available in Java.
  • Nested if statements and nested for loops in detail.
  • How Java runtime handles nested if statements?
  • Interesting nested if-else example without curly brackets {}
  • How to solve confusing nested if-else example asked in various tests.
  • How Java runtime handles nested for loops?
Nested Control and Labeled Statements - 1
12:43

In this lecture you will learn:

  • What are multi-dimensional problems and how to solve these using for loops?
  • What are labeled statements?
  • Which statements can be labeled in Java?
  • Example of Labeled statements.
Nested Control and Labeled Statements - 2
10:01

Java Coding Challenge - 4
01:05

In this lecture you will learn:

  • What are branching statements and various branching statements available in java.
  • break statement in detail.
  • How java runtime handles break statement.
  • How to change console buffer size in Eclipse IDE?
  • Example of labeled break statement and how it is used to solve some tricy problems.
Branching Statements - 1
09:52

In this lecture you will learn:

  • continue statement in detail.
  • Example of labeled continue statement.
  • How java runtime handles continue statement.
  • return statement and how java runtime handles return statement.
Branching Statements - 2
10:45

Quiz-03
18 questions
+
Java Arrays, for-each loop & Command-line arguments
13 Lectures 02:11:15

In this lecture you will learn:

  • What is an array?
  • Why we need an array?
  • One-dimensional arrays
  • Various syntaxes to declare One-dimensional array
  • How to construct / instantiate One-dimensional array?
  • How Java runtime handles declaration and instantiation of One-dimensional arrays?
  • Difference between primitive arrays and Object arrays.
  • Default values of primitive and reference types.
  • How to read and modify array elements?
  • Primitive type array example.
  • What is an ArrayIndexOutOfBoundsException?
One-dimensional arrays - 1
18:53

In this lecture you will learn:

  • Reference type array example.
  • When array syntax throws ArrayIndexOutOfBoundsException and when it is a candidate for compilation error.
  • What happens when primitive type, String type and Array reference types are passed to System.out.println(); statement.
One-dimensional arrays - 2
08:20

In this lecture you will learn:

  • length property of an array object.
  • Relationship between length property and last index of the array object.
  • for loop to iterate through one-dimensional arrays.
One-dimensional arrays - 3
09:40

In this lecture you will learn:

  • More use cases of array's length property.
  • Use of concatenation operator in System.out.println() statement to get desired output.
  • Use of for loop to assign related values to the array elements.
  • Use of multiple comma separated statements in initialization and step expressions of for loop.
  • One-dimensional array object instantiation with data.
  • Final solution to average calculation problem.
One-dimensional arrays - 4
11:46

Java Coding Challenge - 5
01:46

In this lecture you will learn:

  • Various syntaxes to declare Multi-dimensional array
  • Construct/Instantiate Two-Dimensional Arrays
  • How Java runtime handles declaration and instantiation of Two-dimensional arrays?
  • Array syntax throwing NullPointerException.
  • What is an Asymmetrical Two-Dimensional array?
  • What is a Symmetrical Two-Dimensional array?
  • Syntax to construct Symmetrical Two-Dimensional array object.
Multi-dimensional arrays -1
18:15

In this lecture you will learn:

  • Nested for loop to iterate through Two-dimensional arrays (Symmetrical OR Asymmetrical).
  • More examples of Asymmetrical Two-Dimensional arrays.
  • Two-dimensional array object instantiation with data.
Multi-dimensional arrays -2
13:11

Java Coding Challenge - 6
00:02

In this lecture you will learn:

  • Syntax of enhanced for-loop.
  • Use of enhanced for-loop to iterate through One-Dimensional array.
  • How Java runtime handles enhanced for-loop for primitive and Object arrays.
  • Limitations of enhanced for-loop.
Enhanced for-loop for Arrays - 1
18:03

In this lecture you will learn:

  • Use of nested enhanced for-loops to iterate through Two-Dimensional array.
  • How Java runtime handles nested enhanced for-loops.
Enhanced for-loop for Arrays - 2
07:41

In this lecture you will learn:

  • What are command-line arguments?
  • Revision on compiling and executing Java programs in Command prompt.
  • Array object of size 0.
  • How to pass command-line arguments in Command prompt?
  • How to pass command-Line arguments in Eclipse IDE?
Preview 13:41

In this lecture you will learn:

  • Example on practical use of command-line arguments.
  • Converting String to int using parseInt method of Integer class.
  • What is NumberFormatException and why it is thrown by parseInt method of Integer class.
  • How to handle scenario of ArrayIndexOutOfBoundsException in command-line arguments.
Command-line arguments - 2
09:54

Java Coding Challenge - 7
00:02

Quiz-04
15 questions
+
Packages, Classpath, User-input & Debugging
12 Lectures 02:44:55

In this lecture you will learn:

  • How to use the functionality of third-party classes in our program?
  • Issues with classes belonging to default packages.
  • package syntax and its meaning.
  • What are the requirements to run java classes declared with package syntax?
  • javac -help to get help with javac command.
  • -d option of javac command.
  • Naming convention for package.
  • Usage of reversed Internet domain to get unique Java class names.
Java Package and Classpath - 1
17:55

In this lecture you will learn:

  • How Java Runtime finds the class files to execute?
  • -cp and -classpath options of java command [To specify classes required for execution]
  • Default value of -cp and -classpath option
  • How to execute java classes from other directories / drives available on your laptop/computer?
  • 3 ways to use packaged class from another class:

           - Using fully qualified class name in code.
           - By using fully qualified class name in import declaration.
           - By using wild card (*) in import declaration.

  • Correct order of package, import and class declaration if all three are available.
  • Where to put source code (.java) files?
  • Java project structure followed across industry.
  • Example to use class file from another project.
  • -cp and -classpath options of javac command [To specify classes required for compilation]
  • Use of relative path and absolute path with -cp and -classpath option. 
  • Bonus: Trick to open command prompt at any folder location in Windows.
Java Package and Classpath - 2
19:18

In this lecture you will learn:

  • How to specify multiple paths in classpath option?
  • Revision of all the cases covered in previous two lectures.
  • Hands-on exercise on using packages.
  • Bonus: tree command to see complete directory structure in tree-view.
Java Package and Classpath - 3
19:58

In this lecture you will learn:

  • How Eclipse IDE arranges Java and class files declared in default package?
  • .classpath file in every java project created by Eclipse IDE.
  • How to build projects automatically in Eclipse?
  • How to create packaged classes in Eclipse?
  • How Eclipse IDE arranges Java and class files declared in packages?
  • Restriction on the location of java files created in Eclipse.
  • How to create packages in Eclipse?
  • How to move java files from default package to a particular package?
Java Package and Classpath - 4
12:25

In this lecture you will learn:

  • How to refer classes from other projects in Eclipse IDE and how does it affect .classpath file?
  • Difference between Fully Qualified Name and Simple Name of the class.
  • How import statement maps Simple Name of the class to its Fully Qualified Name at compile time?
  • Restriction on the usage of multiple import statements, to point to same Simple Name of the classes in different packages.
  • Order of class name resolution by the compiler:

                  - Inline usage of the fully qualified name of the class
                  - Fully qulified name of the class used in import statement
                  - Wildcard (*) used in import statement

  • Why Classes created in default package can't be used by packaged classes?
  • How to delete a java project and associated project files in Eclipse?
  • Implicit import of all the classes of java.lang package.
  • How to export Java Projects from Eclipse Workspace?
  • How to import Java Projects into Eclipse Workspace?
  • How to do a clean build in Eclipse?
Java Package and Classpath - 5
17:13

In this lecture you will learn:

  • How to rename java projects in Eclipse IDE?
  • How to accept byte, short, int, long, float, double and boolean values using java.util.Scanner class?
  • java.util.InputMismatchException is thrown on providing out of range or incompatible values.
  • How to close Scanner object?
  • It is not possible to accept input on closed Scanner object, java.lang.IllegalStateException is thrown in such cases.
User-input with Scanner - 1
09:50

In this lecture you will learn:

  • How to accept String data using nextLine() method?
  • What is the issue of using nextLine() method after other next methods and how to resolve it?
User-input with Scanner - 2
11:17

In this lecture you will learn:

  • How Strings are internally stored as char array in the memory?
  • Use of length() and charAt(int index) methods of java.lang.String class to access all the characters of particular String object.
  • Use of above two methods of String class to accept char value as user input.
  • Ctrl + Shift + O shortcut to import all the classes in Eclipse.
User-input with Scanner - 3
10:44

In this lecture you will learn:

  • How to generate random numbers in Java using java.security.SecureRandom class.
  • About some important methods of String class: length, charAt, equals, equalsIgnoreCase, toUpperCase, toLowerCase and trim.
  • About code which can throw StringIndexOutOfBoundsException.
  • What are whitespaces in Java?
  • Use of Ctrl + Shift + R to Search and Open Project resources / files.
  • About "Link with Editor" shortcut in Eclipse to link Package Explorer with Code Editor window.
Miscellaneous - 1
10:46

Java Coding Challenge - 8
00:02

In this lecture you will learn:

  • What is debugging?
  • How to show line numbers in the code editor?
  • What is a breakpoint and how to place it?
  • How to run java programs in debug mode?
  • How to switch between debug perspective and Java perspective?
  • Variables tab and how it helps to check current values of the variables and also to change the variable values.
  • How to Resume or Terminate the program during debugging?
  • Breakpoints tab and how it helps to remove selected breakpoints or remove all the breakpoints.
  • How to disable a breakpoint and how to skip all the breakpoints?
  • Step Over and Run to line functionality.
  • How to execute a statement and see it's result during debugging?
  • How to inspect a variable or an expression?
  • Expressions tab and how it helps to watch an expression?
  • Common mistake made by developers in using expressions tab, to watch any expression that modifies variable's value.
Debugging Java codes in Eclipse - 1
18:35

In this lecture you will learn:

  • How to go to the declaration of any method and come back to the calling code?
  • How to go to the source code of Java class referred in your program?
  • Step Into and Step Return functionality.
  • What is method chaining and how to do it in Java?
  • How to attach Java API source code in eclipse?
  • How to find and open any source code files of Java API in Eclipse?
  • How to jump to any method in the chain using Step Into Selection?
Debugging Java codes in Eclipse - 2
16:52

Quiz-05
10 questions
+
Object Oriented Programming (OOP) - 1
21 Lectures 03:50:53
In this lecture you will learn:
  • What is OOP?
  • What are objects?
  • What are states/properties and behaviours of objects?
  • Some examples of real world objects.
  • What is Class and how to create a class template based on similar objects?
  • How to convert class's blueprint to Java Code?
  • How to create objects in Java using new keyword?
  • How to read/write properties of Java objects?
  • How to invoke methods on Java objects?
  • Best Practice: Separation of core business logic and Object creation or testing.
Classes and Objects
16:47

In this lecture you will learn:
  • What comes first: Class or Object?
  • What are constructors and how constructors are invoked?
  • What is a default constructor?
  • Syntax of default constructor.
  • default values are assigned to instance variables.
  • Syntax of parameterized constructor.
  • Code to invoke various constructors.
  • Difference between parameters and arguments.
  • No-argument constructor.
Constructors - 1
17:53

In this lecture you will learn:
  • What is the scenario in which default constructor is not provided by Java compiler?
  • this(); calls no-argument constructor from parameterized constructor.
  • this(...) with argument(s) calls parameterized constructors.
  • Call to this(...); should be the first statement inside parameterized constructor.
  • Assigning values to instance variables at the time of declaration.
  • What is constructor overloading?
  • How to copy and paste whole packages (containing files) in Eclipse IDE?
  • Usage of Ctrl + O to get the list of all the methods and constructors of a class in Eclipse IDE.
Constructors - 2
16:07

In this lecture you will learn:
  • STACK and HEAP memory areas.
  • What goes in HEAP and what goes in STACK?
  • Implicit variable "this" available to all the instance methods and constructors of the class.
  • Variable "this" is not accessible to static methods.
  • Difference between this() and this.
  • PUSH and POP terms related to STACK.
Preview 16:42

In this lecture you will learn:
  • Validate the STACK and HEAP concepts covered in previous lecture using Debug mode.
  • Expressions and display view available in debug mode.
  • Content assist feature of display view.
Stack and Heap - 2
08:28


In this lecture you will learn:
  • What are methods?
  • Syntax for method declaration.
  • A method can return primitive type or reference type.
  • Use of return keyword to return the value from the method.
  • Use of keyword void in method declaration, if method doesn't return any value.
  • A method can accept 0 or more parameters.
  • Method types: instance method and static method.
  • Syntax to invoke instance and static methods.
Methods - 1
09:56

In this lecture you will learn:
  • Type instance(non-static) and static methods in Eclipse IDE.
  • Decide on the method name, its parameters and return type.
  • Provide test codes for the methods.
  • Content-assist feature of Eclipse IDE shows the list of all the instance/static variables and methods, so you can select, instead of typing the method/property name.
Methods - 2
12:40

In this lecture you will learn:
  • How to decide whether method should be static or non-static?
  • Correct way to call static methods.
  • Method declaration and Method signature.
  • One java file can have multiple classes declared in it, but only one class with public access specifier.
  • NullPointerException and why it is thrown.
  • How to handle NullPointerException?
Methods - 3
15:45

In this lecture you will learn:
  • How to call a method from another method of the same class?
  • instance methods can invoke both static and instance methods.
  • static methods can only invoke static methods.
  • Example on moving duplicate codes to a method.
  • Eclipse shortcut to correct all the variable names at once.
Methods - 4
10:44

In this lecture you will learn:
  • STACK and HEAP memories during method invocation.
  • pass-by-value and pass-by-reference schemes.
Methods - 5
17:05

In this lecture you will learn:
  • More scenarios on pass-by-value and pass-by-reference schemes.
Methods - 6
08:52

Java Coding Challenge - 10
00:02

In this lecture you will learn:
  • Need for static / class variables.
  • How java runtime handles static / class variables?
  • When are static variables initialized?
  • Syntax to access static variable.
  • LOCAL variable.
Variables - 1
13:06

In this lecture you will learn:
  • Types of variables: "class or static variables", "instance variables" and "local or automatic variables".
  • Scope of the variables.
  • Lifetime of the variables.
  • Usage of curly brackets within method body to shorten the scope of the variable.
Variables - 2
09:47

In this lecture you will learn:
  • Why it is not possible to have multiple variables of same name and type(static or instance or local) in the same scope.
  • What is variable shadowing?
  • Shadowing of static variables in detail.
  • Full name and short hand notation of static variables.
Variable Shadowing - 1
08:42

In this lecture you will learn:

  • Shadowing of instance variables in detail.
  • Full name and short hand notation of instance variables.
  • How to generate constructor code (not type) in Eclipse IDE?
  • About Local variables 
Variable Shadowing - 2
11:28

In this lecture you will learn:

  • static initialization block, its syntax and why it is needed.
  • instance initialization block, its syntax and why it is needed.
  • Code area within class boundary but outside methods and constructors, is for declaration statements and not for other code statements.
Preview 08:02

In this lecture you will learn:

  • How Java runtime handles static and instance initialization blocks?
  • What is watch-point in Eclipse debugging and its significance?
  • Display view of Eclipse debugging.
  • static initialization block throws ExceptionInInitializerError instead of actual Exception object.
Initialization Blocks - 2
13:18

In this lecture you will learn:

  • Meaning of unreachable objects.
  • What is garbage collection?
  • Runtime.getRuntime().gc() and System.gc() calls.
  • Why java.lang.StackOverFlowError and java.lang.OutOfMemoryError are thrown?
Garbage Collection
15:25

Java Coding Challenge - 11
00:02

Quiz-06
20 questions
+
Object Oriented Programming (OOP) - 2
25 Lectures 04:16:54

In this lecture you will learn:

  • Why it is a bad idea to declare instance variables with public access modifier?
  • Meaning of "private" access modifier.
  • What is Encapsulation?
  • What are getter and setter?
  • How to generate getter and setter codes using Eclipse IDE?
Encapsulation
11:57

In this lecture you will learn:

  • Which access modifiers can be applied to outer java classes and their effects on the classes?
  • Which access modifiers can be used with members (Instance/static variables, constructors and methods) and their effects on the members?
  • Usage of Eclipse IDE shortcut "Ctrl + Shift + O" to add import statements for all the used classes
Access Modifiers
11:52

In this lecture you will learn:

  • What is inheritance and related Java syntax?
  • Class diagram of UML.
  • Meaning of +, #, ~ and - signs in class diagram.
  • extends keyword.
  • How Java runtime creates instance of a class inheriting from another class?
  • Various terminologies associated with inheritance.
Inheritance - 1
09:49

In this lecture you will learn:

  • Derived/Sub/Child class can have its own set of properties and methods.
  • How to override a method in Derived class?
  • How java runtime handles method overriding scenario?
  • Overridden method and Overriding method.
  • @Override annotation.
  • Invoke Parent class's method (from Child class) using super keyword.
Inheritance - 2
11:44

In this lecture you will learn:

  • All accessible instance variables of a class are inherited by sub class.
  • All accessible instance variables cannot be overridden by sub class.
  • Sub class hides the super class's instance variables.
  • How to access the instance variable of Super class by using super keyword?
  • Similar to instance variables, static fields and static methods of a class are also not overridden.
Inheritance - 3
09:36

In this lecture you will learn:

  • Constructors, initialization blocks and their order of execution in case of Inheritance.
  • Syntax of the default constructor added by compiler in case of Inheritance.
  • 1st statement inside every construtor should either call other overloaded constructors using this(...) or parent class constructor using super(...).
  • Compiler by default adds a call to super(); no-arg constructor of parent class.
  • What is constructor chaining?
  • Constructors and never overridden but they are chained.
Inheritance - 4
09:44

In this lecture you will learn:

  • java.lang.Object class.
  • Why System.out.println() method behaves differently when String type reference variable is passed?
  • toString() method of Object class and need to override it.
  • What are Multilevel Inheritance and Hierarchical Inheritance?
  • Deadly Diamond of Death problem in Java.
  • Working of Ctrl + T keys in Eclipse IDE.
Preview 15:17

In this lecture you will learn:

  • Details of protected modifier.
  • difference between default and protected modifiers.
  • Usage of final modifier with methods.
  • Usage of final modifier with classes.
  • Some of the final classes in Java API.
  • Allowed modifiers for local variables.
Inheritance - 6
08:23

In this lecture you will learn:

  • Usage of inheritance concepts in real world, with example.
  • When to extend from a class and when to avoid inheritance?
  • What are the benefits of inheritance?
Inheritance - 7
09:31

Java Coding Challenge - 12
00:02

In this lecture you will learn:

  • Polymorphism and its types.
  • What is static polymorphism?
  • What are Operator overloading, Constructor overloading and Method overloading?
  • Method overloading rules.
  • What is dynamic polymorphism?
Polymorphism - 1
14:02

In this lecture you will learn:

  • What are the limitations of dynamic polymorphism?
  • Explicit casting of reference type, its syntax and risks involved with it.
  • Why ClassCastException is thrown at runtime?
  • How to avoid ClassCastException using instanceof operator?
  • Explicit casting and instanceof check are not possible between siblings or unrelated classes.
Polymorphism - 2
16:49

In this lecture you will learn:

  • How overloaded methods accepting reference type parameters are invoked?
  • IS-A or IS-AN relationship.
Reference Type Method overloading
12:33

In this lecture you will learn:

  • Why it is needed to override equals(Object) method of Object class?
  • How to override equals(Object) method in your classes to compare two instances?
Preview 13:46

In this lecture you will learn:

  • The rules of method overriding.
  • What is covariant return?
  • Why overriding method cannot use more restrictive access modifiers?
Overriding Rules
08:10

In this lecture you will learn:

  • The difference between Primitive type and Reference type arrays.
Primitive Array vs Reference Array
07:23

Java Coding Challenge - 13
00:02

In this lecture you will learn:

  • Why abstract methods are needed in Java?
  • Syntax of abstract methods and abstract classes.
  • abstract classes cannot be instantiated.
  • What is Implementing method?
  • Use of @Override annotation with implementing method.
  • Why to declare a method with final modifier?
abstract keyword - 1
10:10

In this lecture you will learn:

  • Is it possible to have an abstract class without abstract methods?
  • Who invokes the constructor of abstract class?
  • Why new A(); gives compilation error whereas new A[5]; is allowed, where A is an abstract class?
  • Rules related to implemeting methods.
  • Access modifiers used with abstract methods.
  • Why following modifier combinations are not allowed: abstract and private, abstract and final, abstract and static?
abstract keyword - 2
09:03

In this lecture you will learn:

  • It is not always possible to provide clean solutions using abstract classes only, we will see one such example.
  • It is advisable to use super class reference variable to refer to the sub class's instance.
When abstract class is not enough
11:26

In this lecture you will learn:

  • What are core and sideline features and how to implement these?
  • What is an interface and how to define it?
  • How to implement an interface?
  • "interface" and "implements" keywords.
  • Interface reference type variable referring to the instance of implementing class.
  • How the use of interfaces with abstract classes can provide clean solution rather than using abstract classes only?
  • How to implement multiple interfaces?
interface in Java - 1
14:26

In this lecture you will learn:

  • How Eclipse IDE differentiates among interfaces, abstract classes and concrete classes?
  • Recommended naming convention for interfaces.
  • Java interfaces are implicitly abstract.
  • abstract methods of interface are implicitly public and abstract.
  • interface variables are implicitly public, static and final.
  • All the method overriding rules are valid for implementing methods as well.
  • Interfaces don't have constructors or initialization blocks.
  • Differences and similarities between abstract classes and interfaces.
  • What are Marker and Funtional interfaces?
  • Interfaces in java can extend multiple interfaces using extends keyword.
  • Recommended way to access variables of super type interface.
interface in Java - 2
14:11

In this lecture you will learn:

  • Why default methods were added in Java interfaces?
  • Syntax of default method.
  • How to access default method in implementer classes?
  • Overriding default methods and how to avoid deadly diamond of death issue?
  • How to call overridden default methods of interfaces?
  • How to provide static methods in interfaces and how to invoke these methods?
What's new for interfaces in JDK 8.0
12:56

In this lecture you will learn:

  • has-a relationship.
  • How has-a relationship is depicted in a class diagram?
  • Meaning of parent-child notation in association.
  • Types of association: Aggregation and Composition.
  • How to depict Aggregation and Composition in a class diagram?
  • What is abstraction?
  • What are the ways to achieve abstraction in your model?
Association & Abstraction
14:00

Java Coding Challenge - 14
00:02

Quiz-07
21 questions
+
Java Exceptions
13 Lectures 02:05:06

In this lecture you will learn:

  • What is an exception?
  • What is default exception handler and how it handles exceptional events?
  • Explanation of stack trace printed on to the console.
Introduction to Java Exceptions
05:45

In this lecture you will learn:

  • What is traditional exception/error handling approach?
  • How business logic is mixed with error handling code in the traditional approach?
  • How Java exception handling framework separates error handling logic from business logic?
  • An example on Java exception handling framework using FileInputStream class.
Java Exception Handling Framework - 1
11:48

In this lecture you will learn:

  • To provide try-catch block for error causing statement.
  • How java runtime handles the code containing try-catch block?
  • Hierarchy of ArithmeticException class.
  • getMessage(), printStackTrace() and toString() methods of Throwable class.
  • Throwable and its subtypes are allowed in catch block but Object type is not allowed.
  • To provide try-catch block for the method call(causing runtime error).
  • try without catch or finally block is not possible.
Java Exception Handling Framework - 2
14:33

In this lecture you will learn:

  • Exception framework hierarchy.
  • What are checked and unchecked exceptions.
  • Differences between checked and unchecked exceptions.
  • How to create and use custom exception classes?
  • What is Handle or Declare rule for checked exceptions?
  • throw and throws keywords.
  • How to provide cause/message to custom exception classes?
  • What does "ducking the exception" mean?
Checked and unchecked exceptions
17:07

In this lecture you will learn:

  • A method can specify multiple exceptions in its throws clause.
  • How to handle multiple exceptions thrown by a method?
  • Super type Exception class specified in catch block can handle all the sub types.
  • Why is it not advisable to provide one catch for all exceptions?
  • Does the order of catch blocks matter?
  • try-catch blocks should be continuous without any statements in between.
  • multi-catch statements.
  • Some best practices related to exceptions.
More on try-catch blocks - 1
14:37

In this lecture you will learn:
  • Methods can declare checked exceptions but may not throw those exceptions.
  • How to re-throw the same exception object?
  • How to throw a custom exception object?
  • How to link exception objects?
  • Nested try-catch blocks.

More on try-catch blocks - 2
11:52

In this lecture you will learn:
  • ArithmeticException (/ by 0) is handled by checking the denominator value.
  • NullPointerException is handled by doing not null check.
  • ArrayIndexOutOfBoundsException is handled by checking index boundary.

How to handle Runtime Exceptions?
08:01

In this lecture you will learn:
  • Overriding rules related to methods throwing exceptions.
  • Some tricky scenarios of polymorphic method calls.

Overriding Rules
08:15

In this lecture you will learn:
  • What is the need of finally block in Java?
  • Syntax of finally block.
  • When does finally block get executed?
finally block - 1
10:34

In this lecture you will learn:
  • Order of try, catch and finally block, when all the 3 blocks are present.
  • try-finally without catch block is a valid Java syntax.
  • The cases for which finally block is executed and the case for which it is not executed.

finally block - 2
04:57

In this lecture you will learn:
  • Why try-with-resources statement was added in Java?
  • Syntax of try-with-resources statement.
  • Difference between closing the resource using try-with-resources statement and closing it in finally block.
  • The order of closing the resources, in case we have multiple resources in try-with-resources statement.
  • try-with-resources statement without catch or finally is a valid syntax.
  • Resources declared in try-with-resources statement are implicitly final.
try-with-resources
10:26

In this lecture you will learn:
  • How to debug exceptional events in Eclipse IDE?
  • Usage of conditional suspension in debugging exceptional events.
  • Exception breakpoints and their usage in debugging exceptional events.
Preview 07:09

Java Coding Challenge - 15
00:02

Quiz-08
15 questions
3 More Sections
About the Instructor
Udayan Khattry
5.0 Average rating
7 Reviews
82 Students
1 Course
SCJP, SCWCD & Oracle Database SQL Certified Expert

Hi, I'm Udayan. I have a master's degree in Computer Applications from Symbiosis International University, Pune, India and have completed following professional certifications:
- SCJP 1.6  (Sun Certified Programmer for J2SE 6.0)
- SCWCD 1.5 (Sun Certified Web Component Developer)
- Oracle Database SQL Certified Expert

After working as a software developer and consultant for over 9 years for various companies in India, Dubai & Singapore, I decided to follow my lifelong passion of teaching.

I have been training students for a while now and I understand their doubts and questions.

During my job, I have interviewed 100s of candidates for various java profiles and realized the gap between candidate's knowledge and industry's expectations. My course is designed to bridge the same gap. 

Students have told me that my training benefited them immensely in facing interviews and securing the job. Such feedback motivated me to create online courses to reach the masses.