Java

Core Java

Module 1: Introduction to Java

  • Features of Java
  • Simple
  • Secure
  • Portable
  • Robust
  • Multithreading
  • Platform-Independent
  • Distributed.
  • Dynamic
  • New Features of Java 8
  • Introducing Java Environment
  • Java Development Kit
  • Java Platforms
  • Java Virtual Machine
  • Java API
  • Java Programs
  • Installing Java
  • What about CLASSPATH?
  • Java’s Reserve Words
  • Starting a Java program
  • Line 1—public class App
  • Line 2—public static void main(String[] args)
  • Line 3—System.out.println(“Hello from Java!”);
  • Compiling Code 15
  • Compiling Code: Using Command-Line Options
  • Cross-Compilation Options
  • Compiling Code: Checking for Deprecated Methods
  • Running Code
  • Running Code: Using Command-Line Options
  • Commenting Your Code
  • Importing Java Packages and Classes
  • Finding Java Class with CLASSPATH
  • Summary

Module 2: Variables, Arrays and Strings

  • Variables
  • Data Typing
  • Arrays
  • Strings
  • What Data Types are Available?
  • Creating Integer Literals
  • Creating Floating-Point Literals
  • Creating Boolean Literals
  • Creating Character Literals
  • Creating String Literals
  • Creating Binary Literals
  • Using Underscores in Numeric Literals
  • Declaring Integer Variables
  • Declaring Floating-Point Variables
  • Declaring Character Variables
  • Declaring Boolean Variables
  • Initializing Variables Dynamically
  • Conversion between Data Types
  • Automatic Conversions
  • Casting to New Data Types
  • Declaring One-Dimensional
  • Creating One-Dimensional Arrays
  • Initializing One-Dimensional Arrays
  • Declaring Multi-Dimensional Arrays
  • Creating Multi-Dimensional Arrays
  • Initializing Multi-Dimensional Arrays
  • Creating Irregular Multi-Dimensional Arrays
  • Getting an the Length of an Array
  • Understanding General Form of Static Import
  • Importing Static Members
  • The String Class
  • Getting String Length
  • Concatenating Strings
  • Getting Characters and Substrings
  • Searching For and Replacing Strings
  • Changing Case in Strings
  • Checking for Empty String
  • Formatting Numbers in Strings
  • The StringBuffer Class
  • Creating StringBuffers
  • Getting and Setting StringBuffer Lengths and Capacities
  • Setting Characters in String Buffers
  • Appending and Inserting Using StringBuffers
  • Deleting Text in StringBuffers
  • Replacing Text in String Buffer
  • Using the Wrapper Class
  • Autoboxing and Unboxing of Primitive Types
  • Learning the Fundamentals of Varargs Methods
  • Overloading Varargs Methods
  • Learning the Ambiguity in Varargs Methods
  • Using Non-Reifiable Formal Parameters

Module 3: Operators, Conditionals and Loops

  • Operators
  • Conditionals
  • Loops
  • Operator Precedence
  • Incrementing and Decrementing (++ and –)
  • Unary NOT (~ And !)
  • Multiplication and Division (* and /)
  • Modulus (%)
  • Addition and Subtraction (+ and -)
  • Shift Operators (>>, >>>, and <<)
  • Relational Operators (>, >=, <, <=, ==, and !=)
  • Bitwise and Bitwise Logical AND, XOR, and OR (&, ^, and /)
  • Logical (&& and ||)
  • The if-then-else Operator
  • Assignment Operators (= and [operator]=)
  • Using the Math
  • Changes in the Math Class
  • Class StrictMath
  • Comparing Strings
  • The if Statement
  • The else Statement
  • Nested if
  • The if-else Ladders
  • The switch Statement
  • Using Strings in switch Statement
  • The while Loop
  • The do-while Loop
  • The for Loop
  • The for-each Loop
  • Supporting for-each in Your Own Class
  • A (Poor) Solution
  • Significance of for-
  • Nested Loops
  • Using the break Statement
  • Using the continue Statement
  • Using the return Statement
  • Summary

Module 4: Class, Object, Packages and Access Specifiers

  • The Control Overview of a Class
  • Working with Objects
  • Working with Methods
  • Defining Default Methods
  • Working with Constructors
  • Using Default Constructor
  • Using Parameterized Constructors
  • Exploring Packages
  • Studying the Types of Packages
  • Importing Packages
  • Using Access Specifiers
  • Working with Streams API
  • Stream API Overview
  • Collection and Stream
  • Commonly Used Functional Interfaces in Stream
  • Java.util.Optional
  • Aggregate Operations
  • Working with Time API

