# Java Tutorial

Welcome to the Java Tutorial, a learning project of the Java Center! In this tutorial, you will learn all of the fundamentals of Java programming through examples and step-by-step explanations! This tutorial is designed for beginning programmers and programmers of a different language alike. A list of contributors to this tutorial can be found at bottom of the page.

## How to use

All of the lessons can be found on the bottom of the page. Each page should have a discussion page if anyone has a specific question on the topic covered in the lesson. General questions/comments should be left in this discussion page.
Note: Since this tutorial has just begun, I apologize as some things may be vague and cluttered. If anyone wishes to proofread what I have written and correct any errors of any kind, it will be much appreciated.

## Java tutorial
### Getting Started

* Installing Java
* Choosing the right text editor

### Beginning Java

* Hello World!
* Variables
* Control Structures I - Decision structures
* Control Structures II - Looping
* Methods
* Arrays
* String and Character Manipulation

### Object-Oriented Programming

* Basics of Objects
* Access modifiers - public and private
* Interfaces and abstract classes
* Inheritance and polymorphism

### Intermediate Java

* Exception Handling
* Threads
* Files and Streams
* XML Handling

### Graphical User Interfaces (GUIs)

* Beginning GUIs
* More Components
* Applets
* Overview of Swing components

### Deployment

* JARs
* Java Web Start

### Other

* Math in Java

## Trails

The following list of learning trails is almost identical to the trails found in the Sun Microsystems/Oracle Java Tutorial. The trails can be used to offer different learning trails towards more specific learning goals. In order to improve on the original Java Tutorial the trails should specify preconditions, learning objectives and further reading. Further trails can be added as required, there is no need to follow the structure of the original Java Tutorial. Trails can also link to the Wikibook Java Programming.
| Trail: 2D Graphics Trail: Annotations Trail: Apache XML Graphics Project Trail: Collections Trail: Creating a GUI With Swing Trail: Custom Networking Trail: Debugging Trail: Deployment Trail: Essential Classes Trail: Full-Screen Exclusive Mode API Trail: Generics Trail: Getting Started Trail: Java Web Start Trail: Graphical User Interfaces | Trail: Internationalization Trail: JDBC Database Access Trail: Java API for XML Processing (JAXP) Trail: Java Management Extensions (JMX) Trail: Java Naming and Directory Interface Trail: JavaBeans Trail: JavaFX Technology Trail: Javadoc Trail: Java and Javascript Trail: Java software testing Trail: Javolution Trail: Learning the Java Language Trail: NASA World Wind Trail: OpenOffice Java API | Trail: Preparation for Java Programmer Language Certification Trail: Qt Jambi Trail: Java-Gnome Trail: The Standard Widget Toolkit (SWT) Trail: Java Web Toolkit (JWT) Trail: Eclipse XML Window Toolkit (XWT) Trail: RMI Trail: Security Features in Java Trail: Sockets Direct Protocol Trail: Sound Trail: The Extension Mechanism Trail: The Reflection API |

## Java projects

These Java projects are designed for you to practice the skills you learn from the lessons found in this tutorial. Links to appropriate projects can be found in lessons as you read for your convenience.
* Basic projects
* Advanced projects

## Active participants

    Zchenyu - basically writing the tutorial
    Softtest123 - helping out from time to time.
    Aravind V R - joined recently.
    ThePCKid - basicly helping with the tutorial.

## Suggested reading

* ↑ Sun Java Tutorial
* ↑ Java Programming