Java Programming Fundamentals
This intensly practical course covers all major aspects of programming with Java. It is essentially a condensed version of the courses 'Java SE Primer Workshop' and and' Java SE Programming Workshop', but excludes topics on Threads and Networking. The course is suitable for all versions of Java up to and including Java SE 8.
Development will be performed using Eclipse, IntelliJ, NetBeans, Websphere Studio Application Developer, Rational Application Developer, Jbuilder and the Java Development Kit (JDK) plus a text editor.
For exclusive one-company, on-site presentations of this course, we can tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course as well.
What you will learn
On successful completion of this course you will be able to:
- use the major concepts of a modern, block-structured, high-level language, such as control flow, method calls and modular programming
- structure programs using classes and other essential object-oriented features
- take advantage of and understand Interfaces
- use the Collections Framework
- create and handle Exceptions
- use the Java Input/Output classes
- understand and use Serialization to achieve persistence.
Who Should Attend
Software developers and applications programmer coming new to the Jave programming environment.
Prerequisites
Attendees should be familiar with the Windows host environment. Knowledge of any programming language is advantageous, but is not essential.
Duration
5 days
Fee (per attendee)
£2150 (ex VAT)
This includes free online 24/7 access to course notes.
Hard copy course notes are available on request from rsmshop@rsm.co.uk
at £50.00 plus carriage per set.
Course Code
JPFMF
Contents
Introduction to Java
What is Java? The Java Programming Language The Java Platform, the ClassPath; What Can Java Do?; Overview of the many subjects covered by Java; Advantages of using Java; Creating a java class; Running Simple Applications; A simple first example - The "Hello World" Application.
Object-Oriented Concepts
An introduction to Objects What is an Object?, Encapsulation Communicating between objects; What are Messages?, the benefits of Messages; Classes; What are Classes?, Objects vs. Classes, instantiation, the benefits of Classes; Inheritance; What is Inheritance?, the benefits of Inheritance
Variable Definition & Manipulation
Variables; Variable Naming; Naming Standards; Data Types; Literal Values; Numeric Literals; Variable Scope; Variable Initialisation; Final Variables (Constants); Final Reference Variables; Escape Characters; Passing Arguments to JAVA Programs; Simple System Input / Output Techniques.
Arithmetic & Bitwise Manipulation
Arithmetic Operators; Unary Operations; Bitwise Operators; Assignment Operators; Expressions; Numeric Promotion; Literal Values - Casting; Casting; Implicit Casting.
Objects, Methods & Classes
Introduction to Classes and Objects; Methods, Applications & Object Code; Creating & Manipulating Objects, Calling Methods, Passing Arguments and Method Overloading, Returning Values from Methods; Constructors, Static Code; Varargs; Inheritance - Extending a Class; What does a Subclass Inherit?; Methods in java.lang.Object; Garbage Collection & Finalization.
Strings
Strings; String Concatenation; String Methods; Testing for String Equality; String Manipulation - the StringBuilder class; Comparing StringBuilder Objects; StringTokenizer.
Controlled Flow Statements
Relational Operators; Conditional Operators; Control Flow Statements; The if-else Statement; The Ternary Expression; The Switch Statement; For Loop Statements; For-Each loop Statements; While loop Statements; Do-while loop Statements; Breaking out of Loops: break and continue; Labelled Loops.
Enums
Switching on Enums.
Inheritance
Inheritance - Extending a Class; What does a Subclass Inherit?; Rules for Overriding Methods; Overriding Methods - Example; Covariance; Hiding Static Methods; Overriding Instance / Hiding Static - Methods Summary; Hiding Variables; Inherited Methods in java.lang.Object; Overriding Equals and HashCode.
Arrays
Arrays; Allocating Storage for an Array; Using the ForEach Loop with Arrays; Passing Arrays as Arguments; Multi-Dimentional Arrays; Varying the Inner Dimension of a Two Dimensional Array; Arrays of Objects; Array Utilities; Sorting and Searching Arrays; Copying Arrays.
VarArgs
Sending arguments; How do we use the data?; Using VarArgs in the Main method.
Packages
Packages; Packages of the Java Platform; Using Package Members; Importing a Package Member; Referring to a Package Member by Name; Class Name Conflict; Static Imports; Static Imports and Enums; Importing multiple members with the same name.
Java Keywords
Class Declarations; Variable Declarations; Method Declarations.
Conversion, Formatting & Precision
Data Type Conversion; Wrapper Classes; Autoboxing and Unboxing; Decimal Precision; Numeric Formatting; Other Formatting Techniques.
Dates & Times
Date Processing - Java 7; Date Processing - Java 8 - The Need for Change; Creating Dates and Times; User Defined Dates; Java 8: Manipulating Dates and Times, Manipulating Dates and Times with ChronoUnit, Working with Periods and Durations, Date Manipulation, Date and Time Formatting, Date and Time Parsing, Working with TimeZones, Date Compatibility with Java 7.
Casting Objects
Casting Objects; Method Access Modifiers And Inheritance; Class Cast Exceptions.
Abstract Classes & Interfaces
Abstract Classes and Methods; Abstract Class Example; Interfaces; An Example Without Using Interfaces; Same Example Using Casting; Defining an Interface; Implementing an Interface; Same Example Using Interfaces; Implementing Methods; Interfaces with Static Variables and Methods; Interfaces with Default Methods - Java 8; Interface Methods vs Instance Methods - Rules; Duplicate Interface Methods - Rules; Functional Interfaces - Java 8.
Java Collections
Collection Interfaces; Summary Of Collection Implementations (Classes); Generics; Class Used in the Examples; Lists - The ArrayList Class; Lists - List Methods; ArrayList Methods; LinkedList Methods; Traversing Collections; Iterator / For Each Loop Processing; Using Collection Classes - Maps; List Implementations; Map Implementations; SET IMPLEMENTATIONS; Queue and Deque; Stacks; Properties; Preferences; Collection Utilities; Sets - Set Methods; SortedSet Methods; Vector Methods; Maps - Map Methods; SortedMap Methods; Hashtable Methods; Streams - Java 8; Parallel Streams - Java 8; Map Enhancements - Java 8.
Sorting Objects
Sorting Objects; The Comparable Interface; Comparators; More Ways To Sort Objects; Sorting and searching collections.
Nested Classes & Lambda Expressions
Member Inner Classes; Referencing the Outer Members from the Inner class; Example of Inner Class In Use; Method-Local Inner Classes; Anonymous Inner classes; Implementing Interfaces with Anonymous Inner Classes; Anonymous Inner Classes within Method calls; Static Nested Classes; Nested Class Summary; Functional Interfaces - Java 8; Using Lambda Expressions with Functional Interfaces; Lambda Expressions - Examples; Sorting Using the Comparator Interface - pre Java 8; Sorting Using the Comparator Interface - Lambda; Functional Interfaces and Generics; Using Method References - Java 8; - Built-In Functional Interfaces: Predicates, Functions; Other Built-In Functional Interfaces.
Error Handling
Java Exceptions; Error, Exception and RuntimeException Classes; Try / Catch Processing; The Finally Block; Java 7 Catch Blocks; Passing Exceptions Up the Stack - the Throws clause; The Throw Statement; User Defined Exceptions; Exceptions And Object Hierarchies; Using Exceptions as Arguments; Common Exception Types; Using System.exit() to Terminate; The Assert Statement.
Java I/O
Class java.io.File; Input and Output Streams; Classes to Read / Write; NIO and Buffers; Reading from Files; close(); Reading from Files Using a Scanner; Reading from Files Using NIO; Writing to Files; Reading Data; Writing Data; Reading from System Input; Standard Output Stream - System.out; Serialization - Persistence of Objects.
Java 7 & NIO2
Try-With-Resources; NIO2; Path; Files; FilesSystems and FileStore; File Change Notification.
Junit Introduction
JUnit Example; JUnit assert Methods; Testing for exceptions; Testing Collections.
Junit 4
Testing with JUnit4; Other JUnit 4 Features.
Javadoc
What Does Javadoc Generate?; Javadoc Tags; Where Can Tags Be Used?
Eclipse/NetBeans
Startup; Perspectives; Views; Toolbars; Editors; Tasks, Markers and Bookmarks; Outline View; Importing and exporting; Searching; Rearranging Views; Comparing Files; Local History; Wizards.
Eclipse/NetBeans Java Editor
Editing code and elements; The editor context menu; Code Formatter; Managing Java Imports; Extract Method; Content/Code Assist; Templates; Quick Fix.
Running & Debugging
Running Java Apps; Debug perspective; Debugging.