JAVA Programming Fundamentals
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?
Reyna Pando, US Army - Ft. Johnson
"I enjoyed Ryan's teaching methods. Very easy to follow, and to understand."