Java
by Osama Ibrahim
1. OOPs
1.1. Encapsulation
1.1.1. Abstraction
1.2. Inheritance
1.2.1. Interface - Abstract Class
1.2.1.1. Casting
1.2.2. IS-A vs HAS-A Relationships
1.2.3. Aggregation vs Compasition
1.3. Plymorphism
1.3.1. Method overloading vs Method Overloading
1.3.2. compile time vs Runtime
2. JVM
2.1. Stack vs Heap Memory
2.2. Garbage Collection
2.3. Class loaders
2.4. JRE, JVM, JDK
3. JavaEE Basics
3.1. Packaging the Applications
3.1.1. WAR
3.1.2. EAR
3.2. Basics
3.2.1. MVC
3.2.2. Servlets
3.2.2.1. Listeners
3.2.2.2. Lifecycle
3.2.3. JSPs
3.3. APIs
3.3.1. JPA
3.3.2. JAX-WS
3.3.2.1. SOAP, WSDL Webservices basics
3.3.2.2. Contract first vs
3.3.3. JAX-RS
3.3.3.1. RESTful and its advantages
3.3.4. JSF
4. Inner/Nested Classes
5. Threads
5.1. Creating threads
5.2. Synchronization
5.3. Multitasking
5.4. Thread Transitions
6. Collections
6.1. Map, list and Set
6.2. Equals - Hashcode
6.3. Legacy - Synchronized Classes
7. APIS
7.1. Java IO
7.2. String - StringBuffer - String Builder
7.3. Files
7.4. XML
7.4.1. SAX Based & DOM Based
7.4.2. JAXB - Java API for XML Binding
8. Access specifier
8.1. Access modifier
8.1.1. Public
8.1.2. protected
8.1.3. deafult
8.1.4. private
8.2. final
8.3. static
8.4. synchronized
8.5. abstract
8.6. transient
8.7. volatile
9. Marker Interface
9.1. serialization
9.2. Clonnable
9.2.1. Shallow copy vs Deep Copy