Introduction to Java
Why Java?
Java in the Real World
The Java success story: The JVM
The Java Ecosystem
Integration across the Enterprise
Getting Started with Java
Anatomy of a Java Program
Setting Up a Bare Bones Development Environment
Compiling and Running Your First Program
Language Basics - 1
Legal Identifiers
Code Conventions
Types of Data Primitive Types and Objects
Literals
Operators and Expressions
Declaring Variables
Declaring Constants
Flow Control
Language Basics - 2
Calling Methods
Creating a Method
Method Arguments
Returning from a Method
Overloading Methods
Getting Keyboard Input
Command-line Arguments
Using an IDE
Testing
Introducing Junit
Test-Driven Development
Introducing Objects
(Almost) Everything is an Object
Objects as a Way to Represent Real-World Things
Creating a New Object Three Steps
A Hierarchy of Objects
The Object object
A Tour of the Java API
Packages
Classpath
Object Construction
Constructors
Overloaded Constructors
Constructor Chaining
Superclass Constructors
Object-Oriented Programming
Encapsulation
Inheritance
Polymorphism
Abstract Classes
Interfaces
Development Topics
Debugging using an IDE
JavaDoc
Packaging Java Applications in JAR files
Access Control
Access Modifiers on Classes
Access Modifiers on Members
Statics
Static Variables and Methods
Assignments
The Stack and The Heap
Basic Assignments
Casting
Initialisation
Initialisation Blocks
Using Wrappers
Boxing
Garbage Collection
Exceptions
Checked and Unchecked Exceptions
Dealing with Exceptions
Declaring and Catching Exceptions
Creating your own Exceptions
Working with Strings and I/O
The String and StringBuilder and StringBuffer classes
File I/O
Dates, Numbers and Currencies
Serialisation
Collections Framework
Core Collection Types
Common Collection Classes
Sorting and Searching
Utility Classes
Generics
Why Generics?
Using Generic Classes
Declaring and Assigning Variables of Generic Types
Declaring Methods that take Generic Types
Compile-time versus Run-time
Generics and Legacy Code
Threads
Why use Threads?
Defining, Instantiating & Starting a new Thread
Thread States
Putting a Thread to Sleep
Concurrency Issues
Thread Synchronisation
Thread Interaction
GUI Programming
Swing
Using a GUI Builder |