Core java
Duration | 60 hours
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.
Prerequisites
You should know the basics of computer, programming and software. You should have fair knowledge on working of the software.
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 learn
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 as Industry 4.0 Enabler
- 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)
Organization of a Computer
- Memory Hierarchy
- Object File V/s Executable File
Architecture of JAVA
- Assembler V/s Compiler
- Compiler V/s Interpreter
Breaking the surface
- 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
Procure inputs
- Command Line Arguments
- Valid Signatures of main() method
- Streams in Java
Life in an Objectvilla
- Object Orientation & its Principles
- Classes and Objects
Voyage to Objectvilla
- 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 representations
Floating-point data types – float, double
- Intro to IEEE
- BigDecimal class
- Strictfp keyword
Character data type
- ASCII Encoding Format V/s
- UNICODE Encoding Format
- UTF – 8 V/s UTF – 16 V/s UTF – 32
- Escape sequences
Other Data Types
- Boolean data type
- Implicit V/s Explicit Type Casting – Widening | Narrowing
- Truncation – Rounding towards Zero
- Wrapper classes
- Special symbols in identifiers and literals
Modularize your code
- Methods
- Types of Methods
- Method Overloading
- Don’t fall for the illusion: VirtualPolymorphism
- Method Overloading with Type Promotion
- Overloading of main() method
Data Herd: Arrays
- 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
Encapsulation
- 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
Pair with your key: Map
- 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