×

ATJ2SE - Advanced Java Programming – J2SE

This hands-on course class is designed as a continuation of course JV-105 – Fundamentals of OO using Java. It quickly reviews object oriented programming and concentrates on building strength in advanced skills using J2SE and Eclipse.

Click here to print this page »

Prerequisites


Either Java 105 or experience within the last few years of programming Java at a basic level.

Detailed Class Syllabus


OO Analysis & Design


Coupling
Cohesion
Composition
Composition vs. inheritance
Inheritance
Object layers
Design patterns

Inheritance advanced


Abstract vs. concrete
Inheriting an abstract class
Constructors & inheritance
Construction process
Object layers
Chaining constructors with Eclipse
Superclass references
Casting back to subclass references
Polymorphism
Polymorphic methods
Object oriented principles

Interfaces


Definition
Typical discovery
Creating an interface
Writing interface methods
Implementing interfaces
Eclipse and interfaces

Class organization


Packages
Declaring a package
Nested packages
Qualified class names
Providing access to package classes
Package access keywords

Exception Handling


Old school
OO school
OO error handling
try and catch
Catching what?
Two exception types
Unchecked exceptions - Eclipse
Checked exceptions - Eclipse
Multiple catch blocks
Defining your own error states
Rethrowing
finally
Defer error handling
Throwable
Inheritance structure
Try-with-resources
Multi-catch

Programmer features


varargs
printf( )
enhanced for loop
Autoboxing / unboxing
Static imports

Generics


Definition
Convenience
Comparable interface

Collections


Collection vs. array
Architecture
Other collections
Four properties of data structures
Collection superinterface
List interface
Iterators
List Iterators
Set interface
SortedSet interface
Comparator
Map interface
Map.Entry
SortedMap interface
Collections class
Arrays class
Properties and Preferences
Early collections

Debugging


Old school
Better - System.err
Better yet - redirect to file
Redirect to file - Eclipse
The best - Logger
Assertions
Debugger
Debugger features
Debugger flow control
Debugger variables
Debugger watch

Strings and Regex


The String cache
equals( )
String methods
Expensive concat( )
Regex usage
Regex syntax
Pattern class
Matcher class

Threads


Concepts
Definitions 1
UML activity diagram
Thread basics
Threads with inheritance
Definitions 2
Running threads
UML sequence diagram
Four states
Thread properties
Threads by interface
The target
The target container
Common thread pattern
Enhancements
UML class diagrams
Timing threads
Forks and joins
Code locks (monitors)
Synchronized blocks
Wait / notify
Stopping / interrupting
Thread scheduling
Thread scheduling by time
volatile
Thread groups
Standard threads / priority
Use need-to-know
Deadlock
Pipes
Daemons
Concurrency utilities
Books

Nested classes


Inner classes
Nested or inner classes
Creating an inner class object
Accessing with inner classes
Static inner class
Static inner class syntax
Local class
Anonymous class
Anonymous classes in Swing

Dates & Time


java.util.Date
java.text.DateFormat
DateFormat methods
DateFormat examples
String --> Date
java.text.SimpleDateFormat
SimpleDateFormat patterns
java.util.GregorianCalendar

Enumerations


The enum
Enum options
syntax
Enums in the APIs

I/O


History
Byte streams
Character streams
Predefinied streams
Basic pattern
Bytes to characters
File class
Scanner class
Using Swing’s file chooser
Text files
PrintWriter class
Write a text file 1
Persist an entity
Write a text file 2
Read a file
Binary files
File input - binary
File output - binary
Object files
Serialization
Write objects
Read objects
Random access files

Networking


java.net.Socket class
A socket test
InetAddress class
java.net.ServerSocket class
An echo server
A client