Advanced Java Training
This is a 5 week course specially designed for software developers with little or no exposure to Java programming language. On completion, attendees would be able to:
- Master Object Oriented concepts and O-O programming with Java
- Master Java syntax and semantics, class declarations, package concepts
- Develop I/O based programs, object serialization
- Master exception handling
- Master concurrence techniques
- Master generics
Prerequisites
None
Curriculum
-
Object-Oriented Programming Concepts
- What is an Object?
- What is a Class?
- Inheritance
- Encapsulation
- Polymorphism
-
Language Basics
- Primitive Types
- Arrays
- Operators
- Assignment, Arithmetic and Unary Operators
- Equality, Relational and Conditional Operators
- Bitwise and Shift Operators
- Control Flow Statements
- if-then, if-then-else statements
- while, do-while statements
- for statement
- Branching statements
- switch statement
-
Classes and Objects
- Declaring Classes
- Declaring Member Variables
- Defining Methods
- Constructors
- Message passing
- Returning messages
- this keyword
- Access Modifiers
- Initialization
- Nested Classes
- Enums
- Annotations
-
Inheritance and Interfaces
- Defining Interface
- Implementing Interfaces
- Overriding
- super Keyword
- Final Classes
- Abstract Classes
-
Numbers, Characters and Strings
- Number classes
- Formatting
- Manipulating Strings
- StringBuilder
-
Packages
- Creating Packages
- Naming a Package
- Package Members
- Importing classes
-
Generics
- Types
- Type Erasure
- Generic Methods and Constructors
- Bounded Types
- Subtyping
- Wildcards
- Type Erasure
-
Exception Handling
- What is an Exception?
- try Block
- try-catch Block
- finally Block
- Throwing Exceptions
- Chaining Exceptions
- Checked/Unchecked Exceptions
- Creating Exception Classes
- Error Classes
-
Basic I/O
- I/O Streams – Byte, Character, Buffered
- Scanning
- Formatting
- Data Streams
- Object Streams
- Readers and Writers
- Random Access File
- New I/O Classes
- Buffers
- Channels
-
Collections
- Collection Interface
- Set Interface
- List Interface
- Queue Interface
- Map Interface
- Object Ordering
- Implementations
- Algorithms
- Custom Collection Implementations
-
Concurrency
- Processes and Threads
- Thread and Runnable
- Starting a Thread
- Pausing a thread
- Interrupts
- Joins
- Synchronization
- Intrinsic Locks
- Atomic Access
- Deadlock
- Livelock
- Gaurded Blocks
- Lock Objects
- Executors
- Thread Pools
- Atomic Variables
- Concurrent Collections
- ThreadLocal Objects
-
Networking
- What is a Socket?
- TCP/IP and UDP
- Datagram
- Reading from a Socket
- Writing to a Socket
- Broadcasting
- ServerSockets
- Writing a client Server Application
- Working with URLs
- Network Interface Addresses
-
JDBC
- JDBC Architecture
- Relational Database Overview
- Setting up a Database (MySQL)
- Connecting to a Database
- SQL
- Retrieving data from Result Sets
- Updating Tables
- Prepared Statements
- Joins
- Transactions
- Stored Procedures
- Building a complete JDBC Application
-
JNDI
- Overview of JNDI
- Looking up a Resource
- JNDI Context
- Add, Replace or Remove a Binding
- Subcontexts
-
Remote Method Invocation (RMI)
- Distributed Computing
- Remote Interface
- Serialization
- Implementing a Remote Interface
- Remote Client
- Security
- RMI Registry
-
Java Management Extensions (JMX)
- What is JMX?
- JMS Architecture
- Standard MBeans
- MXBeans
- Notifications
- JMX Connectors
-
Regular Expressions
- String Literals
- Character Classes
- Predefined classes
- Groups
- Matchers
- Boundary Matchers
- Pattern Class
-
Reflection
- Examining Class Objects
- Examining Class Modifiers
- Getting and Setting Field Values
- Obtaining Method Type Information
- Invoking Methods
- Retrieving and Parsing Constructors
- Creating New Class Instances
- Creating New Arrays
- Creating Enumerated Types
-
Swing
- What is Swing?
- Look and Feel
- Components, Panels, Windows, Buttons
- ActionListeners
- Layouts
- Graphics
- Integrating with Desktop
- Creating System Tray Icon
