The Google-It-Yourself Guide to Java Programming
There are many books, courses and tutorials out there that have created their own teaching concepts, each chapter building logically on top of the last, avoiding inconsistencies and leading the reader along. Some of the downsides of this approach are that simple topics get too cluttered with text where a picture or an example would do, that books will become way too long (1000+ pages) if they even attempt to cover most important topics or that they will become too short and editors have to leave out important details that leave the book not so “complete” and thorough as advertised anymore.
What I always like to do by myself – and now want to share with you – is making complete lists of important topics and then use Google to learn about them. This approach won’t work for everyone, as it doesn’t allow for misunderstanding the importance of certain details. If the question “How to calculate the ROI of an investment?” is googled, you’ll need to deep-dive into every element of that question’s answer that you don’t understand. It must be so that you can give a 5-10 minute lecture on the topic while being able to answer any further questions asked of you. There lies the beauty of googling – understanding further details is just another type and click away.
So try it. Below is a list of topics I found necessary to have a complete grasp of this topic. If you really dive into them, maybe test them for yourself, you will succeed. But always be active, don’t passively read topics you don’t care about – be like a detective researching a murder case. Also, always try multiple sources and use the one that seems best for you. Good luck!
Beginners
1. Core
1. Core
Java Introduction
Comparison with C++
Download and install JDK/JRE
The JDK Directory Structure
First Java Program through command prompt
First Java Program through Eclipse
2. Data types and Operators
Primitive Datatypes, Declarations, Ranges
Variable Names Conventions
Numeric Literals, Character Literals
String Literals
Arrays
Array of Object References
Accessing arrays, manipulating arrays
Enumerated Data Types
Non-Primitive Datatypes
Defining a class, variable and method in Java
Method Signature and method calls
Expressions in Java
Assignment Operator
Arithmetic Operators
Relational Operators
Logical Operators
Conditional Operators
Operator Precedence
Implicit Type Conversions
Upcasting and downcasting
Strict typing
Type conversion
3. Control Flow statements
Statements in Java
if, if-else, if-else-if
switch case
for statement
while and do-while loops
continue Statement
break Statement
return statement
4. OOP and its application in Java
Classes and Objects
Defining a class, Defining instance variables and methods
Creating objects out of a class
Method calls via object references
Abstraction
Interfaces and Abstract classes
Abstract and non-abstract methods
Inheritance
extends and implements keywords in Java
Super class and Sub class
this keyword, super keyword in Java for inheritance
Concrete classes in Java
Polymorphism
Compile time polymorphism
Overloading of methods
Overriding of methods
Method Overriding rules
Method overloading rules
Introduction to Object class and it’s methods
Encapsulation
Protection of data
Java Bean, POJO
Getters, Setters
Memory management in Java
Heap
Stack
5. Packages
Need for packages
What are packages
package declaration in Java
Import statement in Java
How do packages resolve name clashes?
6. Miscellaneous
Var-Args
Reference variables
local variables
instance variables
Memory allocations to variables
Double equals operator (==)
toString() method on an object
7. Statics
Static variables and methods
Static imports
Static initialization blocks
instance intialization blocks
Static concept in inheritance
8. Constructors
What are Constructors?
Properties of Constructors
Default and Parameterized Constructors
Rules for constructor implementation
Constructor Chaining
this call and super call for constructors
Constructors for Enumerated Data Types
Constructors concept for Abstract classes and interfaces
9. Exceptions in Java
What are Exceptions?
Need for exceptions
How can Exceptions be coded in Java?
API hierarchy for Exceptions
Types of Exceptions
try, catch, finally, throw, throws
Rules for coding Exceptions
Declaring Exceptions
Defining and Throwing Exceptions
Errors and Runtime Exceptions
Custom Exception
What are Assertions?
Enabling and disabling assertions in development environment
10. Strings in Java
What are Strings?
String heap memory
Constant Pool memory
Immutability in Strings
String creation on heap and constant pool
Method APIs on String, operations on Strings
Mutability of String Objects
StringBuilder and StringBuffer
Splitting of Strings
StringTokenizer class
11. Collection Framework in Java
The Collections Framework
The Set Interface
Set Implementation Classes
The List Interface
List Implementation Classes
The Map Interface
Map Implementation Classes
Queue Interface
Queue Implmentation classes
Utility classes
Sorting collections using utility methods
equals() and hashCode contract in Java collections
overriding equals and hashCode methods in Java
New Collections added in Java 1.6
Primitive wrapper classes and all its method APIs
12. Generics
Generics for Collections
Generics for class
Generics for methods
13. Input-Output in Java
What is a stream?
Overview of Streams
Bytes vs. Characters
Overview of the entire Java IO API
Reading a file; writing to a file using various APIs
Reading User input from console
PrintWriter Class
14. Serialization
Object Serialization
Serializable Interface
Serialization API
ObjectInputStream
ObjectOutput
Transient Fields
readObject and writeObject
15. Inner Classes
Inner Classes
Member Classes
Local Classes
Anonymous Classes
Static Nested Classes
16. Threads in Java
Non-Threaded Applications
Threaded Applications
Process based multitasking Vs Thread based multitasking
Thread API in Java
Creating Threads
States of a Thread
Sychronization for threads
static and non-static synchronized methods
concept of object and class locks
wait, notify and notifyAll methods for inter-thread communication
17. Applets
What are applets?
Need for Applets
Different ways of running an applet program
Applet API hierarchy
Life Cycle of an applet
Even Handlers for applets, mouse events, click events
18. Swing GUI
Introduction to AWT
Introduction to Swing GUI
Advantages of Swing over AWT
Swing API
Swing GUI Components
Event Handlers for Swing
Sample Calculator application using Swing GUI and Swing Event handling
19. JDBC
What is JDBC, introduction
JDBC features
JDBC Drivers
Setting up a database and cretaing a schema
Writing JDBC code to connect to DB
CRUD Operations with JDBC
Statement types in JDBC
Types of Rowset, ResultSet in JDBC
20. Access Modifers in Java
What are access modifiers?
Default
Protected
Private
Public
ADVANCED JAVA Syllabus: Servlets and JSPs
1. Basics of a Web application
What is a web application?
What is a web client and web server?
How do client and server communicate?
HTTP protocol basics
HTML language basics
What is a TCP/IP port, URL?
Need for a Web Container
2. Web Container and Web Application Project Set up
Set up Tomcat Container on a machine
Set up a Servlets JSP project in Eclipse
Configure dependency of Servlet JSP APIs
Web application project struture
3. Servlets
What are Servlets?
How do Servlets look in code?
HTTP Methods; GET, POST, PUT, DELETE, TRACE, OPTIONS
GET/POST request; differences between the two
Servlet Lifecycle
Servlet Context and Servlet Config
Servlet Forwarding and Redirection of requests
4. Session Management
What is a session?
How to get a session?
Session information passing between client and server
Session information passing mechanisms – Cookies, Rewriting
How to destroy a session
5. JSPs
Introduction to JSP
need for JSPs
JSP Basic HTML tags
JSP Lifecycle
6. JSP Elements
Scriptlets
JSP Expressions
JSP Declarations
Significance of above elements and fitment into the JSP Lifecycle
What are Directives in JSP?
JSP Page Directive
JSP Include Driective
JSP Taglib Directive
7. JSP Tag library
JSP Standard Actions
JSP Expression Language
JSTL basics and it’s usage
JSP Need for Custom Tag Library
Custom Tag Library implementation
Struts Framework (version 2.x)
1. Basics of MVC
What is MVC?
MVC Type1 and Type2 architecture
Why Struts framework?
Struts 1 overview
Struts 1 and Struts 2 comparison
2. Struts 2 Architectutre
Components of Model, Views and Controller in Struts Framework
Struts 2 Interceptors
Struts 2 Model/Action classes
Struts 2 Value Stack
Struts 2 OGNL
Struts 2 configurations; framework and application architecture
Struts 2 Declarative and Annotations configuration approaches
3. Struts 2 set up and first Action class
Struts 2 Download JAR files
Struts 2 project build up and Configuration files
Struts 2 build Action class
intercept an HTTP request via Struts2 framework using Action class
Struts 2 Defining data and business logic in Action class
Struts 2 Preparing and Forwarding control to Views
4. Struts 2 Interceptors
Struts 2 What are Interceptors
Struts 2 Responsibilities of an Interceptor
Mechanism of Interceptor calling in Struts 2
Struts 2 Defining Interceptors
Struts 2 Defining Interceptor stacks
Struts 2 Defining Custom Interceptors
5. Struts 2 Tag Library
Introduction to tag library of Struts 2 and it’s usage
6. Struts 2 Validations
Struts 2 Validations using Validateable interface
Struts 2 Workflow interceptor mechanism for validations
Struts 2 Validations using Validateable interface
Struts 2 Validation Framework introduction and architecture
Struts 2 Validating user input with above two mechanisms
7. Struts 2 Tiles Frameworks
Struts 2 Introduction to Tiles in a page
Struts 2 Tiles framework introduction
Struts 2 Defining tiles.xml file
Struts 2 Configuring pages for tiles
A complete Tiles example with Struts2
Hibernate Framework (version 3.x)
1. Introduction
Hibernate What is ORM principle?
Hibernate Why ORM?
Hibernate ORM implementations
2. Hibernate Architecture
Introduction to Hibernate
Hibernate Architecture
Hibernate What are Peristent classes?
3. Hibernate CRUD
CRUD Setting up Hibernate project
CRUD Configuring all JARs and XML files
CRUD Setting up connection to DB using Hibernate
CRUD Performing basic CRUD operations using Hibernate API
CRUD Object Identity; Generator type classes
CRUD Using SQL with Hibernate
CRUD Using HQL
CRUD Using Criteria queries
4. Mapping Collections and Associations
define sets, mas, lists in Hibernate
Hibernate Association Mappings
5. Hibernate Caching
Hibernate What is caching?
What are the types of caching in Hibernate?
Explanation of various caching mechanisms in Hibernate
6. Using Hibernate Annotations
using Hibernate Annotations
Spring Framework (version 3.x)
1. Introduction to spring
What is Spring?
Spring Architecture components
2. Introduction to all modules of spring
Spring Bean Factory
Spring Application Context
Spring DI
Spring AOP
Spring Integration; Spring messaging, Spring JMS
Spring MVC
Spring DAO
3. Setting up spring
Setting up of Spring framework
Spring Download JARs
Spring Configure XML files
4. Dependency Injection
Spring What is Dependency Injection?
How is it implemented using Spring Framework?
Bean Wiring mechanisms in Spring
5. Spring AOP
What is Spring AOP?