Advanced Java Programming

This course treats advanced aspects of the Java language and platform.

Modules

1. Java2 GUI Progamming

Introduction to GUI programming in Java2 using Swing and the Java 2D API.

1.1. Introduction to Swing
This lesson is a quick start guide to using Swing components to build user interfaces.

1.2. Java 2D
Introduction to the Java 2D API

2. Network Programming in Java

Treats programming with the JDK network APIs as a step up to using distributed objects with CORBA and RMI.

2.1. Network - Overview
structure, protocols, sockets, classes, InetAddress

2.2. TCP/IP Sockets
Creating a client Socket, Creating a client Server Socket

2.3. Datagram Sockets
Datagram Clients, Datagram Servers

2.4. Accessing URLs
URL Class, URLConnection, URLEncoder

2.5. Hypertext Transfer Protocol (HTTP)
principles, building a webserver in 21 minutes, cookies, sessions

3. Distributed Objects in Java

Treats accessing Java objects over the network

3.1. Remote Method Invokation (RMI)
RMI architecture, RMI development cycle, RMI registry, RMI callbacks

3.2. Common Object Request Broker Architecture (CORBA)
Concepts,Object Management Group (OMG), Interface Definition Language (IDL), IIOP, Client implementation, Server implementation

4. Persistency in Java

Various techniques to manage the storage of Java objects in files, relational databases, object databases and XML files.

4.1. Overview of Persistency Techniques with Java
Overview of techniques to manage persistent data with Java

4.2. Property files
Properties class in the java.util package.

4.3. Object Serialization
Object streams, Reading and writing objects, Serialized format, Class versioning issues, Externalization

4.4. Java DataBase Connectivity (JDBC)
Accessing relational databases from within Java

5. Java Internationalization

Internationalization (i18n) is the process of designing an application so that it can be adapted to various languages and regions without engineering changes. This module learns you how to internationalize Java programs.

5.1. Internationalization
Using the internationalisation (i18n) features in Java, Locale, ResourceBundle, Formatting numbers, currencies, date and time. Working with text.

6. Introduction to Java Native Interface (JNI)

Using Java Native Interface (JNI) you can interface to other languages such as C and C++.

6.1. Java Native Interface (JNI)
What is JNI,, When to use JNI, when not to use JNI Calling C/C++ from Java, Type conversions, Memory management, Calling Java from C/CPP (callbacks, starting a JVM from within a C program)

7. Introduction to XML

7.1. Introduction to XML
XML vs HTML, XML Syntax, Document Type Definition (DTD), W3C standards, XML parsers, why XML is important, how XML is used

7.2. XML and Java
what XML and Java mean to each other, applications of XML with Java, DOM to Java mapping, using SAX and DOM parsers

8. Java Development Environment

Effective use of Java requires creating a development environment to effectively design, document, program, version, build, reuse, test and deploy Java code. This module treats tools and components that can be used to establish a Java development environment.

8.1. Deployment

8.2. The Ant Build Tool
History (managing builds, make), Your first Ant build, Dependent Tasks, Properties, Deployment tasks, User-defined tasks

8.3. The JUnit Test Tool
JUnit Principles, Writing and organizing tests, using TestCases, Fixtures, Suites and TestRunner