i
Understanding Requirement: Why Java
Why Java is important to the Internet
Java On Linux
First Java Program
Java Virtual Machine Architecture
Class Loading Process by Class Loaders
Role Of Just In Time Compiler
Execution Engine
Data Types
Variables
Arrays
Operators
Arithmetic Operations
Shifting Operators
Logical Operators
Control Statements
Object Oriented Paradigms
The Three OOP principles
Looping Statements
JAVA Class Fundamentals
Command Line Arguments
Static Initialize
Creating an Object
Instance Variable Hiding
Overriding and Overloading of methods
Understanding The Access Controls
Nested And Inner Classes
Dynamic Method Dispatching
Abstract Classes
Using Final To Prevent Overriding & Inheritance
Garbage Collection
Defining a package
Understanding Classpath
Access Protection
Importing packages
Defining and Implementing An Interface
Abstract classes vs Interfaces
Generics
Annotations
Varargs
Foreach
Fundamentals Of Exception Handling
Types Of Exceptions
Learning exception handling, try-catch, multiple catch clauses
Nested Try Statements
Throw, Throws and Finally
Custom Exceptions
Java Thread Model
Creating A Thread
Context Switching
Synchronization: Methods And Statements
Inter-thread Communication
Class Loader is responsible for dynamic class loading functionality. Classes will be loaded by this component. There are three types of class loaders which are taking part in process:
1. Bootstrap class loader is the loader with the highest priority and it loads classes from bootstrap classpath, which is only rt.jar
2. Extension class loader is the one which loads classes from the ext folder, such as jre/lib
3. Application class loader is an application level loader which is responsible for loading application classpath, such as environment variables and so on.
Linking is the process which contains three sub processes:
1. Verify is checking if the generated bytecode is valid and if it is not, then we are getting verification error
2. Prepare is the process which memory for all static variables and assign them default values
3. Resolve is the process which from the Method Area will change all symbolic references with the original ones.
And the last step in class loading process is the initialization, where static blocks will be executed and all static variables will be assigned with the original values.
Don't miss out!