Learn your way! Get started

J2SE 1.4: Java Fundamentals

with experts Noah Kriegel, Terry Dietzler


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack
  • Power Pack Plus

Release date Release date 11/22/2006
Level Level Beginner
Runtime Runtime 10h 2m
Closed captioning Closed captioning N/A
Transcript Transcript N/A
eBooks / courseware eBooks / courseware Included
Hands-on labs Hands-on labs Included
Sample code Sample code Included
Exams Exams Included
Platform Platform Internet Explorer Only


Enterprise Solutions
Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this course, you will learn the fundamentals of the Java language. It begins by showing you how to obtain, setup, and configure the Java Developers Kit, including all the provided tools. You will learn the basic syntax of Java, which includes the language syntactic elements as well as the object-oriented features of Java. You will learn about exception handling, database connectivity, and deployment. As the course progresses, you will build on your knowledge of Java fundamentals as you learn about the advanced object-oriented features in Java. You will learn about threading, building graphical and event-driven applications using the Swing framework, advanced JDBC, files and streams, and applet development. You will also learn the basic first steps for web development in Java.

Meet the experts

Noah Kriegel Noah Kriegel is a software engineer and instructor with The DSW Group, Ltd. in Atlanta, Ga., specializing in the development of custom Web-based enterprise applications. During his career in the software industry, he has also developed many database and other distributed applications for clients of all sizes and in a variety of industries. Over the years, he has also instructed hundreds of developers with the languages that he has used in creating applications. His primary language proficiencies include Java, C#, C, and Pascal/Delphi.

Terry Dietzler Terry Dietzler is president and co-founder of The DSW Group, Ltd., a nationally recognized application development and training firm based in Atlanta, Georgia. Terry has been a Borland Certified Delphi Trainer since 1996 and is co-author of the book JBuilder3 Unleashed. Since the inception of DSW in 1987, Terry has managed and developed on many software projects for a wide range of companies. During that time, he has become an accomplished developer and trainer familiar with several development products & languages.


Course outline



Module 1

Introduction to Java (21:30)
  • Introduction (01:41)
  • What is Java? (01:47)
  • What is NOT Java (00:54)
  • Common Misconceptions (02:28)
  • Java Versions (02:32)
  • Advantages of Java (03:42)
  • Platform Design Goals (02:02)
  • Language Design Goals (01:51)
  • Java"s Beginning (01:29)
  • History of JSE (02:30)
  • Summary (00:32)
Installation / Setup (27:16)
  • Introduction (00:44)
  • JSE Acronyms (01:24)
  • Obtain JDK / Install JDK (00:21)
  • Demo: Install the JDK (01:19)
  • View the Installed Files (02:37)
  • JDK Configuration (01:19)
  • Demo: PATH (03:59)
  • Demo: rt.jar (00:50)
  • Demo: VERSION (00:41)
  • Compile / Run Java Programs (01:16)
  • Tools: javac (00:24)
  • Demo: javac (01:54)
  • Tools: java / javaw (00:15)
  • Demo: java / javaw (03:25)
  • Tools: jdb / jar / javadoc (01:32)
  • Demo: javadoc (01:37)
  • Explore the Documentation (03:02)
  • Summary (00:25)
Syntax (30:12)
  • Introduction (00:44)
  • Intro to jEdit Editor (01:02)
  • Demo: Create a Simple App (02:52)
  • Demo: Compile / Test App (02:00)
  • Data Types: Primitives (00:48)
  • Data Types: References (00:20)
  • Type: Integers (00:45)
  • Type: Floating Point Numbers (00:09)
  • Type: Character / Boolean (01:54)
  • Naming Conventions (01:22)
  • Variables (01:55)
  • Operators (00:32)
  • Arithmetic Operators (04:06)
  • Increment/Decrement (02:59)
  • Compound Operators (00:47)
  • Relational Operators (00:41)
  • Bitwise Operators (00:48)
  • Other Operators (02:14)
  • Conversions: Implicit/Explicit (03:34)
  • Summary (00:29)

Module 2

Flow Control (27:04)
  • Introduction (00:40)
  • Variable Scope (01:08)
  • Looping (00:36)
  • Demo: While Loop (04:07)
  • Demo: Do...While Loop (03:13)
  • Demo: For Loop (07:18)
  • Decisions (01:02)
  • Demo: if ...else (04:55)
  • Demo: switch (02:07)
  • Demo: Ternary Operator (01:26)
  • Summary (00:29)
