Course Summary Description This course emphasizes becoming productive quickly as a Java application developer. This course quickly covers the Java language syntax and then moves into the object-oriented features of the language. Students will then use several of the provided API packages, such as I/O streams, collections, Swing GUI programming, threads, and accessing a database with JDBC. This course is current to Java 7 and uses the Eclipse IDE. Topics Course Introduction Getting Started with Java Eclipse Language Fundamentals Objects and Classes Using Java Objects Inheritance in Java Advanced Inheritance and Generics Packages Exception Handling Input/Output Streams Core Collection Classes Collection Sorting and Tuning Inner Classes Introduction to Swing Swing Events and Layout Managers Introduction to JDBC JDBC SQL Programming Introduction to Threads Thread Synchronization and Concurrency Appendix A Java Performance Appendix B Regular Expressions Appendix C Advanced JDBC Appendix D Java EE Overview Appendix E Eclipse Shortcuts Audience Programmers moving to object-oriented programming using Java. Prerequisites Professional programming experience in C, C++ or C# is required. Knowledge of Object-Oriented concepts is required. Duration Five days
Course Outline I. Course Introduction A. Course Objectives B. Course Overview C. Using the Workbook D. Suggested References II. Getting Started with Java A. What is Java? B. How to Get Java C. A First Java Program D. Compiling and Interpreting Applications E. The JSDK Directory Structure III. Eclipse A. Introduction to Eclipse B. Installing Eclipse C. Running Eclipse for the First Time D. Editors, Views, and Perspectives E. Setting up a Project F. Creating a New Java Application G. Running a Java Application H. Debugging a Java Application I. Importing Existing Java Code into J. Eclipse IV. Language Fundamentals A. A Java Program B. If Statements C. Switch Statements D. Loop Statements E. Syntax Details F. Primitive Datatypes G. Variables H. Expressions in Java I. Strings J. Arrays K. Enhanced for Loop V. Objects and Classes A. Defining a Class B. Creating an Object C. Instance Data and Class Data D. Methods E. Constructors F. Access Modifiers G. Encapsulation VI. Using Java Objects A. Printing to the Console B. printf Format Strings C. StringBuilder and StringBuffer D. Methods and Messages E. tostring F. Parameter Passing G. Comparing and Identifying Objects H. Destroying Objects I. The Primitive-Type Wrapper Classes J. Enumerated Types VII. Inheritance in Java VIII. Inheritance A. Inheritance in Java B. Casting C. Method Overriding D. Polymorphism E. super F. The Object Class IX. Advanced Inheritance and Generics A. Abstract Classes B. Interfaces C. Using Interfaces D. Collections E. Generics F. Comparable
X. Packages A. Packages B. The import Statement C. Static Imports D. CLASSPATH and Import E. Defining Packages F. Package Scope XI. Exception Handling A. Exceptions Overview B. Catching Exceptions C. The finally Block D. Exception Methods E. Declaring Exceptions F. Defining and Throwing Exceptions G. Errors and RuntimeExceptions XII. Input/Output Streams A. Overview of Streams B. Bytes vs. Characters C. Converting Byte Streams to Character Streams D. File Object E. Binary Input and Output F. PrintWriter Class G. Reading and Writing Objects H. Closing Streams XIII. Core Collection Classes A. The Collections Framework B. The Set Interface C. Set Implementation Classes D. The List Interface E. List Implementation Classes F. The Queue Interface G. Queue Implementation Classes H. The Map Interface I. Map Implementation Classes XIV. Collection Sorting and Tuning A. Sorting with Comparable B. Sorting with Comparator C. Sorting Lists and Arrays D. Collections Utility Methods E. Tuning ArrayList F. Tuning HashMap and HashSet XV. Inner Classes A. Inner Classes B. Member Classes C. Local Classes D. Anonymous Classes E. Instance Initializers F. Static Nested Classes XVI. Introduction to Swing A. AWT and Swing B. Displaying a Window C. GUI Programming in Java D. Handling Events E. Arranging Components F. A Scrollable Component G. Configuring Components H. Menus I. Using the JFileChooser XVII. Swing Events and Layout Managers A. The Java Event Delegation Model B. Action Events C. List Selection Events D. Mouse Events E. Layout Managers F. BorderLayout G. FlowLayout H. GridLayout I. BoxLayout J. Box K. JTabbedPane
XVIII. Introduction to JDBC A. The JDBC Connectivity Model B. Database Programming C. Connecting to the Database D. Creating a SQL Query E. Getting the Results F. Updating Database Data G. Finishing Up XIX. JDBC SQL Programming A. Error Checking and the SQLException Class B. The SQLWarning Class C. JDBC Types D. Executing SQL Queries E. ResultSetMetaData F. Executing SQL Updates G. Using a PreparedStatement H. Parameterized Statements I. Stored Procedures J. Transaction Management XX. Introduction to Threads A. Non-Threaded Applications B. Threaded Applications C. Creating Threads D. Thread States E. Runnable Threads F. Coordinating Threads G. Interrupting Threads H. Runnable Interface XXI. Thread Synchronization and Concurrency A. Race Conditions B. Synchronized Methods C. Deadlocks D. Synchronized Blocks E. Thread Communication wait() F. Thread Communication notify() G. Java 5.0 Concurrency Improvements H. Thread-Aware Collections I. Executor J. Callable XXII. Appendix A Java Performance A. Is Java Slow? B. Don't Optimize Until You Profile C. HotSpot Virtual Machine D. Garbage Collection Concepts E. Garbage Collection Generations F. Garbage Collection Algorithms G. Object Creation H. String, StringBuffer, and StringBuilder I. Synchronized J. Inline methods K. Tuning Collections XXIII. Appendix B Regular Expressions A. Pattern Matching and Regular Expressions B. Regular Expressions in Java C. Regular Expression Syntax D. Special Characters E. Quantifiers F. Assertions G. The Pattern Class H. The Matcher Class I. Capturing Groups XXIV. Appendix C Advanced JDBC A. JDBC SQL Escape Syntax B. The execute() Method C. Batch Updates D. Updateable Result Sets E. Large Objects F. Working with Savepoints G. RowSets H. CachedRowSet I. DataSources
XXV. Appendix D Java EE Overview A. Introduction to Java EE B. Java SE Building Blocks C. Web Applications D. Web Services E. Enterprise JavaBeans F. Additional J2EE APIs G. POJO, Dependency Injection, and Annotations H. The Java EE Platform XXVI. Appendix E Eclipse Shortcuts A. Shortcut Key Sequences B. More Shortcut Key Sequences