Module 5: Implementing Object-Oriented Programming in Java

  • Understanding Encapsulation
  • Understanding Abstraction
  • Understanding Inheritance
  • Understanding the final Keyword
  • Preventing Inheritance
  • Declaring Constant
  • Preventing Method Overriding
  • Implementing Interfaces
  • Working with Lambda Expressions
  • Method References
  • Using Lambda Expressions
  • Implementing Abstract Classes and Methods
  • Difference between Abstract Classes and Interfaces
  • Implementing Polymorphism
  • Understanding the Static Polymorphism
  • Understanding the Dynamic Polymorphism
  • Summary

Module 6: Working with Streams, Files and I/O Handling

  • Streams, Readers and Writers
  • Essentials in NIO
  • Buffers
  • Channels
  • Charsets and Selectors
  • Enhancements in NIO with Java 8
  • The Path Interface
  • The Files Class
  • The Paths Class
  • The File Attribute Interfaces
  • The FileSystem Class
  • The FileSystems Class
  • The FileStore Class
  • Prospects of NIO
  • Working with Streams
  • The InputStream Class
  • The OutputStream Class
  • The ByteArrayInputStream Class
  • The ByteArrayOutputStream Class
  • The BufferedInputStream Class
  • The BufferedOutputStream Class
  • The FileInputStream Class
  • The FileOutputStream Class
  • Working with the Reader Class
  • Working with the Writer Class
  • Accepting Input from the Keyboard with the InputStreamReader Class
  • Working with the OutputStreamWriter Class
  • Working with Files
  • Using the File Class
  • Using the FileReader Class
  • Using the FileWriter Class
  • Working with the RandomAccessFile Class
  • Working with Character Arrays
  • Using the CharArrayReader Class
  • Using the CharArrayWriter Class
  • Working with Buffers
  • Using the BufferedReader Class
  • Using the BufferedWriter Class
  • Working with the PushbackReader Class
  • Working with the PrintWriter Class
  • Working with the StreamTokenizer Class
  • Implementing the Serializable Interface
  • Working with the Console Class
  • Working with the Clipboard
  • Working with the Printer
  • Printing with the Formatter Class
  • Using the System.out.printf() Method
  • Using the String.format() Method
  • Formatting Dates Using the String.format() Method
  • Using the Java.util.Formatter Class
  • Scanning Input with the Scanner class
  • Summary

Module 7: Implementing Exception Handling

  • Overview of Exceptions
  • Exception Handling Techniques
  • Rethrowing Catched Exception with Improved Type Checking
  • Built-in Exceptions
  • User-Defined Exceptions
  • Summary

Module 8: Working with Multiple Threads

  • Using Threads in Java
  • Life Cycle of a Thread
  • Synchronization of Threads
  • Multithreaded Custom Class Loader
  • Getting the Main Thread
  • Naming a Thread
  • Pausing a Thread
  • Creating a Thread with the Runnable Interface
  • Creating a Thread with the Thread Class
  • Creating Multiple Threads
  • Joining Threads
  • Checking if a Thread Is Alive
  • Setting Thread Priority and Stopping Threads
  • Synchronizing
  • Communicating between Threads
  • Suspending and Resuming Threads
  • Creating Graphics Animation with Threads
  • Eliminating Flicker in Graphics Animation Created Using Threads
  • Suspending and Resuming Graphics Animation
  • Using Double Buffering
  • Simplifying Producer-Consumer with the Queue Interface
  • Implementing Concurrent Programming
  • Simplifying Servers Using the Concurrency Utilities
  • Knowing Various Concurrency Utilities
  • Learning about the Java.util.concurrent Package
  • Learning about the Java.util.concurrent.locks Package
  • Learning about the Java.util.concurrent.atomic Package
  • Summary

Module 9: Working with Collections Framework

  • The Collection Interfaces
  • The Collection Classes
  • The Map Interfaces
  • The Map Classes
  • Collections Framework Enhancements in Java SE 8
  • Using the Collection Interface
  • The Queue Interface
  • The List Interface
  • The Set Interface
  • The SortedSet Interface
  • Using the Collection Classes
  • Using the Comparator Interface
  • Using the Iterator Interface
  • Using the ListIterator Interface
  • Using the AbstractMap Class
  • Using the HashMap Class
  • Using the TreeMap Class
  • Using the Arrays Class
  • Learning the Fundamentals of Enumerations
  • The Legacy Classes and Interfaces
  • Using the Aggregate Operations
  • Using the Java.util.function Package
  • Summary

