Call us at 1-800-413-0939
Hands On Technology Transfer
gsa

Java Programming Course

Attend face-to-face, remote-live, on-demand or on site at your facility.

On-Demand Training with Personal Facilitation
Top

Java™ Programming

Delivery Options: Attend face-to-face in the classroom, remote-live or via on-demand training.

Pricing

Face-to-face or remote-live: $2495

On-demand: $1495

Discounts: We offer multiple discount options. Click here for more information.

Duration

Face-to-face or remote-live: 5 Days

On-demand: Approximately 35 hours of coursework with personal facilitation, to be completed in a four week span.

Registration

Face-to-face: Click here to view our schedules and register for in-person sessions.

Remote-live: Click here to register for live remote class sessions within a date range of your choosing.

On-demand: Click here to register for on-demand training with personal facilitation, on a start date of your choosing.

Students Will Learn

  • The advantages of using the Java platform
  • How to code, compile and run standalone object-oriented Java programs
  • Designing and writing Java classes suitable for a given application domain
  • Writing robust Java software that gracefully handles run-time problems
  • Coding Java programs using correct syntax and block structure
  • Using Java to read from and write to files
  • Manipulating files and directories in a platform-neutral way
  • Writing multithreaded software
  • Writing Java client/server software using TCP/IP networking
  • Accessing and updating relational databases from Java software
  • Writing and running servlets and JSPs
  • Writing web-based applications in Java
  • How to download, install and use the tools in the Java Development Kit

Course Description

This hands on Java programming course introduces experienced programmers to 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.

The Java training 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 hands on exercises are integrated throughout to reinforce learning and develop real competency.

Students who do not already possess fundamental programming skills should attend the Learning to Program with Java course rather than this course.

Course Prerequisites

Basic programming skills in a structured language. Knowledge and experience with Object-Oriented Design (OOD) is helpful, but not required when learning to code Java.

Course Overview

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
  • 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 Status
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
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
  • Arrays as Method Arguments
  • Variable-Length Arglists (varargs)
  • 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 Built-In Annotations
  • Defining New Annotations
  • Enumerated Types
  • Constants and Constrained Values
  • Defining and Declaring enums
  • enum Values
  • enums and switch Statements
  • values() and valueOf()
  • Generic Classes
  • Generic Type Parameters
  • Using Type Parameters inClass, Variable and Method Declarations
  • Using a Generic Class
  • Bounded Type Parameters
The Collections Framework
  • The java.util Package
  • Container Objects
  • Arrays as Containers
  • Legacy Container Classes - Vector, Hashtable, Enumeration
  • Legacy Container Generic Forms
  • Collections Interfaces - Collection<E>, List<E>, Set<E>, SortedSet<E>
  • Map Interfaces - Map<K,V>
  • Coding to the Interface
  • List<E>, Set<E>, Queue<E> and Map<K,V> implementations
  • Iterating Collections with the Iterator<E> Interface
  • Collections and the Enhanced for Loop
  • Choosing the Correct Implementation and Interface
  • The java.util.Collections Utility Class
  • Sorting Using the Comparable Interface
Exceptions and Exception Handling
  • The Throwable Hierarchy: Error, RuntimeException and Checked Exception
  • Methods that Throw Exceptions
  • Handling Exceptions with try-catch-finally Blocks
  • Application-Defined Exceptions
  • Throwing an Exception
  • Assertions
  • Enabling Assertions at Run-Time
Basic Input and Output (I/O)
  • The java.io Package
  • Using Stream Classes
  • Combining Streams
  • flush() and close()
  • Console Input and Output
  • Navigating the File System
  • File Streams
  • Character File Input and Output
  • Reader and Writer Interfaces
  • BufferedReader and BufferedWriter
  • Binary File I/O - DataOutputStream and DataInputStream
  • Object Streams - ObjectInputStream and ObjectOutputStream
  • Serialization and Versioning
  • Random Access Files
  • Formatted Input and Output
  • Formatter
  • Format specifiers, printf() and format()
  • java.text Classes for Formatting Dates, Numbers, Currencies
  • Input with Scanner
Network Programming
  • The java.net Package
  • IP Addresses and Port Numbers
  • Client/Server Socket Programming
  • URL and URLConnection Classes
  • Communicating with Web Servers
  • HTTP GET and POST Operations
  • Posting to a Server-Side Program
Threads
  • Life and States of a Thread
  • Creating and Starting a Thread
  • java.lang.Runnable and java.lang.Thread
  • Stopping a Thread
  • Inter-Thread Communication
  • Thread-Safe Access to Shared Objects and Variables
  • Synchronized Code
  • Sleeping
  • Interrupting a Blocked Thread
  • wait(), notify(), notifyAll() Example
  • Thread Scheduling
  • Thread Groups
  • Writing a Multithreaded Server
Java Database Connectivity
  • The java.sql Package
  • JDBC Architecture and Drivers
  • SQL Exceptions
  • DriverManager, Connection, Statement and ResultSet Interfaces
  • Examining Database MetaData
  • Basic Query and Update
  • Improving Performance with PreparedStatement and CallableStatement Interfaces
  • JDBC Transaction Management
Java Web Applications
  • Java Enterprise Edition
  • Java EE Application Servers
  • Web Application Directory and WAR files
  • Deploying a Web Application - The web.xml File
  • Servlet Architecture
  • The javax.servlet Package
  • Servlet Classes and Interfaces
  • Writing a Servlet
  • HttpServletRequest and HttpServletResponse
  • Handling HTML Forms
  • Retrieving Request Parameters
JavaServer Pages (JSPs)
  • JSP Lifecycle
  • Elements of a JSP
  • Directives, Declarative, Scriptlets
  • Writing a JSP
  • Objects Available in a JSP
  • Repeated content in JSPs
  • Translation-Time and Request-Time Includes
  • Using JavaBeans in a JSP
  • Session Management
  • Mixing JSPs and Servlets
  • Installing and Using Tag Libraries
  • The JSP taglib Directive
  • The Tag Library Descriptor
 

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Reviews

Overall a very useful, comprehensive Java bootcamp. The instructor was very knowledgeable and approachable. The materials were well organized and insightful. I will be recommending this course to my colleagues. Thank you!
— C.Q., Booz Allen Hamilton


This class was all I hoped for and more! I didn't expect to learn as much as I did in such a short period of time. Leaving this class I am confident that my future experiences with the Java programming language will be productive and effective.
— K.B., Marshall University


I enjoyed the instructors teaching. He was willing to address scenarios specific to my current Java projects at the office. I found the course very helpful in understanding Java terminology and concepts. I feel prepared to continue using and learning Java on my own.
— W.M., Bible Study Fellowship

Course Schedule

Choose a city below to view a schedule and registration options. If you have any questions, please call us at 978-250-4299 between 9:00 am - 5:00 pm EST.