Advanced Java Programming - J2SE

Elevate your Java programming skills with Advanced Java Programming - J2SE, designed for experienced developers to master the complexities of object-oriented programming using J2SE and Eclipse, ensuring proficiency in modern Java development.

Course Thumbnail

Essential Skills Gained

Checkmark

Implement advanced object-oriented programming techniques in Java.

Checkmark

Master exception handling and debugging in complex Java applications.

Checkmark

Develop proficiency with Java’s collection framework and generics.

Checkmark

Enhance concurrency control and networking skills in Java.

Format

  • Instructor-led
  • 5 days with lectures and hands-on labs.

Audience

  • Experienced Java Developers
  • IT Professionals seeking Java mastery
  • Software Engineers
  • Java Programmers transitioning to advanced topics

Description

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.

Calendar icon

Upcoming Course Dates

No upcoming dates. Please check back later.

Course Outline

Download PDF

OO Analysis & Design

  1. Coupling

  2. Cohesion

  3. Composition

  4. Composition vs. inheritance

  5. Inheritance

  6. Object layers

  7. Design patterns

Inheritance advanced

  1. Abstract vs. concrete

  2. Inheriting an abstract class

  3. Constructors & inheritance

  4. Construction process

  5. Object layers

  6. Chaining constructors with Eclipse

  7. Superclass references

  8. Casting back to subclass references

  9. Polymorphism

  10. Polymorphic methods

  11. Object oriented principles

Interfaces

  1. Definition

  2. Typical discovery

  3. Creating an interface

  4. Writing interface methods

  5. Implementing interfaces

  6. Eclipse and interfaces

Class organization

  1. Packages

  2. Declaring a package

  3. Nested packages

  4. Qualified class names

  5. Providing access to package classes

  6. Package access keywords

Exception Handling

  1. Old school

  2. OO school

  3. OO error handling

  4. try and catch

  5. Catching what?

  6. Two exception types

  7. Unchecked exceptions - Eclipse

  8. Checked exceptions - Eclipse

  9. Multiple catch blocks

  10. Defining your own error states

  11. Rethrowing

  12. finally

  13. Defer error handling

  14. Throwable

  15. Inheritance structure

  16. Try-with-resources

  17. Multi-catch

Programmer features

  1. varargs

  2. printf( )

  3. enhanced for loop

  4. Autoboxing / unboxing

  5. Static imports

Generics

  1. Definition

  2. Convenience

  3. Comparable interface

Collections

  1. Collection vs. array

  2. Architecture

  3. Other collections

  4. Four properties of data structures

  5. Collection superinterface

  6. List interface

  7. Iterators

  8. List Iterators

  9. Set interface

  10. SortedSet interface

  11. Comparator

  12. Map interface

  13. Map.Entry

  14. SortedMap interface

  15. Collections class

  16. Arrays class

  17. Properties and Preferences

  18. Early collections

Debugging

  1. Old school

  2. Better - System.err

  3. Better yet - redirect to file

  4. Redirect to file - Eclipse

  5. The best - Logger

  6. Assertions

  7. Debugger

  8. Debugger features

  9. Debugger flow control

  10. Debugger variables

  11. Debugger watch

Strings and Regex

  1. The String cache

  2. equals( )

  3. String methods

  4. Expensive concat( )

  5. Regex usage

  6. Regex syntax

  7. Pattern class

  8. Matcher class

Threads

  1. Concepts

  2. Definitions 1

  3. UML activity diagram

  4. Thread basics

  5. Threads with inheritance

  6. Definitions 2

  7. Running threads

  8. UML sequence diagram

  9. Four states

  10. Thread properties

  11. Threads by interface

  12. The target

  13. The target container

  14. Common thread pattern

  15. Enhancements

  16. UML class diagrams

  17. Timing threads

  18. Forks and joins

  19. Code locks (monitors)

  20. Synchronized blocks

  21. Wait / notify

  22. Stopping / interrupting

  23. Thread scheduling

  24. Thread scheduling by time

  25. volatile

  26. Thread groups

  27. Standard threads / priority

  28. Use need-to-know

  29. Deadlock

  30. Pipes

  31. Daemons

  32. Concurrency utilities

  33. Books

Nested classes

  1. Inner classes

  2. Nested or inner classes

  3. Creating an inner class object

  4. Accessing with inner classes

  5. Static inner class

  6. Static inner class syntax

  7. Local class

  8. Anonymous class

  9. Anonymous classes in Swing

Dates & Time

  1. java.util.Date

  2. java.text.DateFormat

  3. DateFormat methods

  4. DateFormat examples

  5. String --> Date

  6. java.text.SimpleDateFormat

  7. SimpleDateFormat patterns

  8. java.util.GregorianCalendar

Enumerations

  1. The enum

  2. Enum options

  3. syntax

  4. Enums in the APIs

I/O

  1. History

  2. Byte streams

  3. Character streams

  4. Predefinied streams

  5. Basic pattern

  6. Bytes to characters

  7. File class

  8. Scanner class

  9. Using Swing’s file chooser

  10. Text files

  11. PrintWriter class

  12. Write a text file 1

  13. Persist an entity

  14. Write a text file 2

  15. Read a file

  16. Binary files

  17. File input - binary

  18. File output - binary

  19. Object files

  20. Serialization

  21. Write objects

  22. Read objects

  23. Random access files

Networking

  1. java.net.Socket class

  2. A socket test

  3. InetAddress class

  4. java.net.ServerSocket class

  5. An echo server

  6. A client

  7. URLConnection class

Your Team has Unique Training Needs.

Your team deserves training as unique as they are.

Let us tailor the course to your needs at no extra cost.