LANTEC Logo
Lantec | Course: JAVA Programming Fundamentals

JAVA Programming Fundamentals

$2,495.00
5 days
Audience
Prerequisites

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

This course isn't currently on the schedule, but we can add it. Just let us know.

Need to Request 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 submit your specific request for immediate consideration. We can often accommodate countless additional courses NOT available on our public schedules, please inquire for personal assistance.
Want to schedule it?


Vanessa Jones, Stuller, Inc.

"Wonderful course. Enjoyed interaction. Shanna is a delight."