Java Programming

I have started to learn the Java programming language to compliment me using the Oracle database, a number of projects at work have been Java related so i wanted to know the language better and get a good understanding which will also help to become a better Oracle DBA.

I plan on taking the Java Certified exam in the future, but in the mean time I wanted a web site that contained the basics fundamentals of the language, as I do not use Java day to day I often forget some of the syntax.

I have also started to learn how to program games in the Java language as I find this a very interesting way to learn a new programming language, I am a very keen player of games (PC games) and always wanted to know how it is possible to create games to such a high level. I have read a few books listed below to start me on my journey and I highly recommend that you should purchase these books as they contain far more information than this web site contains.

Please feel free to email me any constructive criticism you have with the site as any additional Java knowledge or mistakes that I have made would be most welcomed.

The first 12 headings below are required for the Java 1.4 Certification exam.

Introduction to Java
  Introduction
  History of Java
  Structured Programming
  Java Environment - (editor, compiler, class loader, bytecode verifier and interpreter)

Introduction to Java Programming
  Java Programming Introduction
  Java Application Programming
  Java Applet Programming

Language Fundamentals
  Java Programming Language Keywords
  Java Primitive Data Types
  Java Variables
  Array Declaration, Construction and Initialization
  Using a Variable or Array Element that is Uninitialized
  Command-line Arguments to Main

Declarations and Access Control
  Declarations and Modifiers (private, protected, public, static, static block, etc)
  Declaration Rules (package, import, public class, main method)
  Interface Implementation

Operators and Assignments
  Assignment and Comparison Operators
  Instanceof Comparison
  Equality, Arithmetic and Shift Operators
  Bitwise and Bitwise Complement Operator
  Conditional Operator
  Primitive Casting
  Pass By Value Semantics
  Order Precedence Chart

Flow Control
  Branching - (if, if-else and switch)
  Loops - (while, do-while, for)
  Break and Continue
  Labeled and Unlabeled Statements
  Recursion

Exceptions and Assertions
  Introduction
  Catching - (try and catch)
  Finally
  Propagation
  Handling - (defining, hierarcy, handling, matching declaration and rethrowing)
  Assertions

Object Orientation, Overloading, Overriding, Constructors and Return Types
  Encapsulation
  Overrriden Methods
  Overloaded Methods
  Constructors and Instantiation
  this Reference - (this)
  Legal Return Types

Java.Lang - Strings, Math and Wrappers Classes
  String Class
  StringBuffer Class
  StringTokenizer
  Math Class
  Wrapper Classes
  Using equals()

Objects and Collections
  Overriding equals()
  Overriding hashCode()
  Collections - (Map, Set and List implementations)
  Garbage Collection - (gc(), finalize)

Inner Classes
  Inner Classes
  Method-Local Inner Class
  Anonymous Inner Class
  Static Nested Classes

Threads
  Defining, Instantiating and Starting
  Preventing Thread Execution
  Synchronizing Code
  Thread Interaction

File and Streams
  Files and Streams
  Sequential File Access - (creating, reading, updating)
  Random File Access - (creating, reading, writing, reading sequentially)
  File Class

Graphics and Java 2D
  Graphics Contexts and Graphics Objects
  Color Control
  Font Control
  Drawing Lines, Rectangles and Ovals
  Drawing Arcs
  Drawing Polygons and Polylines
  The Java2D API (drawing 2D Shapes)

Basic Graphical User Interface
  Swing Overview
  JLabel
  Event Handling Model
  JTextField and JPasswordField
  JButton
  JCheckBox and JRadioButton
  JComboBox
  Multiple-Section Lists
  Mouse Event Handling
  Adapter Classes
  KeyBoard Event Handling
  Layout Managers (Flowlayout, BorderLayout, GridLayout)
  Panels

Advanced Graphical User Interface
  JTextArea
  Creating a Customized Subclass of JPanel
  Creating a Self-Contained Subclass of JPanel
  JSlider
  Windows
  Designing programs that execute as Applets or Applications
  Using menus with Frames
 

JPopupMenus

  Pluggable Look-and-Feel
  JDesktopPane and JInternalFrame
  Advanced Layout Managers (BoxLayout, CardLayout, GridBagLayout)

Multimedia (images, animation, audio and video)
  Java Media Framework
  Loading, Displaying and Scaling images
  Loading and Playing audio clips
  The Java Media Player
  Animating a Series of Images
  Customizing Applets via the HTML param tag
  Image Maps

Remote Method Invocation (RMI)
  Defining and Implementing the Remote Interface
  Define the Client
  Compile and Execute the Server and the Client (rmiregistry)

Networking
  Manipulating URLs
  Reading a file on a Web Server
  Establishing a Simple Server (using Stream Sockets)
  Establishing a Simple Client (using Stream Sockets)
  Connectionless Client/Server Interaction with Datagrams
  Security and the Network

Data Structures
  Self-Reference Classes
  Dynamic Memeory Allocation
  Linked Lists
  Stacks
  Queues
  Trees

Java Utilities Packages
  Vector Class and Enumeration Interface
  Stack Class
  Dictionary Class
  Hashtable Class
  Properties Class
  Random Class

Bit Manipulation
  Bit Manipulation and the Bitwise Operators
  BitSet Class

Books
Java 2 Certified Programmer
Java 2 Sun Certified Programmer and Developer A well presented book to get you through the exam
Other Java books
Java How to Program - Deitel and Deitel This is really the only book you need if you are a new Java programmer, this book covers a lot of ground and many colleges and universities use this book.
Java in a Nutshell 5th Edition - David Flanagan The ideal reference book to have on your desktop
Java Cookbook - Ian F. Darwin Another book to have on the desktop, quick handy recipes.
Java Threads - Scott Oaks & Henry Wong A good examination of Threads, although this was the older version it was still a good read.
Beginning Java Objects from concepts to Code I really enjoyed this book, a good explanation on how to start and convert a project into a Java program, helped with some projects i was working on.
Java Gaming Books
Developing Games in Java - David Brackeen Out of all the books i have this was the best read, however you need to understand Java before attempting this book.
Advanced Java Game Programming - David Wallace Currently Reading this book .
Killer Game Programming in Java - Andrew Davison Next book on my list to read.