Strings / Arrays (28:21)
  • Introduction (00:44)
  • Using Strings (00:25)
  • Creating Strings (01:39)
  • Concatenating Strings (03:45)
  • Strings are Immutable (01:14)
  • StringBuilder class (01:35)
  • String Behavior (03:16)
  • equals Method (04:46)
  • Sub-Strings (02:07)
  • Getting Arrays (00:54)
  • Using Arrays (00:12)
  • Declare/Dimension Arrays (02:47)
  • Referencing Arrays (00:37)
  • Working with Arrays (03:36)
  • Summary (00:36)
Introduction to OOP (29:26)
  • Introduction (00:37)
  • Object-Oriented Primer (01:53)
  • Classes vs. Objects (01:40)
  • Explore Existing Class (03:05)
  • Create Objects w/Class (04:29)
  • Create a New Class (02:09)
  • Create a Class To Test (00:37)
  • Compile the Class (01:46)
  • Modify the Constructor (00:39)
  • Create Methods (04:05)
  • Compile/Test Class (01:04)
  • Add Additional Methods (05:48)
  • Compile/Test Modified Class (01:10)
  • Summary (00:18)

Module 3

Intermediate OOP (17:58)
  • Introduction (00:27)
  • Add Class Functionality (02:24)
  • Test Functionality (00:54)
  • Create Overloaded Method (01:49)
  • Test Overloaded Method (01:23)
  • Add Static Methods (02:11)
  • Test Static Methods (01:13)
  • Overload the Constructor (03:03)
  • Test the New Constructor (01:16)
  • Use Multiple Constructors (01:17)
  • Create Initialization Block (01:34)
  • Summary (00:21)
Intermediate OOP (cont.) (33:56)
  • Introduction (00:37)
  • Overview: Packages (02:25)
  • Import Packages (01:03)
  • Packages and CLASSPATH (00:52)
  • Compile with CLASSPATH (00:38)
  • Attributes/Encapsulation (01:15)
  • Specify Access Attributes (01:00)
  • Packages and Access Levels (00:43)
  • Accessor / Mutator Methods (01:18)
  • Packages (01:08)
  • Use a Package (02:33)
  • Overview: Inheritance (01:38)
  • extends Keyword (00:44)
  • Subclass Constructors (00:39)
  • Override Subclass Methods (01:46)
  • Demo: Inheritance (05:51)
  • Overview: Polymorphism (01:27)
  • Overview: Object Superclass (01:07)
  • instanceof Keyword (00:53)
  • getClass() Method (00:36)
  • Cast an Object (01:35)
  • Demo: Polymorphism (03:35)
  • Summary (00:22)
Exception Handling (23:28)
  • Introduction (00:29)
  • Overview: Exception Handling (04:12)
  • Syntax: Exception Handling (01:13)
  • Demo: Simple try...catch (04:32)
  • Generic Exception (00:30)
  • Handle Multi Exception Types (00:55)
  • Exception Propagation (00:19)
  • Re-throwing Exceptions (00:57)
  • Your Own Exceptions (01:08)
  • Exception Hierarchy (00:44)
  • Throws Clause (00:31)
  • Demo: throws Clause (01:34)
  • Finally Block (02:05)
  • Demo: finally Block (03:48)
  • Summary (00:25)

Module 4

Intro to JDBC (27:14)
  • Introduction (00:33)
  • Architecture of JDBC (01:11)
  • JDBC Overview (01:05)
  • Driver Types (01:09)
  • JDBC Drivers (01:29)
  • Obtaining a Driver (01:49)
  • Setup Sample Database (01:36)
  • View Database Example (02:33)
  • JDBC Classes (05:33)
  • More Complex DB Example (01:05)
  • Examine mysql.jdbc driver (02:29)
  • Get a Connection (01:30)
  • Create the ResultSet (00:31)
  • Create the Output (03:02)
  • View the Output (01:02)
  • Summary (00:30)
Deployment (24:46)
  • Introduction (00:38)
  • Java Client Environment (02:25)
  • CLASSPATH Settings (01:58)
  • Deploy Command Line Apps (00:40)
  • Deploy GUI Apps (00:32)
  • CLASSPATH Variable (01:12)
  • CLASSPATH Default Setting (00:28)
  • Perm. CLASSPATH Setting (00:14)
  • JAR Utility (01:53)
  • JAR Command Line Tool (00:36)
  • JAR Utility Options (01:27)
  • Creating a JAR File (02:09)
  • View JAR File Structure (02:25)
  • Run App w/Cmd Line Switch (01:51)
  • Using the Extensions Directory (01:45)
  • Self Executing JAR File (01:09)
  • View the Manifest File (02:47)
  • Summary (00:30)
