Description: This hands on course introduces experienced programmers to Sun's Java™ technology and Java programming techniques. The Java platform provides an object-oriented, portable and robust framework for application development. Included are core language concepts including fundamental data types, flow control, and standard function libraries. The course emphasizes object oriented programming and modular design to support distributed development environments. Included are the design of classes and objects, inheritance and polymorphism, and the details about creating programs for use on a distributed network, with emphasis on JSP, Servlets, and JDBC.The course also includes coverage of the Java Collections API, fundamental I/O, exceptions, and exception handling. Students are introduced to GUI programming using the Swing library as an example of a GUI API.
The course is designed to leverage the participants' existing programming skills and to highlight the new and extended features of the Java programming framework as compared to other common languages. Comprehensive lab exercises provide hands on practice crucial to developing competence and confidence with the new skills being learned. Students who no not already possess fundamental programming skills should attend the Learning to Program with Java course rather than this course.
Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object-Oriented Design (OOD) is helpful, but not required.
Overview of Topics Covered:
Introduction to Java
Cornerstones of the Java Platform
Java Advantages
The Java Programming Language
The Java Virtual Machine (JVM)
Core Java Libraries
Extension Libraries
Developing Software Using Java
Applications, Applets, Web Components
Java SE, Java EE, Java ME
Installing the JDK
Compiling and Running Java from the Command Line
The main() Method
package and import Statements
JAR Files
Class Loading and CLASSPATH
Online API Documentation
JDK Tools
Java Integrated Development Environments (IDEs)
Java Syntax Fundamentals
Comments
Identifiers
Reserved Words
Classes
Statements and Blocks
Variables, Constants, Literals
Scope of Variables
Methods
Method Overloading
static Members
Static Import (Java SE 5+)
Naming Conventions
Data Types and Operators
Primitive Types
Boolean, Integer, Floating-Point and Character Types
Unicode Characters and Strings
Type Conversion and Casting
Expressions and Operators
Arithmetic Operators
Increment/Decrement Operators
Division and Remainder Operators
Assignment Operators
Relational Comparison and Logical Operators
Conditional Operator
Bitwise Operators
Order of Evaluation
Operator Precedence and Associativity
Flow of Control
if/else statement
Combining ifs
while and do/while Loops
for Loop and Loop Counters
break and continue
Break to Labeled Loops
switch Statement
return Statement
Exit Sstatus
Using Java Classes and Objects
Classes as Data Types
Objects and References
Memory in the JVM
Object Initialization
Objects as Arguments to Methods
Objects as Return Values
Garbage Collection
Primitive Wrapper Classes - Integer, Double, etc.
Autoboxing and Unboxing (Java SE 5+)
Strings
String Manipulation
StringBuffer and StringBuilder
Simple Number/String Conversion
Arrays
Declaring and Allocating Arrays
Multi-Dimensional Array
Array Literals
The java.util.Arrays Class
Command-Line Arguments
Enhanced for Loop (Java SE 5+)
Arrays as Method Arguments
Variable-Length arglists (varargs) (Java SE 5+)
Autoboxing and varargs
Developing Java Classes
Object-Oriented (OO) Concepts
Methods, member variables
Accessing Members
Tight Encapsulation
Access Control Modifiers
Constructors and Finalizer
Using this
Class Variables - Static Members and Static Blocks
Instance Variables
Local Variables
Variables and Initialization
Inner Classes
Anonymous Classes
JavaBeans
Driver Classes
Inheritance
Extending Java Classes
Accessing Superclass Constructors and Members
Overriding Methods
Abstract CLasses and Methods
Polymorphism
Overriding Methods of java.lang.Object
equals(), toString(), hashCode();
Final Classes and Methods
Multiple Inheritance
Interfaces
Casting Object References
Documenting Classes with the javadoc Utility
Unit Testing
Type Safety
Annotations (Java SE 5+)
Java SE Built-In Annotations
Defining New Annotations
Enumerated Types (Java SE 5+)
Constants and Contrained Values
Defining and Declaring enums
enum Values
enums and switch Statements
values() and valueOf()
Generic Classes (Java SE 5+)
Generic Type Parameters
Using Type Parameters inClass, Variable and Method Declarations