LANTEC Logo

JAVA Programming Fundamentals

$2,495.00
5 days

Audience:

Programmers moving to object-oriented programming using JAVA

Prerequisites:

Professional programming experience in a high level language, such as COBOL and Visual Basic.

DESCRIPTION

This course is paced to provide a solid foundation in Java™ for programmers without syntax experience in a C-based language. Intensive and hands-on, the course emphasizes becoming productive quickly as a Java programmer. Besides learning the basic structure and syntax of the language, students will also learn object-oriented principles and how they are applied in Java applications. The course then covers several of the provided API packages, such as I/O streams, collections, and accessing a database with JDBC. This course is current to Java 7 and uses the Eclipse IDE.

Outline

Chapter 1: A First Look

  • A Simple Java Class
  • Java's "Hello World" Program

LABS:

  • Hello World: A Simple Application

Chapter 2: Java Basics

  • Language and Platform Features
  • Program Life Cycle
  • The Java SE Development Kit (JDK)

LABS:

  • Working with the Development Environment

Chapter 2: Java Basic

  • Language and Platform Features
  • Program Life Cycle
  • The Java SE Development Kit (JDK)

LABS:

  • Working with the Development Environment

Chapter 3: Class and Object Basics

  • The Object Model and Object-Oriented Programming
  • Classes, References, and Instantiation
  • Adding Data to a Class Definition
  • Adding Methods (Behavior)

LABS:

  • Exploring Types and Object Instances
  • Writing and Using a Class Definition with Fields and Methods

Chapter 4: More on Classes and Objects

  • Accessing data, the "this" variable
  • Encapsulation and Access Control, public and private Access
  • Constructors and Initialization
  • Static Members of a Class
  • Scopes, Blocks, References to Objects
  • Type-safe Enums

LABS:

  • Encapsulation / Access Protection
  • Writing and Using Constructors
  • (Optional) Static Members
  • Using enums
  • Using the Debugger

Chapter 5: Flow of Control

  • Branching: if, if-else, switch
  • Iteration: while, do-while, for, break, continue

LABS:

  • Flow of Control / Data Validation

Chapter 6: Strings and Arrays

  • String, StringBuffer, StringBuilder
  • Arrays, Primitive Arrays, Arrays of Reference Types
  • varargs

LABS:

  • Using Strings and Arrays

Chapter 7: Packages

  • Package Overview - Using Packages to Organize Code
  • import statements
  • Creating Packages, package Statement, Required Directory Structure
  • Finding Classes, Packages and Classpath

LABS:

  • Using Packages to Organize Code

Chapter 8: Composition and Inheritance

  • Using Composition to Deal With Complexity
  • Composition/HAS-A, Delegation
  • Using Inheritance and Polymorphism to share commonality
  • IS-A, extends, Inheriting Features, Overriding Methods, Using Polymorphism
  • Class Object
  • Abstract Classes

LABS:

  • (Optional) Working with Composition
  • Using Inheritance to Specialize Classes

Chapter 9: Interfaces

  • Using Interfaces to Define Types
  • Interfaces and Abstract Classes
  • Default Methods and static Methods (Java 8)

LABS:

  • Using Interfaces to Remove Implementation Dependencies

Chapter 10: Exceptions

  • Exceptions and the Exception Hierarchy
  • try and catch
  • Handling Exceptions
  • Program Flow with Exceptions
  • finally

LABS:

  • Throwing and Handling Exceptions

Chapter 11: Java Collections and Generics

  • The Collections Framework and its API
  • Collections and Java Generics
  • Collection, Set, List, Map, Iterator
  • Autoboxing
  • Collections of Object (non-generic)
  • Using ArrayList, HashSet, and HashMap
  • for-each Loop
  • Processing Items With an Iterator
  • More About Generics

LABS:

  • Using Lists and Generics
  • Using Sets

Chapter 12: Database Access with JDBC and JPA

  • JDBC Overview
  • JDBC Architecture and API
  • Using DriverManager, Connection, Statement and ResultSet
  • JPA Overview
  • JPA Architecture and Programming View
  • Entity Classes and Annotations
  • Mapping an Entity Class
  • EntityManagerFactory and EntityManager
  • Working with JPA (Find by primayry key and inserts)

LABS:

  • Mapping an Entity Class
  • Working with JPA

Chapter 13: Additional Java Features

  • Date/Time Support (Java 8)
  • Assertions
  • Annotations
  • Lambda Expressions and Method References (Java 8)
  • Additional Features

Chapter 14: I/O Streams (Optional)

  • Readers and Writers
  • Filter Streams
  • Byte Streams
  • Formatted Output
  • The File Class
  • New I/O (NIO) APIs

LABS:

  • Formatting Output
  • Java Intermediate

Chapter 15: Review - Basics

  • Java Environment
  • Classes and Objects
  • Instance Variables, Methods, Constructors, Static Members
  • OO Principles: Data Encapsulation, Cohesion
  • Object Contracts: toString(), equals() and hashCode(), Comparable and Comparator
  • Packages, Enums, Arrays
  • Exceptions