Module 10: Creating Packages, Interfaces, JAR Files and Annotations

  • Packages and Interfaces
  • JAR Files
  • The Java API Package
  • The Java.lang Package
  • Basics of Annotation
  • Other Built-In Annotations
  • Creating a Package
  • Creating Packages that have Subpackages
  • Creating an Interface
  • Implementing an Interface
  • Extending an Interface
  • Using Interfaces for Callbacks
  • Performing Operations on a JAR File
  • Marker Annotations
  • Single Member Annotations
  • Summary

Module 11: Working with Java Beans

  • What is Java Bean?
  • Advantages of Java Bean
  • Introspection
  • Persistence
  • Customizers
  • Understanding Java Beans
  • Designing Programs Using Java Beans
  • Creating Applets that Use Java Beans
  • Creating a Java Bean
  • Creating a Bean Manifest File
  • Creating a Bean JAR File
  • Creating a New Bean
  • Adding Controls to Beans
  • Giving a Bean Properties
  • Design Patterns for Properties
  • Using Simple Properties
  • Designing Patterns for Events
  • Learning Methods and Design Patterns
  • Creating Bound Properties
  • Giving a Bean Methods
  • Giving a Bean an Icon
  • Creating a BeanInfo Class
  • Setting Bound and Constrained Properties
  • Implementing Persistence
  • Using the Java Beans API
  • Learning the Basics of an Event
  • Using the Java Beans Conventions
  • Using the Remote Notification and Distributed Notification
  • Using Beans with JSP
  • Summary

Module 12: Networking and Security with Java

  • Basics of Networking
  • Sockets in Java
  • Client-Server Networking
  • Proxy Servers
  • Internet Addressing
  • Domain Name Service
  • Inet4Addresses and Inet6Addresses
  • The URL Class
  • The URI Class
  • URI Syntax and Components
  • TCP/IP and Datagram
  • Blackboard Assignment Retrieval Transaction
  • Understanding Networking Interfaces and Classes in the Java.net Package
  • Understanding the InetAddresses
  • Caching InetAddress
  • Creating and Using Sockets
  • Creating TCP Clients and Servers
  • Understanding the Whois Example
  • Submitting an HTML Form from a Java Program
  • Handling URL
  • Using the URLConnection Objects
  • Working with Datagrams
  • Datagrams Server and Client
  • Working with BART
  • Learning about the Java.security Package
  • Summary

Module 13: Implementing Event Handling and Wrappers in Servlets 3.1

  • Introducing Events
  • Introducing Event Handling
  • Working with the Types of Servlet Events
  • Developing the onlineshop Web Application
  • Introducing Wrappers
  • Working with Wrappers
  • Summary

Module 14: Java Server Pages 2.3 and Expression Language 3.0

  • Introducing JSP Technology
  • Listing Advantages of JSP over Java Servlet
  • Exploring the Architecture of a JSP Page
  • Describing the Life Cycle of a JSP Page
  • Working with JSP Basic Tags and Implicit Objects
  • Working with Action Tags in JSP
  • Exploring EL
  • Using Custom Tag Library with EL Functions

Module 15: Implementing Filters

  • Exploring the Need of Filters
  • Exploring the Working of Filters
  • Exploring Filter API
  • Configuring a Filter
  • Creating a Web Application Using Filters
  • Using Initializing Parameter in Filters
  • Manipulating Responses
  • Discussing Issues in Using Threads with Filters
  • Summary

Module 16: Java EE Design Patterns

  • Describing the Java EE Application Architecture
  • Introducing a Design Pattern
  • Discussing the Role of Design Patterns
  • Exploring Types of Patterns
  • Summary

Module 17: Implementing SOA using Java Web Services

  • Section A: Exploring SOA and Java Web Services
  • Overview of SOA
  • Describing the SOA Environment
  • Overview of JWS
  • Role of WSDL, SOAP and Java/XML Mapping in SOA
  • Section B: Understanding Web Service Specifications to Implement SOA
  • Exploring the JAX-WS 2.2 Specification
  • Exploring the JAXB 2.2 Specification
  • Exploring the WSEE 1.3 Specification
  • Exploring the WS-Metadata 2.2 Specification
  • Describing the SAAJ 1.3 Specification
  • Working with SAAJ and DOM APIs
  • Describing the JAXR Specification
  • JAXR Architecture
  • Exploring the StAX 1.0 Specification
  • Exploring the WebSocket 1.0 Specification
  • Describing the JAX-RS 2.0 Specification
  • Exploring the JASON-P 1.0 Specification
  • Section C: Using the Web Service Specifications
  • Using the JAX-WS 2.2 Specification
  • Using the JAXB 2.2 Specification
  • Using the WSEE and WS-Metadata Specifications
  • Implementing the SAAJ Specification
  • Implementing the JAXR Specification
  • Implementing the StAX Specification