Advanced Syntax (25:46)
  • Introduction (00:39)
  • Immutable Strings (00:58)
  • StringBuilder (00:56)
  • String Methods (02:02)
  • String Techniques (01:11)
  • String Demo / StringBuilder (05:06)
  • Demo: String Tokenizer (01:53)
  • Re-Dimensioning Arrays (00:40)
  • Multi-Dimensional Arrays (03:29)
  • Demo: Ragged Arrays (01:09)
  • Parameter Passing Semantics (06:55)
  • Summary (00:43)

Module 5

Advanced OOP (29:21)
  • Introduction (00:34)
  • Review: final (01:04)
  • Abstract Class (02:59)
  • Interfaces (01:39)
  • Inner Classes (00:57)
  • Create an Inner Class (02:33)
  • Anonymous Classes (00:37)
  • Anonymous Class Syntax (01:38)
  • Cloning (01:32)
  • Shallow Copy vs Deep Copy (01:43)
  • Create a Shallow Copy (03:34)
  • Extend Shallow Copy (02:30)
  • Create a Deep Copy (05:34)
  • equals / hashCode Methods (01:43)
  • Summary (00:39)
Threading (35:16)
  • Introduction (00:35)
  • Overview: Threading (01:25)
  • Define Threads (00:47)
  • Subclassing / Runnable (01:47)
  • Start a Thread (00:41)
  • Thread Types (01:13)
  • Stop a Thread (01:10)
  • Demo: Implement Threads (01:37)
  • Demo: Runnable Interface (00:57)
  • Demo: Use Threads in an App (03:23)
  • Thread Execution / Priorities (01:56)
  • Manage Threads (00:42)
  • Synchronization (01:01)
  • Methods / Code Blocks (02:03)
  • Asynchronous Thread Access (03:11)
  • Use wait to Control Execution (06:55)
  • Use synchronized keyword (01:31)
  • wait() Method (01:08)
  • notify() and notifyAll() Methods (00:55)
  • Demo: Use notifyAll() Method (01:30)
  • Summary (00:36)
Introduction to Frames (19:22)
  • Introduction (00:36)
  • Frame Basics (00:54)
  • Abstract Windowing Toolkit (00:40)
  • Frames in Swing (00:39)
  • JFrame (00:33)
  • Create a Frame (01:43)
  • Close a Frame (00:27)
  • Frame Title / Location (00:58)
  • Demo: Add Title / Set Location (01:43)
  • Containership (00:41)
  • Demo: Add Button to Frame (01:21)
  • Layout Managers (00:42)
  • BorderLayout (00:34)
  • Demo: BorderLayout Manager (01:31)
  • FlowLayout (00:47)
  • Demo: FlowLayout Manager (01:13)
  • GridLayout (00:39)
  • Demo: GridLayout Manager (01:18)
  • BoxLayout (00:38)
  • Demo: BoxLayout Manager (01:05)
  • Summary (00:31)

Module 6

Advanced Frames (19:07)
  • Introduction (00:34)
  • GridBagLayout (00:39)
  • GridBag: gridx / gridy (00:24)
  • GridBag: gridwidth / gridheight (00:13)
  • GridBag: weightx / weighty (00:38)
  • GridBag: anchor and fill (00:58)
  • GridBag: insets (00:21)
  • GridBag: ipadx / ipady (00:30)
  • GridBagLayout Manager (03:19)
  • Create Multi-Window Apps (00:20)
  • Parent Frame (00:46)
  • Dialogs (00:46)
  • Dialogs: Modality (01:01)
  • Disposing Frames / Dialogs (01:30)
  • Multi-Frame Application (02:29)
  • InputNameDialog code (04:03)
  • Summary (00:27)
Introduction to Swing (36:37)
  • Introduction (00:34)
  • Swing vs AWT Controls (00:38)
  • Overview: SwingSet (00:32)
  • JLabel/JTextField/JTextArea (01:56)
  • Demo: JLabel (02:08)
  • Demo: JTextField (01:24)
  • Demo: JTextArea (01:26)
  • JButton/JProgressBar/Jslider (03:30)
  • Demo: JButton (02:05)
  • Demo: JProgressBar (01:28)
  • Demo: JSlider (02:43)
  • JRadioButton/ButtonGroup (00:43)
  • JPanel / JScrollPanel (01:39)
  • Demo: JRadioButton (02:21)
  • Demo: JPanel (01:36)
  • Demo: JScrollPanel (01:57)
  • JTabbedPane / JSplitPane (01:33)
  • JOptionPane (01:40)
  • Demo: JTabbedPane (01:45)
  • Demo: JSplitPane (01:44)
  • Demo: JOptionPane (02:32)
  • Summary (00:32)
