JV-200: Advanced Java Programming – J2SE

Become an EPIC Affiliate

To view the class schedule you need to become an Affiliate

  • Largest “Guaranteed To Run” public technical training schedules available
  • Easy to become an Affiliate – no charge or fee
Become an EPIC Affiliate

already an Affiliate?  Login

About this Course

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.

Audience Profile

Anyone who has had some background in programming Java with J2SE but would like to brush up and learn new skills.

At Course Completion

Students will have an overview of Java’s libraries for handling special requirements and will build competency in J2SE Java programming.

Outline

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

URLConnection class

Prerequisites

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