Training
>
Courseware >
Java Fundamentals
Summary
Java Fundamentals courseware is designed to provide students with the skills for developing Java applications. This courseware explains the syntax and the constructs of the Java programming language, the concepts behind object-oriented programming with Java, packaging, Java documentation, exception handling, Java libraries, concurrent programming with Java threads, new Java 5 features, and design patterns in Java.Description
Length
5 days, 193 pages
Audience
This courseware is intended for people who wish to learn how to design, build, debug, and support Java applications.
Prerequisites
This courseware does not assume that students have any programming experience, although some prior exposure to other structural/OOP languages can be helpful.
Additional Notes
This courseware:
- does not cover GUI development in Java. If you require a module on Java GUI development, please contact us.
- is based on Java 5, but it can be delivered (minus one module) on previous editions of Java.
- includes a CD with all example and lab files.
Outline
Module 1 - Java
- History of Java
- What is Java?
- Why Java?
- State of Java today
Module 2 - HelloWorld
- Installing and configuring Java Virtual Machine (lab)
- Implementing HelloWorld in Java (lab)
- Java class/file structure and naming conventions
- Java keywords and identifiers
- Compiling and running Java programs
- Comments in Java code
- The main() method
Module 3 - Data Types
- Declaring and assigning variables
- Primitive Java types
- Conversion between types
- Introduction to arrays and strings
Module 4 - Operators
- Arithmetic operators - including shortcut operators
- Relational operators
- Logical-boolean operators
- Bitwise operators
- Assignment operators
- Additional operators
- Operator precedence
Module 5 - Flow Control
- Local variable storage: stack
- Branching statements: if-else and switch
- Loop statements: while and for
- Break and continue statements - including labeled
- Return statement
- Lab: Calculator
Module 6 - Object Oriented Programming
- What is OOP?
- Why OOP?
- Class vs. Object
- OOP in Java: classes, fields, objects, methods
- Java memory model and garbage collection
- Static vs. instance data and methods
- Constructors - including constructor and method overloading
- Constants
- Encapsulation through access modifiers
- Lab: BankAccount
- Inheritance / in Java
- Types and subtypes
- Lab: School
- Interfaces and abstract classes / in Java
- Lab: OOP Calculator
- java.lang.Object: super class of them all
- Object Equality: equals() and hashCode() methods
- Converting objects to strings: toString() method
- Lab: Comparing students
Module 7 - Packaging
- Reasons for packaging code
- Packages and sub-packages in Java
- Protecting package namespace
- Using packaged code
- Protecting packaged code
- Java CLASSPATH
- Java Archive (JAR)
- Lab: Packaging
Module 8 - JavaDoc
- Overview of JavaDoc
- Java API
- Defining and generating JavaDoc
- Lab: Documenting Java code
Module 9 - Exception Handling
- What are exceptions?
- Why exceptions?
- Built-in exceptions
- Exception life-cycle
- Handling exceptions
- Throwing exceptions
- Exception types: checked vs. unchecked
- Creating new exceptions
- Grouping and nesting exceptions
- Lab: Exceptions
Module 10 - java.lang library (Core Java)
- Primitive wrappers
- String and StringBuffer/StringBuilder
- java.lang.Math
- java.lang.System
- Multi-threaded programming in Java
Module 11 - java.io library (I/O in Java)
- Managing files
- Byte and character streams
- Filtered streams
- Object serialization
Module 12 - java.util library (Collections and Utilities)
- Collections Framework
- java.util.Collection
- java.util.Iterator
- java.util.List
- java.util.Set
- java.util.Queue
- java.util.Map
- PRNG in Java: java.util.Random
- String parsing and matching - including java.util.regex
- Date, Calendar, TimeZone
Module 13 - java.net library (Java Networking)
- java.net.InetAddress and java.net.NetworkInterface
- java.net.URL connections
- TCP sockets (java.net.Socket and java.net.ServerSocket)
Module 14 - java.sql library (JDBC)
- Overview of JDBC and its drivers
- JDBC API: connections, statements, result sets, metadata
- Using JDBC: updates, queries
Module 15 - Java 5
- Generics
- Enhanced for[each] loop
- Auto boxing and unboxing
- Typesafe enums
- Varargs
- Static imports
- Annotations (metadata)
Module 16 - Design Patterns
- What are Design Patterns?
- Singleton, Factory Method, Abstract Factory
- Adapter, Composite, Decorator
- Chain of Responsibility, Observer / Publish-Subscribe, Strategy, Template
- Data Access Object (DAO)