Course description
Java is everywhere and is as popular as ever. This hands-on course, delivered using Java 17, endeavours to provide the fundamental skills you need to become a Java Developer. We'll have you build a series of realistic apps focusing on object-oriented principles from the start.
Note that this is not a beginners course. You are expected to be familiar with programming concepts and have a little coding experience. If not you should consider our Introduction to Programming - Java course instead.
Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.
Who will the Course Benefit?The Java Programming 1 / Java Developer course is aimed at anyone with a little coding experience seeking to become a Java Developer, and existing developers seeking to migrate to Java.
Course ObjectivesThis course aims to provide the delegate with the skills needed to build object-oriented apps using Java that exploit all of the fundamental elements of the language.
Upcoming start dates
Suitability - Who should attend?
Delegates attending this course should be able to define general programming concepts including compilation and execution, variables, arrays, sequence, selection and iteration, navigate the filesystem (on the command line ideally), edit and save text files and browse the web. This knowledge can be obtained by attendance on the pre-requisite Introduction to Programming - Java course.
Experience to the level as demonstrated in this course is recommended:
- Introduction to Programming - Java
Training Course Content
Java Programming 1 / Java Developer Training Course
Course Contents - DAY 1
Course Introduction- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
- The Java language
- The Java platform
- App structure incl. modules, packages, and classes (brief)
- The main method
- Reading from stdin and writing to stdout
- Reading from and writing to a text file
- Compilation and execution
- What is an object
- What is a class
- Object-oriented apps
- Classes
- Fields
- Constructors
- Methods
- Objects
- Instantiation
- Getting and setting fields
- Calling methods
- Instance fields
- Default values
- Local variables incl. parameters
- Primitives
- Literals
- Default types
- Casting
- References
- Arrays (brief)
- Strings (brief)
- Primitive wrappers
- Constants
- Type inference
- Varargs
- Naming conventions
Course Contents - DAY 2
Session 4: DECISIONS & LOOPS- Relational and conditional operators
- If statements
- Switch statements
- Switch expressions
- The ternary operator
- While loops
- For loops (both kind)
- Branching statements (break, continue, return)
- What is an array
- List vs. array
- Map vs. list
- Generic classes (brief)
- Arrays
- Declaration and initialisation
- Setting and getting elements
- Sizing
- Iterating
- Multi-dimensional arrays
- Command line arguments
- The ArrayList and HashMap classes
- Imports
- Adding elements incl. autoboxing
- Membership testing
- Accessing elements
- Changing elements
- Removing elements
- Sizing
- Iterating
- What does it mean to be static
- Static fields
- Static methods
- Static context
- Static imports
- Enums
- Strings to numbers
- Arithmetic and unary operators
- The Math class
- The BigDecimal class
- Number formatting
Course Contents - DAY 3
Session 8: STRINGS & REGEX- What is a String
- Immutable objects
- The String Pool
- Strings
- Creation
- Escape characters
- Concatenation
- Text blocks
- Format Strings
- Length
- Transformative methods
- Search methods
- Comparative methods
- Java 11 methods
- StringBuilder
- Pattern matching
- Regular expressions
- The Pattern and Matcher classes
- What is an exception
- Checked vs. unchecked exceptions
- Exceptions and the call stack
- Try, catch, and finally
- Handling multiple exception types
- Try with resources
- Throwing exceptions
- Custom exceptions (brief)
- What is encapsulation
- Access modifiers
- Private fields and public methods
- Getters and setters
- Constructors (for controlling instantiation)
- The this keyword
- Records
Course Contents - DAY 4
Session 11: COMPOSITION & AGGREGATION- What is composition
- What is aggregation
- Composite associations
- Aggregate associations
- Constructor injection (mandatory)
- Setter injection (optional)
- The problem with getter methods (refs. vs. copies)
- What is inheritance
- The purpose of inheritance
- Extending a superclass
- Shadowing
- Overriding
- Subclass constructors
- The super keyword
- Inheritance polymorphism
- Upcasting and downcasting
- The instanceof operator
- Final classes and methods
- Sealed classes
- The Object class incl. toString, hashCode, and equals (brief)
- What is abstraction
- The purpose of abstraction
- Abstract classes and methods
- Extending an abstract class
- Interfaces
- Implementing one or more interfaces
- Extending and implementing
- Interface polymorphism
- Interface default, static, and private methods
Course Contents - DAY 5
Session 13: MODERN FILE IO- What is a stream
- The different types of stream
- The Path class
- Reading all bytes/lines from a file
- Writing all bytes/lines to a file
- Reading from a file using a buffered stream
- Writing to a file using a buffered stream
- Parsing a file using a Scanner
- What is a module
- Module descriptor
- Module requires and exports
- Compiling a module
- Using jdeps to determine a module's dependencies
- Compiling a module that requires other modules
- Executing a module
- Using jlink to build a custom JRE
- What is JDBC
- Loading the driver
- Establishing a connection
- AutoCommit
- Transaction management
- Creating a statement
- PreparedStatement
- CallableStatementt
- Batch updates
- Executing a query/update
- Processing a ResultSet
- Type
- Concurrency
- Holdability
- Closing resources
Customer Outreach Award
We believe that it should be easy for you to find and compare training courses.
Our Customer Outreach Award is presented to trusted providers who are excellent at responding to enquiries, making your search quicker, more efficient and easier, too.
Reviews
Average rating 4.7
Very well taught
The course and materials were really useful. This is probably the best course I've been on during my time as an apprentice. Stuart was great and really knows his stuff, he was v...
Continuing Studies
Further Learning
- Java Programming 2 / Java Advanced Developer
- Unit Testing with JUnit
- Core Spring
- Developing Applications with Java EE
- Design Patterns in Java
Request info
Why StayAhead. From a single person on a scheduled course to large scale training projects StayAhead Training have the expertise and experience to help. Established since 1992, StayAhead Training is recognised as one of the leading independent IT Training specialists...
All round fantastic and well rounded. Great tutor, engaging delivery. Highly recommended.