6421 configuring and troubleshooting win server 2008 network infrastructure
6010 java programming version 6
1. Java Programming Version 6.0
Course Summary
Description
This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for
programmers with experience in languages other than Java, but who may or may not have any previous Java
experience. It focuses on procedural and structured coding skills first, and then offers meticulous, in-depth coverage of
object-oriented concepts and how to apply them to Java software design and development. The latter part of the course
moves from these basic skills into key parts of the Java SE Core API, including collections, logging, streams, and object
serialization. A final chapter introduces automated unit-testing practices using JUnit.
Objectives
At the end of this course, students will be able to:
• Learn to program effectively in the Java • Implement and use inheritance and
language. polymorphism, including interfaces and
• Understand the Java software architecture, abstract classes.
and the design decisions which make Java • Design appropriate exception handling into
software portable, efficient, secure and robust. Java methods, and use the logging API
• Learn how to configure a simple Java appropriately.
development environment. • Understand the structure of streams in Java,
• Know the grammar, data types and flow and learn how to use streams to manage file I/
control constructs of the Java language for O.
simple procedural programming. • Learn how to use Java Serialization to
• Understand Java as a purely object-oriented internalize and externalize potentially complex
language, and implement software as systems graphs of objects.
of classes. • Build unit tests for Java classes using JUnit.
Topics
• The Java Environment • Collections
• Language Fundamentals • Exception Handling and Logging
• Data Types • Inner Classes
• Flow Control • The Java Streams Model
• Object-Oriented Software • Working with Files
• Classes and Objects • Advanced Stream Techniques
• Inheritance and Polymorphism in Java • Java Serialization
• Using Classes Effectively • Automated Unit Testing with JUnit
• nterfaces and Abstract Classes
Audience
Students should have experience in the following programming languages C and C++ Visual Basic, ASP and other
Web-scripting languages.
Prerequisites
No prior Java experience is required, but students must be experienced programmers in another third-generation (high-
level) language.
Duration
Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational
purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically
6010JAVAPROGRAMMINGVERSION6-110311183223-PHPAPP01.DOC
2. Five days
Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational
purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically
6010JAVAPROGRAMMINGVERSION6-110311183223-PHPAPP01.DOC
3. Java Programming Version 6.0
Course Outline
I. The Java Environment I. Break and Continue
A. Overview of Architecture J. Recursion
B. Forms for Java Software
C. J2SE, J2EE, and J2ME Platforms V. Object-Oriented Software
D. Java Virtual Machine A. Complex Systems
E. The Core API B. Abstraction
F. Java Runtime Environment C. Classes and Objects
G. Java Developer's Kit D. Responsibilities and Collaborators
H. Java Class Path E. UML
I. Classes F. Relationships
J. Built-In Streams and Command-Line G. Visibility
Parameters
VI. Classes and Objects
II. Language Fundamentals A. Java Classes
A. Source File Format B. Constructors and Garbage Collection
B. Application Classes C. Naming Conventions and JavaBeans
C. Code Grammar and Expressions D. Relationships Between Classes
D. Identifiers E. Using this
E. Literals F. Visibility
F. Operators G. Packages and Imports
G. Calling Methods H. Overloading Methods and Constructors
H. Variable Parameter Lists ("varargs") I. JARs
III. Data Types VII. Inheritance and Polymorphism in Java
A. Strict Type Checking A. UML Specialization
B. Primitive Types B. Extending Classes
C. Numeric Types C. Using Derived Classes
D. Characters and Booleans D. Type Identification
E. Enumerations E. Compile-Time and Run-Time Type
F. Type Conversion F. Polymorphism
G. Formatted Output G. Overriding Methods
H. Object References H. The @Override Annotation
I. Comparing and Assigning References I. Superclass Reference
J. Strings
K. Arrays VIII. Using Classes Effectively
A. Class Loading
IV. Flow Control B. Static Members
A. The main Method C. Statics and Non-Statics
B. Calling and Returning from Methods D. Static Initializers
C. Conditional Constructs E. Static Imports
D. Looping Constructs F. Prohibiting Inheritance
E. Processing Arrays G. Costs of Object Creation
F. Looping and Enumerations H. Strings and StringBuffers
G. Processing Varargs I. Controlling Object Creation
H. The Flow-Control Operator J. Understanding Enumerated Types
Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational
purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically
6010JAVAPROGRAMMINGVERSION6-110311183223-PHPAPP01.DOC
4. Java Programming Version 6.0
Course Outline (cont’d)
K. Stateful and Behavioral Enumerations D. Outer Object Reference
E. Static Inner Classes
IX. Interfaces and Abstract Classes F. Anonymous Inner Classes
A. Separating Interface and Implementation
B. UML Interfaces and Realization XIII. The Java Streams Model
C. Defining Interfaces A. Delegation-Based Stream Model
D. Implementing and Extending Interfaces B. InputStream and OutputStream
E. Abstract Classes C. Media-Based Streams
D. Filtering Streams
X. Collections E. Readers and Writers
A. Dynamic Collections vs. Arrays
B. UML Parameterized Type XIV. Working with Files
C. Generics A. File Class
D. Using Generics B. Modeling Files and Directories
E. The Collections API C. File Streams
F. The Collection<E> and List<E> Interfaces D. Random-Access Files
G. The ArrayList<E> and LinkedList<E>
Classes XV. Advanced Stream Techniques
H. Looping Over Collections: Iterable<E> A. Buffering
I. Collecting Primitive Values: Auto-Boxing B. Data Streams
J. Using Wildcards with Generic Types C. Push-Back Parsing
K. Iterators and the Iterator<E> Interface D. Byte-Array Streams and String Readers
L. Maps and the Map<K,V> Interface and Writers
M. Sorted Collections
N. The SortedSet<E> and SortedMap<K,V> XVI. Java Serialization
Interfaces A. The Challenge of Object Serialization
O. The Collections Class Utility B. Serialization API
P. Algorithms C. Serializable Interface
Q. Conversion Utilities D. ObjectInputStream and
ObjectOutputStream
XI. Exception Handling and Logging E. The Serialization Engine
A. Reporting and Trapping Errors F. Transient Fields
B. Exception Handling G. readObject and writeObject
C. Throwing Exceptions H. Externalizable Interface
D. Declaring Exceptions per Method
E. Catching Exceptions XVII. Automated Unit Testing with JUnit
F. The finally Block A. Automated Testing
G. Catch-and-Release B. JUnit and Related Tools
H. Chaining Exceptions C. The @Test Annotation
I. The J2SE Logging API D. The Assert Class Utility
J. Severity Levels E. Test Runners
K. Log Hierarchies F. Lifecycle Methods
XII. Inner Classes
A. Passing Behavior
B. Inner Classes in GUI Programming
C. Named Inner Classes
Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational
purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically
6010JAVAPROGRAMMINGVERSION6-110311183223-PHPAPP01.DOC