- Tel: +44 (0)1275 859666
EC23 - Java Fundamentals - SE Primer / Programming Workshop - 5 Days
Course Description
Customisation
For on-site courses (i.e. at your premises), we are more than happy to 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.
Course Details
- INTRODUCTION TO JAVA
- What Is Java?
- The Java Programming Language
- The Java Platform
- What Can Java Do?
- Advantages of using Java
- The "Hello World" Application
- The Java Programming Language
- OBJECT-ORIENTED CONCEPTS
- What Is an Object?
- The Benefits of Encapsulation
- What Are Classes?
- Objects vs. Classes
- The Benefit of Classes
- Sending Messages to an Object - Methods
- The Benefits of Messages
- What Is Inheritance?
- The Benefits of Inheritance
- The Benefits of Encapsulation
- VARIABLE DEFINITION AND 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
- Variable Naming
- ARITHMETIC AND BITWISE MANIPULATION
- Arithmetic Operators
- Unary Operations
- Bitwise Operators
- Assignment Operators
- Expressions
- Numeric Promotion
- Literal Values - Casting
- Casting
- Implicit Casting
- Unary Operations
- OBJECTS, METHODS AND CLASSES
- Introduction to Classes and Objects
- Methods
- A Simple Example
- Creating Objects
- Objects With References To Objects
- Manipulating Objects - Variables vs methods
- Method Syntax
- Calling an Objectxxs Methods
- Passing Arguments
- Passing Arguments - Under the Hood
- Passing Arguments and Method Overloading
- Variable Argument (VarArgs) Methods
- Using the xxthis.xx and xxsuper.xx Prefix
- Returning Values from Methods
- Encapsulation
- Constructors
- Constructor Example
- Constructor Syntax
- Constructor Rules
- Constructor Chaining
- Static Variables
- Static Code Blocks
- Initialization Order
- Using Final Fields
- Cleaning Up Unused Objects - The Garbage Collector
- Finalization
- Methods
- STRINGS
- Strings
- String Concatenation
- String Methods
- Testing for String Equality
- String Manipulation - the StringBuilder class
- Comparing StringBuilder Objects
- StringTokenizer
- String Concatenation
- CONTROL 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
- Conditional Operators
- 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
- What does a Subclass Inherit?
- 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
- Allocating Storage for an Array
- VARARGS
- Sending arguments
- How do we use the data?
- Using VarArgs in the Main method
- How do we use the data?
- 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
- Packages of the Java Platform
- JAVA KEYWORDS
- Class Declarations
- Variable Declarations
- Method Declarations
- Variable Declarations
- CONVERSION, FORMATTING AND PRECISION
- Data Type Conversion
- Wrapper Classes
- Autoboxing and Unboxing
- Decimal Precision
- Numeric Formatting
- Other Formatting Techniques
- Wrapper Classes
- DATES AND TIMES
- Date Processing - Java 8 - The Need for Change
- Creating Dates and Times
- User Defined Dates
- Java 8 - Manipulating Dates and Times
- Java 8 - Manipulating Dates and Times with ChronoUnit
- Java 8 - Working with Periods and Durations
- Java 8 - Date Manipulation
- Java 8 - Date and Time Formatting
- Java 8 - Date and Time Parsing
- Java 8 - Working with TimeZones
- Java 8 - Date Compatibility with Java 7
- Creating Dates and Times
- CASTING OBJECTS
- Casting Objects
- Method Access Modifiers And Inheritance
- Class Cast Exceptions
- Method Access Modifiers And Inheritance
- ABSTRACT CLASSES AND 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
- Abstract Class Example
- 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
- Summary Of Collection Implementations (Classes)
- SORTING OBJECTS
- Sorting Objects
- The Comparable Interface
- Comparators
- More Ways To Sort Objects
- Sorting and Searching Collections
- The Comparable Interface
- 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
- Built-In Functional Interfaces - Predicates
- Built-In Functional Interfaces - Functions
- Other Built-In Functional Interfaces
- Referencing the Outer Members from the Inner class
- 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
- Error, Exception and RuntimeException Classes
- 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
- Input and Output Streams
- NIO2
- Try-With-Resources
- NIO2
- Path
- Files
- FilesSystems and FileStore
- File Change Notification
- NIO2
- JUNIT INTRODUCTION
- JUnit Example
- JUnit assert Methods
- Testing for exceptions
- Testing Collections
- JUnit assert Methods
- JUNIT 4
- Testing with JUnit4
- Other JUnit 4 Features
- Other JUnit 4 Features
- JAVADOC
- What Does Javadoc Generate?
- Javadoc Tags
- Where Can Tags Be Used?
- Javadoc Tags
- ECLIPSE / NETBEANS
- Startup
- Perspectives
- Views
- Toolbars
- Editors
- Editors
- Tasks, Markers and Bookmarks
- Outline View
- Importing and exporting
- Searching
- Rearranging Views
- Comparing Files
- Local History
- Wizards
- Perspectives
- 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
- The editor context menu
- RUNNING AND DEBUGGING
- Running Java Apps
- Debug perspective
- Debugging
- Debug perspective