
Gain insights from Suresh Kumar's twenty years of java based software development experience. Join a well organized course that enhances your programming knowledge and career value through corporate training.
Explore a structured Java course organized into sections and lectures with videos, source code examples, readings, and assignments to build confidence through hands-on practice.
Explore why Java matters for Android, Hibernate, Selenium, and big data, and see how core Java skills enable easy learning of frameworks and application development.
Explore Java features: object-oriented design with inheritance and polymorphism, platform independence via bytecode and the JVM, robustness with exception handling and garbage collection, plus multithreading, security, and dynamic runtime loading.
Explore lexical tokens in Java, including keywords, identifiers, literals, operators, separators, whitespace, and comments. Learn how keywords are fixed and case sensitive, and how identifiers are formed.
Explore six categories of Java operators—arithmetic operators, relative or comparison operators, logical operators, assignment operators, conditional or ternary operators, and bitwise operators. See their precedence in expressions and if statements.
Learn the tools for Java development: JDK, JRE, and IDE (Eclipse). The lecture covers downloading, installing, setting environment variables, and running a Hello world project with javac and java.
Master two-dimensional arrays by working with rows and columns to store data, declare and initialize matrices with new, and traverse them to print and find maximum temperatures.
Explore conditional statements and controlled flow using if and else blocks, including else-if ladders, relational and logical expressions, to classify student grades and company sizes with practical examples.
Explore for, while, and do-while loops with initialization, condition, and expression, and learn the enhanced for loop introduced in Java 5 through practical examples like multiplication tables and prime checks.
Define a method as a set of statements that processes input parameters and returns a value, illustrated by an ATM example; main calls methods and controls execution within a class.
Explore the types of constructors in Java, including implicit, default, parameterized, and copy constructors. Learn how to create multiple constructors and initialize object data with examples.
Encapsulation binds data and methods into a single unit within a class, forming the basic unit of object-oriented programming.
this lecture defines recursion as a method calling itself, directly or indirectly, and shows a fibonacci example up to 100, including object versus anonymous object invocation.
Learn how enums declare a set of constants as a user defined data type with capitalized names, improving readability through days, seasons, and weekend logic.
Model an array of product objects in Java by defining a Product class, initializing data, and sorting by price with bubble sort to display sorted results.
Explore how the final keyword marks variables and local variables as unchangeable, follow the capitalization convention for final data members, and note its use with classes and methods in inheritance.
Debugging is the process of tracing a program step by step to locate and remove bugs when output isn't as expected due to logical or syntax errors.
Explore the purpose and advantages of packages in java, including how they prevent name collisions between interfaces and classes and improve modularity, accessibility, and collaboration across teams.
Explore how public class and non-public classes behave in Java packages, including access within the current package and outside packages, and how static methods affect accessibility.
Discover how a Java project splits into packages and subpackages, uses public and static access, and imports classes across packages.
Explore Java string as Unicode, create via literals or new, and how the string pool affects memory; learn key methods like indexOf, substring, lastIndexOf, equals.
Explore the difference between string and string buffer in java, highlighting string immutability, how concatenation creates new objects, and the mutable methods of string buffer for insert, delete, and reverse.
Explore the java.util.Date class, its time storage and operations, including creating, printing, comparing dates, obtaining current time in milliseconds, and formatting with SimpleDateFormat.
Explore the java.util.Random class to generate integers, booleans, and other values with a Random object. Learn to loop and concatenate digits into a 10-digit string.
Explore static import to bring static members into scope and call methods directly, reducing boilerplate while noting potential readability trade-offs.
Explore Java naming conventions, including capitalizing class and interface names, camelCase for members and variables, and uppercase constants with the final keyword; note optional underscore prefixes for data members.
Create and package Java applications into a jar file for distribution, then use it from another project.
Engage with end-of-section coding exercises to build confidence in solving real-time problems, analyze each exercise for better problem-solving, and seek help to successfully complete the project.
Inheritance lets a class extend a superclass, gaining its characteristics (except private members) to enable reusability and runtime polymorphism in a parent-child relationship via the extends syntax.
Explore the different types of inheritance in Java, including single, multi-level, hierarchical, hybrid, and multiple inheritance. Examine how a common base class underpins these patterns.
Delve into multilevel inheritance in core Java, examining how constructors invoke from base to derived classes and the object creation order, illustrated by A, B, and C.
Explore hierarchical inheritance, where a single base class serves multiple derived classes or siblings, using examples with employees and contractors to illustrate super calls and inheritance in action.
Explore core Java concepts: a deep dive into access modifiers, from private to public, and learn how protected supports inheritance and package-level visibility.
Explore the final keyword in inheritance in Java, showing how final can declare constants for local variables or fields, prevent method overriding, and lock class and constructor behavior.
Explore why Java does not support multiple inheritance due to the diamond problem, contrast with C++ support, and how designers avoid ambiguity and compiler errors.
Utilize the super keyword in Java to invoke base class constructors with super() and to access base class members, preventing name collisions with the derived class.
Discover the java.lang.Object class as the base class of all objects, and learn its core methods such as equals, toString, notify, and finalize, with a look at reflection.
Explore how the garbage collector runs in the background, frees memory by discarding unreferenced objects, and how to invoke it with System.gc() within core java concepts.
explore base class reference within an inheritance relationship, showing how a base class reference interacts with objects in constructor contexts while maintaining syntactic validity.
Explore runtime polymorphism through method overriding, where a base class reference can point to different objects and invoke the correct overridden method at runtime, enabling dynamic application extension.
Explore abstract classes and methods in Core Java, where the abstract keyword marks incomplete declarations to be implemented by subclasses, while the base class provides a reference and is non-instantiable.
Practice inheritance coding exercises to build confidence solving real-time problems in java. Review decoding exercises, analyze each one, and rely on expert assistance to master project work.
Explore inbuilt exception classes, including null pointer and index out of bounds, and understand runtime issues like number format errors, stack overflow, and custom exceptions.
Explore nested exceptions in Java by using try and catch blocks inside each other, understanding how matching catches and finally blocks control flow.
Learn the difference between checked and unchecked exceptions, when handling is mandatory or optional, and review examples from null pointer, input output streams, and database errors.
Explore user defined checked exceptions in Java by creating custom exception classes like invalid name exception, extending from exception to enforce validation and explicit handling with try-catch, and improve readability.
Explore how wrapper classes convert strings to primitive numbers, use parsing methods for arithmetic, and handle runtime exceptions when inputs come from networks or databases.
Boost your confidence with Java exceptions by solving structured coding exercises, analyzing each problem, and applying insights to real-time projects with guided support.
Survey traditional data structures, focusing on arrays and linked lists, highlighting sequential memory storage, fast index access for arrays, and dynamic size in linked lists.
Explore the Java collection framework, highlighting the list interface that extends the collection interface, its two list implementations, and the map with two implementations for storing key-value pairs.
Explore the characteristics of a list: it can contain duplicate objects, maintains the order of addition, and allows traversal in both directions.
Learn how ArrayList and LinkedList support generic types, add elements at the end or at specific indices, remove items, and iterate with a for-each loop or iterator, noting performance differences.
Explore the basic characteristics of a set as a collection, its base interface, and the two interpretations of how sets are used in Core Java.
Explore the Java map concept by examining the Map interface, its two predominant implementations, and how hashing underpins behavior, including the hash-based map and its relation to the collection framework.
Explore how hash maps use hashing to store unique keys and values, retrieve by key, and iterate entries; compare map and set, and note string-key order with sorted maps.
Explore using Java's comparator to customize sorted order, implementing custom comparisons, including anonymous class approaches, and applying name-based ordering to collections and maps.
Explore generics in Java, showing how type parameters enable reusable collections, prevent type errors, and store diverse objects, from strings to customers, through flexible, type-safe designs, including generic interfaces.
Explore how WeakHashMap uses weak references to allow keys to be garbage collected, unlike HashMap, and how the background garbage collector cleans up unused entries.
Explore lambda expressions as the next level of anonymous inner class usage, with compact syntax shown in practical Java examples.
Explore nested collections in Java by building multi-level groupings, such as storing customers by department and avoiding duplicates, then iterate through elements to categorize and access data.
Learn how blocking queue enables producer-consumer synchronization in Java multi-threaded apps, using put and take to manage bounded or unbounded queues such as array blocking queue and linked blocking queue.
Demonstrates a blocking queue-based producer–consumer pattern in a multithreaded Java app, with live coding that starts producer and consumer threads and shows blocking behavior.
Explore building a custom linked list in Java with generics, including next and previous pointers, and apply collection concepts like sets to extract unique words.
Explore LinkedHashMap, its implementation of the map interface, and how it maintains a list and links elements to the previous and next for iteration while preserving key order.
Explain what a process is and how a thread provides lightweight execution within it, then show Java’s multithreading benefits with examples like a video player.
Compare processes and threads, explain memory segments and snapshots, and show how multithreading handles concurrent tasks like video, audio, and streaming.
Explore the different states of a thread, including new, runnable, waiting, and the idea of termination, and how methods like start, sleep, and notify control transitions between these states.
Learn how to create threads in Java using inner classes and anonymous classes, implement Runnable, and start and manage thread execution within a localized scope.
Learn how threads communicate using wait, notify, and notifyAll to coordinate producer and consumer interactions, synchronize access to shared objects, and ensure ordered execution.
Explore object level locking versus class level locking, illustrating how synchronized instance methods lock on a single object while class level locks affect all instances, with performance trade-offs.
Explore creating threads with Callable and Future, compare with traditional Runnable approaches, and see how generics and exceptions are handled to retrieve results from asynchronous tasks.
Explore how mutexes and semaphores function as locking mechanisms to control access to resources. Learn counting versus binary semaphores, and how threads acquire and release locks.
Explore the read lock and write lock in Java, contrasting concurrent reads with exclusive writes, and demonstrate locking safety using a shared blog interface example.
Practice multithreading through end-of-section coding exercises, analyze each problem to build confidence in solving real-time issues, and seek assistance to complete the project with ease.
IO streams enable a Java program to read inputs and write outputs, from keyboard and monitor to disk and network, so data can be stored persistently until deleted.
Explore java.io basics by reading and writing data with file input and output streams, processing byte by byte and handling common exceptions.
Explore java.io.IOException concepts, including file not found and end-of-file scenarios, and how reading beyond available data can trigger these exceptions during file operations.
Explore how to combine input streams into a single input stream with a sequence input stream, and how push back input stream enables reading and pushing back data for modification.
Explore piped input and output streams for inter-thread communication within an application, using a video player example where one thread writes data and another reads it.
Explore the Java standard error stream and how to redirect errors to a file or another destination, discuss default system mappings for input and output, and handle exceptions safely.
Combine multiple output streams in Java to write data directly or in a specific integer order for type or network type, enhancing flexibility by merging outputs into a single stream.
Convert an input stream into a reader to read data as characters, using an input stream reader and a buffer, enabling line-by-line reading and improved performance with large data.
Explore how to convert an output stream to a writer in Java, enabling writing characters to an output stream and validating success with example code and test runs.
Explain how to serialize Java objects into bitstreams for network transfer and persistence by implementing the Serializable interface, using object streams, and managing data with transient fields.
Lambda Expression Syntax:
Below is syntax of Lambda,
(argument-list) -> {body}
Where as
1) Argument-list: can be zero or more arguments
2) Arrow-token: It is mandatory, and separates arguments and body of expression.
3) Body: can contain zero or more statements
Lambda without Parameter
() -> {
//Body of no parameter lambda
}
Lambda with single argument
(p1) -> {
//Body of single parameter lambda
}
Lambda with two arguments
(p1,p2) -> {
//Body of multiple parameter lambda
}
Similarly Lambda can have any number of arguments
How above Lambda, can be used:
For example, Lambda can be used in TreeSet, to specify sorting order of element.
Below is syntax, for TreeSet, to sort in descending order
TreeSet<String> tss = new TreeSet<>((s1,s2)->s2.compareTo(s1));
Above can be rewritten as
TreeSet<String> tss = new TreeSet<>((s1,s2)->{ return s2.compareTo(s1); } );
So, when there is only single return statement, { } & and explicit return are not required.
Lambda expression is a compact form of Anonymous Inner class, and advantage of using Lambda is, it’s make Code more Compact
TreeSet, example in previous, can be rewritten as
TreeSet<String> tss = new TreeSet<>( new Comparator(){ public int compare(String s1, String s2){
return s1.compareTo(s2);
}});
In Multi threading, for Runnable interface and also in Collection Streams
Java 8 introduces default and static methods in interfaces, allowing method bodies and enabling direct interface calls alongside implementing classes.
Explore default methods in a Java eight interface and learn how they can have a body and be overridden by implementing classes, with static methods remaining non-overridable.
Explore functional interfaces with a single abstract method, and how lambda expressions enable concise implementations, noting the optional @FunctionalInterface annotation and the presence of default and static methods.
Explore the Java 8 forEach method for iterating any collection or string, using lambda expressions and method references, on lists, sets, maps, and streams.
Explore Java 8 method references, including static, non-static, and constructor references, using the by function interface and apply to dynamically invoke methods at runtime.
Discover jshell, the Java 9 repl, to prototype code snippets directly in the command line, declaring variables, methods, classes, and objects without a main method or imports.
Discover Java 9 collection factory methods that create immutable lists, sets, and maps with clean syntax. These factory methods reduce boilerplate and ensure read-only collections throughout the application.
Explore try with resources introduced in JDK seven, which automatically closes resources like file streams, reducing code and preventing resource leaks.
Explore how Java networking enables device-to-device communication and contrast the transmission control protocol with UDP, highlighting core networking concepts within practical Java context.
Discover how IP addresses identify devices on the internet, compare static and dynamic IP configurations, and explain IPv4 and IPv6 versions.
Explore application layer protocols such as HTTP, SMTP, and FTP and how they rely on basic network services to enable web browsers to display pages and send emails.
Learn how port numbers identify services, how web servers listen on specific ports, and how Java applications connect remotely to those ports.
Explore how DNS maps user-friendly domain names to IP addresses and back, enabling socket connections by converting domain names like www.example.com to the correct IP.
Explore Java networking with the java.net package, sending requests from a Java program to web servers, receiving data, and using sockets for client-server communication.
Develop a server using java.net.ServerSocket that listens on a port, accepts client connections, and exchanges data via input and output streams, with optional multithreading for concurrent requests.
Learn to build a simple http client using java.net.URLConnection to interact at the socket level, send get or post requests, and handle responses such as 200 for data retrieval.
Define what a database is and why it stores data permanently, compare relational databases with non-relational models, and guide setup and use of SQL with MySQL.
Explore relational tables, their rules, and columns as you prep to use Java programs with a database.
Explore sql fundamentals across ddl, dml, and dcl, including creating, altering, and dropping databases and tables; inserting, updating, selecting, describing table details, and rolling back transactions with permission grants.
Explore how to join multiple tables in a relational database using inner, left, and right joins with employee and department data, and extend joins to three or more tables.
Explore data types for table design, including int variants and char vs varchar, and date, time, and blob for images or videos with external storage.
Explore column constraints with default values, unique keys, primary keys, and auto increment, and learn how to modify tables, add constraints, and insert data in a sample employee table.
Learn how foreign keys link tables, enforce referential integrity between customers and plans, and apply constraints such as on delete cascade or restrict to manage related records.
Java applications connect to the underlying database via jdbc to enable interaction and storage. Drivers from vendors mediate between Java and the database for console based and web based applications.
Explore how the database driver acts as a mediator between a Java application and the database, enabling JDBC interactions through imported packages in console-based programs.
Trace the evolution of JDBC drivers from type one to type four, focusing on performance gains and reduced platform dependency.
Learn how Java SQL prepared statements boost performance by reusing compiled statements and using placeholders for input values, while reducing SQL injection risk.
Welcome to the only Highest Rated Core Java Course, and fully loaded Core Java course with Practical Hands on examples, of every concept.
This is the only Core Java course with about 155+ downloadable source code programs, 100+ coding exercises, MCQs for all relevant lectures(to recap/memorize learnings after the Lecture) as the right course need to comprise not only Watchable videos, but also sufficient practice exercises, to make you strong Programmer.
All above comprises 80+ to 100 hours of total learning duration.
With investment of just few Dollars to buy this Course, set strong foundation for your future Software Career. And the Author has been using Java, almost since it's birth.
With 23 years of real time software development experience(at PayPal, CSC, Aricent, Philips, Sasken, etc...), Author has designed in such a way that Learners get very good insight & working expertise on Core Java, and will be in a position to develop projects, at the completion of this course.
Since Core Java sets your foundation for your Future Career, you need the right course to start with and to boost your career, and
You can get started with this course, even with zero/basic to intermediate prior knowledge in Programming.
Rather than just explaining the Concept, there is a focus on Why each specific concept exists and how it adds value, and how to apply it the right way, in your programming.
Topics Covered by this course
Core Java Basics
OOPs(Object Oriented Concepts) - class, constructor, access specifiers, objects, etc...
Packages, Sub Packages
Inheritance
Exception Handling
Multithreading
Collection Framework & Streams
Java 8 Features
Latest features of Java 9 and above
Java Input Output Streams
Network and Socket Programming
MySQL and How Java Program can connect to database
Regular Expressions
Inner class,
Design Patterns overview
Servlets
Project work, at the end of course, adds more value for your Learning.
Topics to be added(shortly) to this course are JSP/Servlets, Reflection, ... and many more.
Every lecture has, below
Video
Downloadable Source code examples, developed in above Video
Reading Material, for every concept
Quiz - Multiple Choice Questions, to cross check your confidence levels
Assignments Questions, to try Coding exercises
All above contributes to 80(or more) Learning Hours, and you will continue to have access to new Topics which will be added by Author, shortly.