Chapter 16: Review (Inheritance and Interfaces)

  • UML Overview
  • Inheritance
  • Definition and IS-A Relationship
  • Method Overriding, @Override
  • OO Principles: Principle of Substitutability, Polymorphism and Encapsulation of Type, Coupling, Open-Closed Principle
  • Constructor Chaining
  • Interfaces
  • Defining and Implementing, Interface Types
  • Interface Inheritance
  • New Interface Features in Java 8
  • Default Methods, Static Methods
  • Functional Interfaces
  • Guidelines

Chapter 17: JUnit

  • Overview
  • Tests, Assertions, and Fixtures
  • Writing and Running Tests
  • Assertions
  • Test Fixtures, @Before and @After, @BeforeClass and @AfterClass
  • Testing for Exceptions
  • Best Practices and Test-Driven Development Overview (TDD)

Chapter 18: Collections and Generics

  • Collections Overview
  • Generics and Type-Safe Collections
  • Diamond Operator
  • Lists, Sets, and Maps
  • Interfaces and Contracts
  • Iteration and Autoboxing
  • Utility Classes - Collections and Arrays
  • Writing Generic Classes
  • Inheritance with Generic Types
  • Wildcard Parameter Types
  • Type Erasure

Chapter 19: Techniques of Object Creation

  • Design Patterns Overview
  • Controlling Object Creation
  • Limitations of new Operator, Alternative Techniques
  • Singleton Pattern
  • Simple Factory
  • Factory Method Pattern
  • Other Techniques
  • Named Objects, JNDI
  • Dependency Injection Frameworks

Chapter 20: Using Composition and Inheritance Effectively

  • Inheritance and Composition - Pros and Cons
  • Composition and Delegation
  • HAS-A, USES Relationships
  • Strategy Pattern
  • Decorator Pattern
  • Façade and Other Patterns
  • Façade, Proxy, Template Method

Chapter 21: Inner Classes

  • Overview and Motivation
  • Stronger Encapsulation, Rules and Caveats
  • Defining and Using Inner Classes
  • Member-Level, Method-Local, Anonymous Classes
  • Static Nested Classes
  • Nested Classes, Nested Interfaces, Nested Enums

Chapter 22: Annotations

  • Overview
  • Using Annotations
  • Target and Retention Policy
  • Annotation Parameters, Parameter Shortcuts
  • Writing Custom Annotations
  • Syntax, Using the Meta-Annotations
  • Using a Custom Annotation

Chapter 23: Reflection

  • Overview and API
  • The Class Called Class
  • Obtaining and Inspecting Class Objects
  • Working with Objects Reflectively
  • Creating Instances, Invoking Methods, Setting Field Values

Chapter 24: Lambda Expressions

  • Overview
  • Functional Interfaces and Lambdas
  • Target Context
  • Using Lambda Expressions
  • Syntax, Lambda Compatibility
  • Variable Capture
  • Type Inference
  • Method References
  • Three Types of Method References
  • Refactoring Lambdas into Method References

Chapter 25: Streams

  • Overview
  • Streams vs. Collections
  • Anatomy of a Stream
  • Understanding the Stream API
  • Intermediate Operations and Stream Pipeline
  • Java 8 Functional Interfaces: Predicate, Comparator, Function, Consumer, Supplier
  • Stream Processing
  • Filtering, Sorting, Mapping
  • Terminal Operations
  • Collectors
  • Partitioning and Grouping
  • Reducing and Summarizing
  • Downstream Reductions

Chapter 26: Date/Time API

  • Overview
  • Dates, Times, and Instants
  • Creating, Parsing, and Formatting
  • Accessing Date and Time Fields
  • Deriving New Values
  • Time Zones
  • Periods and Durations
  • Intervals of Time: Date-Based and Time-Based
  • Adding and Subtracting Intervals

Chapter 27: Overview of Build Tools

  • Javadoc
  • Generating API Documentation
  • Doc Comments and Doc Tags
  • Ant
  • History and Overview
  • Buildfiles, Targets, and Tasks
  • Maven
  • Maven Concepts: Project, POM, Artifact, Naming, Dependency, Plugin, Repository
  • Convention over Configuration
  • Lifecycles and Phases
  • Plugins and Goals

Chapter 28: Logging and Log4j

  • Overview
  • Popular Logging Frameworks
  • Writing Log Messages
  • Creating Loggers and Writing Log Messages
  • Log Levels
  • Configuration
  • Appenders and Layouts
  • Logger Configuration and Logger Hierarchy

Scheduled Courses

Want to Take this Course on a Different Day?

LANTEC is very responsive to local client needs and unique or custom class demands. If you require a delivery date option for a class title on our schedule, please constact us. We can often accommodate countless additional courses NOT available on our public schedules, please inquire for personal assistance.

Baton Rouge (225) 293-0656
Lafayette (337) 233-2016
New Orleans (504) 576-1010