Overview
This Java training course is intended for students without an extensive programming background. It covers most Java
syntax elements, concentrating on fundamental and universally useful elements, while providing an overview of many
more advanced elements. Students will learn to write useful Java classes, applying Object-Oriented concepts such
as inheritance, and create Java programs that work with these classes.
The class introduces the concept of objects as one of the first topics, in order that the later concepts are covered
with an OO perspective. The class is based on Java 7.
Audience
Students who can benefit from this course are individuals who have basic mathematical, logical, and analytical
problem-solving skills and who want to begin learning the Java programming language.
Prerequisites
Experience with any other programming language (e.g.,Visual Basic, VBScript, C/C++, Javascript or Perl).
Course Format
This is a hands-on course. We apply a powerful learning cycle of short lecture, examples and labs on each topic.
Each student gets lab code and the entire course content printed out (organized in a ring binder).
Course Duration
Five days (35 hours), 9:00 AM-5:00 PM (1h lunch break); typically ends by 4:00 PM on the last day.
Course Details
- Getting Started with JSE
- What is Java?
- How to Get Java
- A First Java Program
- Compiling and Interpreting Applications
- The JDK Directory Structure
- API Documentation
- Language Fundamentals
- A Java Program
- If Statements
- Switch Statements
- Loop Statements
- Syntax Details
- Primitive Datatypes
- Variables
- Expressions in Java
- Strings
- Arrays
- Enhanced for Loop
- Objects and Classes
- Defining a Class
- Creating an Object
- Instance Data and Class Data
- Methods
- Constructors
- Access Modifiers
- Encapsulation
- Using Java Objects
- Printing to the Console
- printf Format Strings
- StringBuilder and StringBuffer
- Methods and Messages
- toString
- Parameter Passing
- Comparing and Identifying Objects
- Destroying Objects
- Using the Primitive-Type Wrapper Classes
- Autoboxing
- Inheritance in Java
- Inheritance
- Inheritance in Java
- Casting
- Method Overriding
- Polymorphism
- super
- The Object Class
- Advanced Inheritance and Language Constructs
- Enumerated Types - Pre-Java 5.0
- Enumerated Types Today
- More Enumerated Types
- Abstract Classes
- Interfaces
- Using Interfaces
- Comparable
- Collections
- Annotations
- Generics
- Packages
- The import Statement
- Static Imports
- CLASSPATH and Import
- Defining Packages
- Package Scope
- Exception Handling
- Exceptions Overview
- Catching Exceptions
- The finally Block
- Exception Methods
- Declaring Exceptions
- Defining and Throwing Exceptions
- Errors and RuntimeExceptions
- Assertions
- Input/Output Streams
- Overview of Streams
- Bytes vs. Characters
- Converting Byte Streams to Character Streams
- File Object
- Binary Input and Output
- PrintWriter Class
- Reading and Writing Objects
- Basic and Filtered Streams
- Core Collection Classes
- The Collections Framework
- The Set Interface
- Set Implementation Classes
- The List Interface
- List Implementation Classes
- The Queue Interface
- Queue Implementation Classes
- The Map Interface
- Map Implementation Classes
- Collection Sorting and Tuning
- Using Java 5.0 Features with Collections
- Sorting with Comparable
- Sorting with Comparator
- Sorting Lists and Arrays
- Collections Utility Methods
- Tuning ArrayList
- Tuning HashMap and HashSet
- Inner Classes
- Member Classes
- Local Classes
- Anonymous Classes
- Instance Initializers
- Static Nested Classes
- Introduction to Threads
- Non-Threaded Applications
- Threaded Applications
- Creating Threads
- Thread States
- Runnable Threads
- Coordinating Threads
- Interrupting Threads
- Runnable Interface
- ThreadGroups
- Thread Synchronization and Concurrency
- Race Conditions
- Synchronized Methods
- Deadlocks
- Synchronized Blocks
- Thread Communication — wait()
- Thread Communication — notify()
- Java 5.0 Concurrency Improvements
- Thread-Aware Collections
- Executor
- Callable
- Introduction to Swing
- AWT and Swing
- Displaying a Window
- GUI Programming in Java
- Handling Events
- Arranging Components
- A Scrollable Component
- Configuring Components
- Menus
- Using the JfileChooser
- Swing Events and Layout Managers
- The Java Event Delegation Model
- Action Events
- List Selection Events
- Mouse Events
- Layout Managers
- BorderLayout
- FlowLayout
- GridLayout
- BoxLayout
- Box
- JtabbedPane
- Java Performance Tuning
- Is Java Slow?
- Don't Optimize Until You Profile
- HotSpot Virtual Machine
- Garbage Collection Concepts
- Garbage Collection Generations
- Garbage Collection in Java 5.0
- Object Creation
- String, StringBuffer, and StringBuilder
- Synchronized
- Inline methods
- Tuning Collections
- Appendix A - Networking with Sockets
- Clients and Servers
- Ports, Addresses, and Protocols
- The Socket Class
- Communication Using I/O
- Servers
- The ServerSocket Class
- Concurrent Servers
- The URL Class
- The URLConnection Class
- Appendix B – Regular Expressions
- Pattern Matching and Regular Expressions
- Regular Expressions in Java
- Regular Expression Syntax
- Special Characters
- Quantifiers
- Assertions
- The Pattern Class
- The Matcher Class
- Capturing Groups
- Appendix C - JEE Overview
- Introduction to JEE
- JSE Building Blocks
- Servlets, JSPs, and Web Applications
- Web Services
- Enterprise JavaBeans
- Additional JEE APIs
- JEE Clients
- The JEE Platform