Introduction to Java Training

Answers to Popular Questions:

 
Yes, this class can be tailored to meet your specific training needs.
Yes, we provide Java Programming consulting services.
Yes, group discounts are provided.

Course Description

 
This Java training course covers most Java syntax elements, concentrating on fundamental and universally useful elements, while providing an overview of many more advanced elements. Students will learn to write useful Java classes, applying Object-Oriented concepts such as inheritance, and create Java programs that work with these classes. Early in the class the concept of objects is introduced so that later concepts can be discussed from the perspective of object orientation. The class is based on Java 1.5 and 1.6, but most concepts would apply in 1.4 as well.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

This course is intended for students without an extensive programming background. If you have a lot of object-oriented programming experience in a language such as C# or C++, you may want to consider our Java Programming Training for Experienced Programmers class instead.

Course Outline

 

Class Goals

    Learn how Java works.
    Understand the "write once, run anywhere" concept.
    Understand and learn how to create basic Java objects.
    Learn how to implement flow-control concepts in Java.
    Understand Java's package concept and create packages of Java classes.
    Understand Java arrays and write code to create and use arrays.
    Learn how to write Java classes using inheritance.
    Learn how to create and use interfaces.
    Understand and use the concept of polymorphism in an application
    Understand how Java's exception-handling mechanism works and learn how to apply exception-handling to Java applications.
    Understand and use inner classes.
    Learn how to use elements from the Java API library, including the Collections classes.
    
    
    
    
    Class Outline
    
        Java Introduction
            Conventions in These Notes
            The Java Environment - Overview
            Writing a Java Program
            Obtaining The Java Environment
            Setting up your Java Environment
            Creating a Class That Can Run as a Program
                The main() Method
            Useful Stuff Necessary to go Further
                System.out.println()
            Using the Java Documentation
        Java Basics
            Basic Java Syntax
                General Syntax Rules
                Java Statements
                Blocks of Code
                Comments
                Variables
            Data
                Primitive Data Types
                Object Data Types
                Literal Values
                Constants and the final keyword
            Mathematics in Java
                Expressions
                Operator Precedence
                Multiple Assignments
                Order of Evaluation
                Bitwise Operators
                Compound Operators
                Expressions that Mix Data Types: Typecasting
            Creating and Using Methods
                Creating Methods
                Variable Scope
        Java Objects
            Objects
                Object-Oriented Languages
                Object-Oriented Programs
                Encapsulation
                Creating and Using an Instance of an Object
                References
                Defining a Class
                Java Beans
                Constructors
                Method Overloading
                The this Keyword
                static Elements
                Garbage Collection
                Java Packages
                Dealing with Keyboard Input
            String, StringBuffer, and StringBuilder
            Creating Documentation Comments and Using javadoc
                Javadoc Comments
        Comparisons And Flow Control Structures
            Controlling Program Flow
                Boolean-Valued Expressions
                Complex boolean Expressions
                Simple Branching
                Two Mutually Exclusive Branches
                Nestedif... elseStatements - Comparing a Number of MutuallyExclusive Options
                Comparing a Number of Mutually ExclusiveOptions - The switchStatement
                Comparing Objects
                Conditional Expression
                while and do. . .while Loops
                for Loops
            Additional Loop Control: break and continue
                Breaking Out of a Loop
                Continuing a Loop
            Classpath, Code Libraries, and Jar files
                Using CLASSPATH
                Creating a jar File (a Library)
        Arrays
            Arrays
                Defining and Declaring Arrays
                Instantiating Arrays
                Initializing Arrays
                Working With Arrays
                Array Variables
                Copying Arrays
                Arrays of Objects
            Enhanced for Loops - the For-Each Loop
            Multi-Dimensional Arrays
                Multidimensional Arrays in Memory
                Example - Printing a Picture
            Typecasting with Arrays of Primitives
        Inheritance
            Inheritance
                Payroll with Inheritance
                Derived Class Objects
            Polymorphism
                Inheritance and References
                Dynamic Method Invocation
            Creating a Derived Class
                Inheritance and Access
                Inheritance and Constructors - the super Keyword
                Derived Class Methods That Override Base Class Methods
                Inheritance and Default Base Class Constructors
                The Instantiation Process at Runtime
            Example - Factoring Person Out of Employee and Dependent
            Typecasting with Object References
                Typecasting, Polymorphism, and Dynamic Method Invocation
                More on Overriding
                Object Typecasting Example
                Checking an Object's Type: Using instanceof
                Typecasting with Arrays of Objects
            Other Inheritance-Related Keywords
                abstract
                final
            Methods Inherited from Object
        Interfaces
            Interfaces
            Creating an Interface Definition
            Implementing Interfaces
                Implementing Interfaces - Example
            Reference Variables and Interfaces
                Calling an Interface Method
            Interfaces and Inheritance
            Some Uses for Interfaces
                Interfaces and Event-Handling
                Interfaces and "Pluggable Components"
        Exceptions
            Exceptions
                Handling Exceptions
                Exception Objects
            Attempting Risky Code - try and catch
            Guaranteeing Execution of Code - the finally Block
            Letting an Exception be Thrown to the Method Caller
            Throwing an Exception
            Exceptions and Inheritance
                Exception Class Constructors and Methods
            Creating and Using Your Own Exception Classes
            Rethrowing Exceptions
            Initializer Blocks
                Static Initializer Blocks
                Assertions
        Generics and Collections
            Fundamental Collections: Sets, Lists, and Maps
            Iterators
            Creating Collectible Classes
                hashCode and equals
                Comparable and Comparators
            Generics
                Basic Generics Syntax
                Bounded Types and Wildcards
        Inner Classes
            Inner Classes, aka Nested Classes
                Inner Class Syntax
                Instantiating an Inner Class Instance from Within the Enclosing Class
                Inner Classes Referenced from Outside the Enclosing Class
                Working with Inner Classes
 

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Java Programming Uses & Stats

