Java Fundamentals Courseware
Java Fundamentals
Description
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.
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
- 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
- Declaring and assigning variables
- Primitive Java types
- Conversion between types
- Introduction to arrays and strings
- Arithmetic operators - including shortcut operators
- Relational operators
- Logical-boolean operators
- Bitwise operators
- Assignment operators
- Additional operators
- Operator precedence
- 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
- 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
- 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
- Overview of JavaDoc
- Java API
- Defining and generating JavaDoc
- Lab: Documenting Java code
- 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
- Primitive wrappers
- String and StringBuffer/StringBuilder
- java.lang.Math
- java.lang.System
- Multi-threaded programming in Java
- Managing files
- Byte and character streams
- Filtered streams
- Object serialization
- 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
- java.net.InetAddress and java.net.NetworkInterface
- java.net.URL connections
- TCP sockets (java.net.Socket and java.net.ServerSocket)
- Overview of JDBC and its drivers
- JDBC API: connections, statements, result sets, metadata
- Using JDBC: updates, queries
- Generics
- Enhanced for[each] loop
- Auto boxing and unboxing
- Typesafe enums
- Varargs
- Static imports
- Annotations (metadata)
- What are Design Patterns?
- Singleton, Factory Method, Abstract Factory
- Adapter, Composite, Decorator
- Chain of Responsibility, Observer / Publish-Subscribe, Strategy, Template
- Data Access Object (DAO)