Event Handling (13:57)
  • Introduction (00:37)
  • Event Delegation Model (01:04)
  • Adapters (01:11)
  • External Classes (00:38)
  • Demo: Simple Event Handler (02:28)
  • External Classes with Params (00:50)
  • Event Handler w/ Params (01:36)
  • Frame and Inner Classes (00:27)
  • Anonymous Inner Classes (00:46)
  • Demo: Frame Class (01:16)
  • Demo: Inner Class (01:23)
  • Demo: Anonymous Inner Class (01:04)
  • Summary (00:32)

Module 7

Update Swing Components (16:27)
  • Introduction (00:32)
  • Model-View-Controller Model (02:26)
  • Creating Models (00:27)
  • ListModel Class (00:44)
  • Demo: Create a JList (01:25)
  • Update List Models (00:52)
  • Create an Updatable JList (03:05)
  • Overview: JTable (00:37)
  • AbstractTableModel Class (00:32)
  • Create a Jtable (01:54)
  • More Complex Jtable (03:21)
  • Summary (00:28)
Advanced JDBC (15:47)
  • Introduction (00:43)
  • Use ResultSetMetaData (00:42)
  • Data Aware Table Model (03:06)
  • Efficiency Concerns (01:00)
  • PreparedStatements (05:45)
  • Handling Keys (01:10)
  • Demo: Handling Keys (02:54)
  • Summary (00:22)
Files and Streams (13:15)
  • Introduction (00:44)
  • Overview: Files and Streams (00:42)
  • File and Stream Hierarchy (00:39)
  • Byte Streams (00:54)
  • FileInput/Output Stream (00:43)
  • BufferedInput/Output Streams (00:30)
  • Text Streams (00:44)
  • Read / Write Text Files (00:52)
  • Work with ZIP/JAR Files (01:29)
  • Demo: Create a ZIP File (03:15)
  • Demo: Read a Zip File (02:12)
  • Summary (00:26)
Utility Classes (20:32)
  • Introduction (00:44)
  • Type Wrappers (01:17)
  • Collections API (00:31)
  • List Interface (00:53)
  • Vector Class (01:03)
  • ArrayList Class (00:19)
  • Map Interface (00:43)
  • Hashtable (00:45)
  • Set Interface (00:52)
  • Demo: Collections API (02:19)
  • Calendars and Dates (01:46)
  • Demo: Use the Calendar (02:01)
  • Math Class (01:40)
  • NumberFormat (00:36)
  • Demo: NumberFormat Class (04:24)
  • Summary (00:32)

Module 8

Generics and Enumerations (29:38)
  • Introduction (00:46)
  • Use Collections (00:48)
  • Generics (02:49)
  • Type Erasure (01:01)
  • Generic Subtypes (01:11)
  • When to Use Generics (01:10)
  • Using Non Generic Code (02:42)
  • Generics Class (01:39)
  • Rewrite Using Generics (03:58)
  • Enumerations (02:29)
  • Java enum Type (01:45)
  • Use int EnumType (03:09)
  • Rewrite u/new EnumTypes (02:22)
  • Enhance enum Declaration (03:21)
  • Summary (00:21)
Applets (09:10)
  • Introduction (00:42)
  • Overview: Applets (00:32)
  • Applet Restrictions (00:43)
  • Build Applets (01:02)
  • Applet Methods (00:59)
  • Test Applets (00:25)
  • Deploy Applets (00:35)
  • Build / Test / Deploy Applet (03:42)
  • Summary (00:27)
Intro to Web Development (26:41)
  • Introduction (00:43)
  • Overview (00:52)
  • Web Basics (00:37)
  • Static / Dynamic Content (00:56)
  • Using Servlets (00:53)
  • Servlet Lifecycle (01:00)
  • Servlet Containers (00:48)
  • Building Servlets (00:53)
  • Requests and Responses (01:00)
  • Create a Simple Servlet (00:50)
  • Deploy the Servlet (02:07)
  • Test the Servlet (01:07)
  • Statelessness (00:57)
  • Session Management (01:00)
  • Using Session State (02:30)
  • Test the Session App (03:08)
  • Java Server Pages (JSP) (00:57)
  • JSP Architecture (00:36)
  • Code in JSP (01:04)
  • Scriplets / Expressions (02:08)
  • Deploy JSP Page (00:34)
  • Test the JSP Page (01:09)
  • Summary (00:40)