Java Programming is Used For:
Android & IOS Development Software Products Video Games Desktop GUI's
Difficulty
Popularity
Year Created
1995
Pros

Most Commonly Used: 
According to Oracle, three billion devices run on Java.  And, because of its real-world applications, it consistently ranks at the top of the TIOBE Programming Community Index. 

Great Career Choice: 
Some of the fastest-growing salaries in the U.S. in 2018 are for Java developers.  (Glassdoor)  

Android Apps Development:
Developers predominatly use their Java skills in building apps for Google's Android. The Android platform is the number one mobile paltform in the world

It Can Run On Any Platform:
Java can compile on Windows and run the same compiled file on Linux, Windows and Mac.

Great Supporting IDE's:
Over the years, coding in Java has become simpler with the introduction of open source development tools, i.e. Eclipse and NetBeans that use Java capabilities for debugging.  
 

Cons

Uses a Lot of Memory:
Performance can be significantly slower with Java and more memory-consuming than natively compiled languages such as C or C++.

Difficulty in Learning: 
Learning Java can be a bit challenging if you are a beginner.  However, once you get the hang of Object Oriented Programming and a decent grasp of the syntax, you will be well on your way.

Slow Start Up Times:
There is quite a bit of one-time initialization done by JDK classes before compiling as well as loading classes and verification (making sure code doesn't do evil things, all of which takes longer that some other languages such as C. 

Verbose and Complex Code:
Long, over-complicated sentences make code less readable and scannable. Compare to let's say Python, we can see how clear Python code appears: It doesn’t require semicolons; uses “and,” “or,” and “not” as operators instead of Java’s “&&,” “||,” and “!”; and generally has fewer bells and whistles such as parentheses or curly braces.

Commercial License Cost:
Companies have to prepare for the changes that Oracle will institute in 2019 . Today, the current version of Java is free and available for redistribution for general purpose computing. However, If you are a DEVELOPER, Oracle recommends you review the roadmap information for Java SE 8 and beyond and take appropriate action depending on the type of application you develop and your distribution mode.

Java Programming Job Market
Average Salary
$102,000
Job Count
26,856
Top Job Locations

New York City 
San Jose
Washington D.C, 

Complimentary Skills to have along with Java Programming

- If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally.  As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development.  Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings...

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.