1 |
Introduction |
Why Java |
|
|
|
Java Design Goal and History |
|
|
|
Role of Java Programming Language in Industry |
|
|
|
Feature Of Java Language |
|
|
|
JVM – the heart of Java |
|
|
|
Byte code- the magic code |
|
|
|
Different Edition of Java |
|
2 |
Language Fundamentals and Java Environment |
Installing Java |
|
|
|
Integrated Development Environment (IDE)- Eclipse/IntelliJ IDEA |
|
|
|
Java Source file structure |
|
|
|
Compilation & Execution |
|
|
|
Hello world Program |
|
|
|
Performing basic arithmetic operation and input taking from console |
|
|
|
How to run java program in Command Line |
|
3 |
Basic Java programming Structure and Language Elements |
Keywords, Literals, Comments |
|
|
|
Data Types |
|
|
|
Operators & Assignments |
|
|
|
Class/Object |
|
|
|
Methods |
|
|
|
Package |
|
|
|
Constructors |
|
|
|
Package and importing Package |
|
|
|
Variables |
|
|
|
Printing Variables |
|
|
|
Control Flow , looping and branching |
|
|
|
Java Arrays |
|
4 |
Object Oriented Programming |
Class fundamentals |
|
|
|
Object & Object Reference |
|
|
|
Creating objects |
|
|
|
Constructor and initializing code blocks |
|
|
|
Method overloading |
|
|
|
Inheritance -is A , has A relation |
|
|
|
Method overriding |
|
|
|
Abstract class |
|
|
|
Final class |
|
|
|
Object composition |
|
|
|
Polymorphism |
|
|
|
Variable type & object Type |
|
|
|
Upcasting & downcasting |
|
|
|
Interface |
|
|
|
Abstract class vs. interface |
|
|
|
Encapsulation |
|
|
|
Access Control, Modifiers, methods |
|
|
|
Design of accessors and mutators |
|
|
|
Cloning objects/shallow & deep cloning |
|
5 |
Exception handling |
The idea behind the exception |
|
|
|
Exception & Errors |
|
|
|
Type of Exception |
|
|
|
Use of try, catch, finally, throw and throws in Exception handling |
|
|
|
Stack-trace |
|
|
|
Checked -vs Unchecked exception |
|
|
|
Frequently used in-built exception classes |
|
|
|
User defined exceptions |
|
6 |
Generics |
Generics in Java |
|
|
|
How generics works in Java |
|
|
|
Bounded Types |
|
|
|
Generics, Inheritance, and Subtypes |
|
|
|
Type Inference |
|
|
|
Wildcard arguments |
|
|
|
Generic Method |
|
|
|
Type Erasure |
|
|
|
Restrictions on Generics |
|
7 |
Java I/O |
Serialization/Externalizable |
|
|
|
readObject() / writeObject() |
|
|
|
Serial Object Versioning |
|
|
|
Streams- input/output streams |
|
|
|
Writing/reading file using streams |
|
|
|
Java I/O utility classess |
|
|
|
Character/Byte based stream |
|
|
|
Java New IO Package |
|
|
|
Motivation for Using |
|
|
|
Working with Buffers |
|
|
|
Allocating Buffers |
|
|
|
Buffers Advantages |
|
|
|
Channels |
|
|
|
Memory Mapped Files |
|
|
|
Non-Blocking Operations |
|
|
|
Selectors |
|
|
|
NIO Uses |
|
|
|
Character Streams Encoding |
|
|
|
The Unicode Standard |
|
|
|
Forms of Unicode |
|
|
|
32-bit Characters |
|
|
|
Big / Little Endian |
|
|
|
Other Encodings |
|
|
|
Charset Class |
|
|
|
Encoders and Decoders |
|
|
|
Code Points |
|
8 |
Reflection API |
Overview |
|
|
|
Introduction |
|
|
|
Usefulness of Reflection |
|
|
|
Dangers of Reflection |
|
|
|
Examining Classes |
|
|
|
Reflection Package |
|
|
|
Retrieving Class Objects |
|
|
|
Working with Class Objects |
|
|
|
Accessing fields/methods |
|
|
|
Generics |
|
|
|
Manipulating/working with Objects |
|
|
|
Getting and Setting Fields |
|
|
|
Invoking Methods |
|
|
|
Casting through Reflection |
|
|
|
Final fields |
|
|
|
Working with Arrays |
|
|
|
Creating new Arrays |
|
|
|
Dynamic Proxy Classes |
|
|
|
Proxy Definition |
|
|
|
Creating new Proxy |
|
|
|
InvocationHandler |
|
|
|
Proxy Class |
|
|
|
Classes |
|
|
|
When are Classes Loaded? |
|
|
|
How loadClass() works |
|
|
|
Implementing own ClassLoader |
|
|
|
The defineClass Method |
|
|
|
Java Annotation processing |
|
|
|
Declaring an Annotation Type |
|
|
|
Predefined Annotation Types |
|
|
|
How to write custom annoation |
|
9 |
Thread |
Understanding Threads |
|
|
|
Needs of Multi-Threaded Programming. |
|
|
|
Thread Life-Cycle |
|
|
|
Thread Priorities |
|
|
|
Synchronizing Threads |
|
|
|
Inter Communication of Threads |
|
|
|
Critical Factor in Thread -DeadLock |
|
|
|
High Level Concurrency Objects |
|
|
|
Thread Analysis with VisualVM |
|
10 |
Java Memory model |
String operations |
|
|
|
Java Memory model |
|
|
|
Stack based architecture |
|
|
|
Bytecode |
|
|
|
Runtime Data Areas |
|
|
|
Heap |
|
|
|
Method Area |
|
|
|
Runtime Constacnt pool |
|
|
|
Java Virtual Machine Stacks |
|
11 |
Strings |
String operations |
|
|
|
String immutability |
|
|
|
Tokenizing string |
|
|
|
String buffer/string builder |
|
12 |
Collection Framework |
The Java Collections Framework |
|
|
|
Collections Interfaces |
|
|
|
java.util.Collection |
|
|
|
java.util.List |
|
|
|
java.util.Map |
|
|
|
java.util.Set |
|
|
|
Concrete Collections |
|
|
|
java.util.ArrayList |
|
|
|
java.util.HashMap |
|
|
|
java.util.HashSet |
|
|
|
Iterating through Collections |
|
|
|
java.util.Iterator |
|
13 |
Lambda Expression & Stream API |
What is lambda expression |
|
|
|
Structure of lambda expression |
|
|
|
Passing code with behavior parametrization |
|
|
|
Tackling verbosity |
|
|
|
Real world examples |
|
|
|
Functional Interface |
|
|
|
Type checking, type inference, restriction |
|
|
|
Method reference |
|
|
|
Useful method to compose lambda expression |
|
|
|
What is stream |
|
|
|
Stream vs Collections |
|
|
|
External vs internal iteration |
|
|
|
Filtering and slicing |
|
|
|
Mapping |
|
|
|
Finding and matching |
|
|
|
Reducing |
|
|
|
Grouping |
|
|
|
Partitioning |
|
|
|
Putting it all in practice |
|
|
|
Numeric stream |
|
|
|
Parallel Stream |
|
14 |
Dates and Time Zones |
Computer Time |
|
|
|
Time Synchronization |
|
|
|
Human Time Interpretation |
|
|
|
java.util.Date |
|
|
|
java.time.LocalDate |
|
|
|
JSR310 vs Joda Time |
|
15 |
Logging |
Why log |
|
|
|
Logging API |
|
|
|
Jakarta Common Logging |
|
|
|
Log4j API |
|
|
|
Logger/Appender/Layout |
|
|
|
Logger Hierarchy |
|
|
|
Level of inheritance |
|
|
|
Appender Additivity |
|
|
|
Configuration |
|
|
|
How to analyze logs |
|
16 |
Java Database connectivity |
JDBC drivers |
|
|
|
Database operations |
|
|
|
Query, update and prepared statement |
|
|
|
Transaction management |
|
|
|
Using RowSet objects |
|
|
|
Using ResultSet objects |
|
|
|
Using stored procedure |
|
17 |
Java Servlet/JSP |
Understanding HTTP protocol |
|
|
|
What is Servlet |
|
|
|
Servlet Life cycle |
|
|
|
Web Server/Web container |
|
|
|
HttpServlet |
|
|
|
DoGet method/ DoPost Method |
|
|
|
Getting Parameters |
|
|
|
Session |
|
|
|
Filter |
|
|
|
What is JSP and why |
|
18 |
Build Tool |
About Gradle |
|
|
|
Gradle build script |
|
|
|
Defining Task |
|
|
|
Executing Task |
|
|
|
Built-in Task |
|
|
|
Build Life-Cycle |
|
|
|
Gradle plugins |
|