Core java
Java has been one of the most popular programming language for many years. Java is Object Oriented. However it is not considered as pure object oriented as it provides support for primitive data types (like int, char, etc) .
Java is used in all kind of applications like Mobile Applications (Android is Java based), desktop applications, web applications, client server applications, enterprise applications and many more.
Course Objectives
To learn why Java is useful for the design of desktop and web applications. To learn how to implement object-oriented designs with Java. To identify Java language components and how they work together in applications. To design and program stand-alone Java applications.
Things you will learnin Advanced Java Training
We help our students at every stage, from the start of a course to the actual skill-building technique. Our curriculum covers the following.
- Java’s Might as a Programming Language
- Relevance of C language in the ultra-modern century
- Codification: Classification of Programming Languages
- Machine Level – 11000101
- Assembly Level – ADD AX, BX
- High Level – print(10+12)
- Memory Hierarchy
- Object File V/s Executable File
- Assembler V/s Compiler
- Compiler V/s Interpreter
- First Java Program: Prototype of main() method – Visibility V/s Accessibility
- Know your commands: Java commands to Compile and Execute
- Nitty-gritty of Java: .class File
- Command Line Arguments
- Valid Signatures of main() method
- Streams in Java
- Object Orientation & its Principles
- Classes and Objects
- Design Guesser Game Application
- Java Documentation (Javadoc)
- Statically typed V/s Dynamically typed
- Java Naming Conventions
Data Types | Variables | Literals | Type Casting
- Integer data types – byte, short, int, long
- How real-world data is stored in Memory?
- Overflow V/s underflow
- Wraparound behavior
- Binary | Decimal | Hexadecimal | Octal representation
Floating-point data types – float, double
- Intro to IEEE
- BigDecimal class
- Strictfp keyword
- ASCII Encoding Format V/s
- UNICODE Encoding Format
- UTF – 8 V/s UTF – 16 V/s UTF – 32
- Escape sequences
- Boolean data type
- Implicit V/s Explicit Type Casting – Widening | Narrowing
- Truncation – Rounding towards Zero
- Wrapper classes
- Special symbols in identifiers and literals
- Methods
- Types of Methods
- Method Overloading
- Don’t fall for the illusion: VirtualPolymorphism
- Method Overloading with Type Promotion
- Overloading of main() method
- Variable Approach V/s Array Approach
- Types of Arrays
- Regular V/s Jagged Arrays
- Array of Objects
- Control Structures
- Loops in Java – for | while | do-while | for-each
- Arrays Programming
- java.util.
- Arrays inbuilt class
- Programming with Matrices
- Time Complexity V/s Space
- Complexity
- Know when to use: Advantages and Disadvantages of Arrays
Most commonly used objects: Strings
- Immutable V/s Mutable Strings
- Memory allocation of Strings
- Common Operations on Strings – equals() | concat() | intern() | method()
- Inbuilt methods of String class
StringBuffer and StringBuilder classes - StringBuffer V/s StringBuilder
- C Strings V/s Java Strings
- Private access modifier
- Accessors and Mutators
- Shadowing Problem
- “this” keyword
- builder does the setting up: Constructors
- Types of Constructors
- Constructor Overloading
- Constructor Chaining
– this()
– super() - Singleton Design Pattern
– Singleton Class
Sharing is caring: “static” keyword
- Ideal Execution of a Java Program
– static control flow
– instance control flow
– with both static and instance elements - Static variables V/s Instance variables – class variables
- Static methods V/s Instance methods
- Static blocks V/s Instance blocks
- Inner classes V/s Nested classes
Know your relationship status: Inheritance – “is-a”
- “extends” keyword
- Advantages of Inheritance
- Rules of Inheritance
- Types of Inheritance
- “super” keyword – super V/s super()
- Sealed classes
- Constructor chaining in Inheritance
- Static control flow in Inheritance
- Types of Methods in Inheritance
- Method Overriding
- java.lang.Object class
Carbon is Diamond: Polymorphism
- Runtime Polymorphism / Dynamic Method Dispatch
- Tight coupling V/s Loose coupling
- Type Casting between objects
- Upcasting V/s Downcasting
- Advantages of Polymorphism
- Runtime polymorphism with Data members
- Benefits of Polymorphism
- Static Binding V/s Dynamic Binding
- Instance of operator
- Method Hiding
Refashion the accessibility: Access modifiers – public | protected | default | private
- Packages in Java
- Modules in Java
- Rules of Overriding
Has-A Relationship: Aggregation and Composition
Delegation Model
Everything need not make sense at the top level: Abstraction
- Abstract classes
- Concrete methods V/s Abstract methods
- Advantages of Abstraction
- “final” keyword
- Java Enums
- java.lang.Math class
- Static import
Raise your standards: Interfaces
- “implements” keyword
- Rules governing the use of Interfaces – Marker Interface
- Inheritance with Interfaces
- “extends” with “implements”
- Static and Default methods in Interfaces
- Private methods in Interfaces
- Functional Interfaces
- Lambda Expressions
- Factory Design Pattern
- Annotations
Regex Anatomy: Regular Expressions in Java Risky Behavior: Exception Handling
- Try-catch-finally blocks
- Different ways of Handling an Exception
- Multiple catch blocks
- Exception Object Propagation
- Exception Hierarchy
- Checked V/s Unchecked Exceptions
- “throw” V/s “throws” keyword
- Error V/s Exception
- Custom Exceptions
- Nested try-catch
- Try with resources
- “final” V/s “finally” V/s “finalize”
- Exception handling with Overriding
- Map hierarchy
- HashMap class
- LinkedHashMap class
- TreeMap class
- Collection Views
Data Compression: JAR Files Make a Connection: Input-Output in Java
- Files and I/O
– FileInputStream and FileOutputStream
– FileWriter and FileReader
– FileInputStream V/s FileReader - BufferedWriter and BufferedReader
- Inbuilt File class methods
- Standard I/O Streams
- PrintWriter
- Projects