core-development
Java Core Developer
Java is one of the most popular and versatile programming languages, widely used for building scalable applications. In the Java Core Developer course at Prolytics, you will learn the fundamentals of Java programming, object-oriented principles, and best practices for writing efficient, maintainable code. This course will help you develop a deep understanding of Java’s core concepts and prepare you for building real-world applications.
The course covers essential topics such as data structures, exception handling, Java I/O, multi-threading, and Java's memory management. Whether you're new to programming or looking to enhance your Java skills, this course provides the foundation for mastering Java development.
What will you learn
-
Core Concepts of Java
Understand Java’s syntax, data types, and how to write basic programs that follow object-oriented principles.
-
Object-Oriented Programming (OOP)
Master key OOP concepts such as inheritance, polymorphism, encapsulation, and abstraction to write modular and reusable code.
-
Exception Handling
Learn how to manage errors effectively using Java’s exception handling mechanisms and create robust, error-free applications.
-
Java I/O and File Handling
Discover how to work with input and output streams in Java, and learn how to manage file operations and data serialization.
-
Concurrency and Multi-threading
Understand the principles of multi-threading and how to manage concurrency to build efficient and responsive Java applications.
By completing this course, you will develop expertise in the following areas:
- Writing clean and maintainable Java code
- Mastering object-oriented programming principles in Java
- Managing Java exceptions for robust error handling
- Working with Java I/O streams and file operations
- Implementing multi-threading and handling concurrency in Java
- Optimizing Java application performance and memory usage
- Working with Java Collections framework for efficient data storage
- Building and maintaining large-scale Java applications
- Unit testing Java code using JUnit
- Understanding Java’s memory management and garbage collection
Lessons
- Duration
- 45 Days
Remaster in Progress | |
Video Quality | |
Subtitles | |
How to Get Help | |
Important Tip - Source Code | |
Biggest Tip to Succeed as a Java Programmer | |
Which Version of Java? |
Software Tools Introduction | |
6 Month Free Trial of IntelliJ Ultimate Edition - Please Read | |
Install JDK 17 for Windows | |
Install JDK 17 for Mac | |
Install JDK 17 for Linux | |
Confirming installation and intro to JShell |
Hello World | |
Variables | |
Starting out with Expressions | |
Primitive Types | |
byte, short, long and width | |
Casting in Java | |
Primitive Types Challenge | |
Float and Double Primitives | |
Floating Point Precision and a Challenge | |
The char and boolean Primitive Data Types | |
Primitive Types Recap and the String Data Type | |
Operators, Operands and Expressions | |
Abbreviating Operators |
From JShell to an IDE | |
Installing IntelliJ IDEA for Windows | |
Installing IntelliJ IDEA for Mac | |
Installing IntelliJ IDEA for Linux | |
Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX | |
Hello World in IntelliJ | |
Hello World in IntelliJ | |
if-then Statement | |
Logical AND Operator | |
Logical OR Operator | |
Assignment Operator VS Equals to Operator | |
Ternary Operator | |
Operator Precedence and Operator Challenge |
Introduction | |
Keywords and Expressions | |
Statements, Whitespace and Indentation (Code Organization) | |
Code Blocks And The If Then Else Control Statement | |
if then else Challenge | |
Methods in Java | |
More on Methods | |
Methods Recap | |
Method Challenge | |
Code Comparison in IntelliJ | |
Coding Exercises Introduction | |
Positive, Negative or Zero | |
Speed Converter | |
MegaBytes Converter | |
Barking Dog | |
Leap Year Calculator | |
DecimalComparator | |
Equal Sum Checker | |
Teen Number Checker | |
Method Overloading | |
Method Overloading Challenge | |
Seconds And Minutes Challenge | |
Bonus Challenge Solution | |
Area Calculator | |
Minutes To Years and Days Calculator | |
Equality Printer | |
Playing Cat |
Introduction | |
The switch statement | |
More switch statement | |
Traditional Switch Challenge | |
A Switch Expression Challenge | |
Number In Word | |
Number Of Days In Month | |
The for Statement | |
The for Statement Challenge Exercise | |
Sum 3 and 5 Challenge And Using IntelliJ's Debugger | |
For Loop Recap | |
Sum Odd | |
The while and do while statements | |
The while Loop Challenge Exercise | |
Digit Sum Challenge | |
While Loop and Do While Recap | |
Local Variables and Scope | |
The class, the object, static & instance fields and methods | |
Number Palindrome | |
First And Last Digit Sum | |
Even Digit Sum | |
Shared Digit | |
Last Digit Checker | |
All Factors | |
Greatest Common Divisor | |
Perfect Number | |
Number To Words | |
Flour Pack Problem | |
Largest Prime | |
Diagonal Star | |
Parsing Values and Reading Input using System.console() | |
Exception Handling, and Introduction to Scanner | |
Reading Input with Scanner | |
Reading User Input Challenge | |
Min and Max Challenge | |
Input Calculator | |
Paint Job |
Introduction | |
Introduction to Classes and Objects | |
Introduction to Classes, Using Getter Methods | |
Classes, Using Setters, and Creating Objects | |
Classes Challenge Exercise | |
Sum Calculator | |
Person | |
Constructors Part 1 | |
Constructors Part 2 | |
Constructor Challenge Exercise | |
Reference vs Object vs Instance vs Class | |
Static vs Instance Variables | |
Static vs Instance Methods | |
The POJO | |
Java's Implicit POJO Type, The Record | |
Wall Area | |
Point | |
Carpet Cost Calculator | |
Complex Operations | |
Inheritance - Part 1 | |
Inheritance - Part 2 | |
Inheritance - Part 3 | |
What is java.lang.Object? | |
Inheritance Challenge - Part 1 | |
Inheritance Challenge Part 2 | |
this vs super | |
Method Overloading vs Overriding Recap | |
The Text Block and other Formatting Options | |
Another Look at the String | |
String Manipulation Methods | |
The StringBuilder class | |
Cylinder | |
Pool Area |
Introduction | |
Composition Part 1 | |
Composition Part 2 | |
Composition Challenge | |
Composition | |
Encapsulation, Part 1 | |
Encapsulation, Part 2 | |
Encapsulation Challenge | |
Encapsulation | |
Polymorphism, Part 1 | |
Polymorphism, Part 2 | |
Casting with classes, and using Object and var references | |
Testing the runtime type using the instanceof operator | |
Polymorphism Challenge Exercise | |
Polymorphism | |
Polymorphism Challenge Exercise, Part 2 | |
OOP Master Challenge Exercise, Part 1 | |
OOP Master Challenge Exercise, Part 2 | |
OOP Master Challenge Exercise, The Bonus | |
Organizing Java Classes, Packages and Import Statements |
Introduction | |
Arrays Part 1 | |
Arrays Part 2 | |
Using java.util.Arrays (sort, fill, copyOf ) | |
Finding a Match, Using a Binary Search and testing equality of arrays | |
Arrays Challenge Exercise | |
Sorted Array | |
Arrays Recap | |
References Types vs Value Types | |
Variable Arguments (Varargs) | |
Minimum Element Challenge | |
Minimum Element | |
Reverse Array Challenge | |
Reverse Array | |
Two-Dimensional Arrays | |
Multi-dimensional Arrays |
Introduction | |
List and ArrayList Part 1 | |
ArrayList Part 2 | |
ArrayList Part 3 | |
Arrays vs. ArrayLists | |
ArrayList Challenge Part 1 | |
Arrays, ArrayList & LinkedList - (Memory and Big O Notation) | |
Mobile Phone | |
LinkedList Part 1 | |
LinkedList Part 2 | |
Iterators | |
LinkedList Challenge | |
LinkedList Challenge, Continued | |
Playlist | |
Introduction to Autoboxing and Unboxing | |
Autoboxing and Unboxing related to Arrays & Lists | |
Autoboxing & Unboxing Challenge | |
Autoboxing & Unboxing Challenge | |
Banking | |
Introduction to the enum type | |
The enum type continued, with the switch statement |
Introduction | |
Abstraction & Generalization (with overview of abstract and other modifiers) | |
Abstract Classes Part 1 | |
Abstract Classes Part 2 | |
Abstract Classes Part 3 | |
Abstract Class Challenge Part 1 | |
Abstract Class Challenge Part 2 | |
Interfaces Part 1 | |
Interfaces Part 2 | |
Interfaces Part 3 | |
Interfaces, what's new since JDK 8 (default methods & public static methods) | |
Interfaces, new since JDK8 (public static & private methods) | |
Interface vs Abstract Class | |
Abstract Class | |
Interface Challenge Part 1 | |
Interface Challenge Part 2 | |
Interface |
Introduction to Generics | |
Generics Part 1 | |
Generics Part 2 | |
Generics Part 3 | |
Generic Class Challenge | |
Generic Class Challenge, Part 2 | |
Revisiting Comparable | |
Comparable vs. Comparator | |
Generic classes as reference types | |
Generics methods, wildcards, and type erasure | |
Static methods & multiple upper bounds | |
Putting it all together, Final Section Challenge |
Introduction | |
Static Nested Classes | |
Inner Classes | |
Inner Classes, for Bills Burger Challenge | |
Inner Classes Challenge | |
Playlist - Inner Class | |
Local Classes | |
Anonymous Classes | |
Local and Anonymous Class Challenge |
Introduction to Lambda Expressions | |
Introduction to the Lambda Expression, and Functional Interfaces | |
Lambda Expressions, syntax, and additional examples | |
Lambda Expressions, Continued | |
Java's Functional Interfaces, Consumer & Predicate | |
Java's Functional Interfaces, Function & Supplier | |
Lambda Mini Challenges | |
Lambda Expression Challenge, Put it all together | |
What's a Method Reference? | |
The Most Confusing of the Method References | |
Method Reference Challenge | |
Convenience Methods on Functional Interfaces (Chaining lambdas) | |
Convenience Methods, Continued, with the Comparator |
Introduction to Java's Collections Framework | |
Collections: Understanding the Big Picture | |
Code Setup (Deck of Cards) for java.util.Collections methods | |
Introduction to java.util.Collections | |
java.util.Collections (shuffle, reverse, sort, indexOfSubList) | |
java.util.Collections (binarySearch, frequency, min, max, rotate) | |
Collections methods Challenge, Your own Card Game | |
Collections methods Challenge, (Five Card Draw), continued | |
Understanding the importance of the hash code | |
Code Setup (Phone and Email Contacts) for Sets and Maps | |
Introduction to Sets & HashSet | |
Set Operations, Symmetric and Asymmetric results | |
Code Setup (Tasks and TaskData) | |
Set Operations Challenge | |
LinkedHashSet and TreeSet | |
TreeSet, Closest match and subset methods | |
TreeSet Challenge (Theatre Seats) | |
TreeSet Challenge (Theatre Seat Bonus) | |
The Map Interface and functionality | |
Map functionality, Continued (compute, replace, remove) | |
Working with Map's view collections (keySet, values, entrySet) | |
HashMap Challenge, A Text-Based Adventure Game | |
Adventure Game, Continued | |
LinkedHashMap and TreeMap | |
Working with TreeMap (NavigableMap) methods | |
Targeted Collections for enum types | |
Collections Framework Final Challenge (The Setup) | |
Final Challenge(Store Inventory) | |
Final Challenge (Store Inventory) |
Introduction | |
Revisiting the final modifier | |
The final modifier applied to methods, and local variables | |
When Change isn't good | |
Declaring immutable classes to produce immutable objects, Part 1 | |
Declaring immutable classes to produce immutable objects | |
Challenge: Write your own immutable classes | |
Defensive Copies, Shallow and Deep Copies | |
Immutable, Unmodifiable Collections and Views | |
Challenge: Use unmodifiable collections | |
Challenge, Continued: Using unmodifiable collections | |
Constructor review, final field initializations, Introduction to Initializers | |
Record Constructors (and javap) | |
Enum Constructors | |
Game Console Setup, Part 1 | |
Game Console Setup, Part 2 | |
Challenge: Initializers and Constructors, A Pirate Game | |
Challenge: Pirate Game, continued | |
Final Classes, Review of constructor access modifiers | |
Sealed Classes | |
Final Section Challenge | |
Final Challenge (Pirates Continued, Part 2) |
Introduction to Streams | |
A first look at a stream in action | |
The Structure of the Stream Pipeline | |
Stream Sources | |
Stream Source Challenge | |
Intermediate Operations, distinct, filter, limit, skip, takeWhile, dropWhile | |
Intermediate Operations, map, peek, sorted | |
Terminal Operations for statistical information and matching | |
Code Setup, Part 1 (Student Engagement Statistics) | |
Code Setup, Part 2 (Student Engagement Statistics) | |
Challenge: Terminal Operations | |
Challenge, part 2: Terminal Operations | |
Terminal operations for processing and transforming stream elements | |
Using Stream's collect & reduce terminal operations | |
Challenge: Terminal Operations, Part 2 | |
What's Optional? | |
More Terminal Operations | |
Streams to Maps | |
Maps to Streams (using flatMap) | |
Streams Challenge |
Introduction | |
Functionality on java.lang.Math | |
Randomization in Java | |
Randomization Challenge (Rolling Dice) | |
Bonus Challenge (DiceGame with Scoring) | |
Introduction to BigDecimal | |
BigDecimal methods | |
Overview: Date & Time (java.time) | |
LocalDate | |
LocalTime, LocalDateTime | |
Overview: Instance, Period, Duration and Time Zones | |
ZoneId (Time zones) | |
Instant, ZonedDateTime, Duration, Period and ChronoUnit.between | |
Localization, Introduction to Locale | |
Localization, Continued | |
DateTime and Localization Challenge | |
Internationalization (ResourceBundle) | |
Internationalization (ResourceBundle) Part 2 |
Introduction | |
What's a Regular Expression? | |
The Parts of a Regular Expression | |
Methods that use Regular Expressions | |
Mini Challenges -Regular Expressions | |
Using Pattern and Matcher | |
Matcher methods (find, group), Grouping and Capturing | |
Matcher methods for replacing text | |
Review of the Regular Expressions for Phone Number/HTML tags | |
Matcher Challenge |
Introduction | |
Exception Handling: Checked vs. Unchecked, the finally clause | |
Exception Handling: Try with Resources | |
First Steps: Understanding File, Path, Files and Paths | |
Using File, Path, Files | |
Methods on Path | |
Files class: Directory Listings (list, walk, find) | |
Files class: Using walkFileTree | |
File Tree Walking Challenge | |
Reading text from a file, Java IO way | |
Scanner, for reading input files | |
Character Sets & Reading Text from a File with NIO2 Functionality | |
Challenge - Reading text from a file | |
Writing Data To a File | |
BufferedWriter, FileWriter, and PrintWriter | |
File Writing Challenge | |
Renaming, copying, deleting files and directories | |
Copying, Deleting Directories: InputStream & Reader's transferTo method | |
Directory and File Manipulation Challenge | |
RandomAccessFile | |
RandomAccessFile, Continued | |
RandomAccessFile Challenge | |
DataOutputStream,DataInputStream & Serialization | |
Serialization & Change - Part 1 | |
Serialization & Change - Part 2 |
Introduction | |
Java Threads and Thread Basics | |
Thread Creation and Execution | |
Interacting with a Running Thread | |
Thread Challenge | |
Multithreading and Memory | |
Concurrent threads concepts: Interleaving, Atomicity, Memory Consistency, Volati | |
Synchronization, synchronized methods | |
Synchronization, synchronized blocks | |
Producer/Consumer Application, Deadlocks | |
Avoiding Deadlocks with Wait & Notify | |
Synchronization Challenge | |
java.util.concurrent.locks | |
java.util.concurrent.locks continued | |
Managing Threads, Introduction to the ExecutorService, SingleThreadExecutorServi | |
The FixedThreadPool ExecutorService | |
Additional Thread Pools, Callable, Submit and the Future | |
ExecutorService Challenge | |
Scheduling Tasks | |
WorkStealingPool, ForkJoinPool | |
Parallel Streams | |
Parallel Streams, Ordering, Reducing and Collecting | |
Synchronized & Concurrent Collections | |
Thread-Safe Lists and Queues, ArrayBlockingQueue | |
ArrayBlockingQueue, Consumer Tasks | |
Revisiting Deadlock, and Other Common Problems | |
Livelock Example | |
Starvation & Fair Locks | |
More Java concurrency features | |
WatcherService (the File Watcher) |
Introduction | |
MySQL Installation for Windows | |
MySQL Installation for Mac | |
MySQL Installation for Linux | |
Database Basics in Ten Minutes | |
Using MySQL WorkBench to create and view a music database | |
JDBC | |
Connecting to the music database with JDBC | |
Querying (Retrieving) Data | |
SQL Injection and ANSI SQL | |
Statement.execute vs. Statement.executeQuery | |
Update, Delete Statements, and Inserting related records | |
Using executeUpdate, Transactions, Commits and Rollback, and Batch Execution | |
Creating a Store Front database, SQL Exceptions | |
JDBC Challenge, Transactions and Insertion using Statement | |
PreparedStatement | |
PreparedStatement, Continued | |
Challenge: PreparedStatement | |
CallableStatement | |
CallableStatement, OUT and IN/OUT parameters | |
CallableStatement, with functions | |
Challenge: CallableStatement | |
Introduction to JPA and ORM | |
JPA in action | |
JPA with Related Tables | |
JPA Queries, JPQL | |
JPA Queries, JPQL Joins | |
JPA Queries, CriteriaBuilder and Native SQL | |
JPA Challenge | |
JPA Bonus Challenge: CriteriaBuilder Query with Joins |
Introduction to Java Networking | |
Networking Terminology | |
Creating a Simple Client-Server Connection using ServerSocket | |
Creating a Multi-threaded Server using ServerSocket | |
SocketServer vs. ServerSocketChannel | |
Overview of NIO Channels and Buffers | |
Exploring java.nio.ByteBuffer | |
Polling Socket Channels with a custom Channel Manager | |
Using Selectors for an Event Driven Server | |
UDP Client Server with DatagramSocket | |
UDP DatagramSocket sharing audio data | |
UDP Client Server with DatagramChannel | |
Java's High Level Networking APIs, URI and URL | |
Java's High Level Networking APIs, URL vs URI | |
Introduction to HttpUrlConnection | |
Setting up Simple HttpServer | |
HttpURLConnection Posts | |
Introduction to HttpClient | |
HttpClient, Posting a request, and more | |
HttpClient Asynchronous Request, CompletableFuture | |
CompletableFuture, thenAccept, thenApply, thenRun Methods | |
HttpClient Concurrent Requests | |
Challenge, Concurrent Requests - Posts | |
Implementing HttpResponse.BodyHandler for customized response handling | |
Introduction to WebSocket | |
Writing a WebSocket Chat Application |
Introduction to Debugging | |
More on Debugging | |
Field Watch Points | |
Advanced Debugging | |
Introduction to Unit Testing with JUnit | |
Asserts in Junit | |
More Asserts and Exception Handling | |
Parameterized Testing | |
JUnit Challenge #1 and #2 | |
JUnit Challenges #3 to #7 | |
Junit Challenges #8 to #10 |
JDK11 Global Library Configuration | |
Create Your First JavaFX Project | |
JavaFX Overview | |
JavaFX Hello World Program | |
GridPane Layout | |
HBox Layout | |
BorderPane Layout | |
Other Layouts | |
Controls | |
RadioButton and CheckBox | |
ComboBox and ChoiceBox | |
Slider, Spinner, ColorPicker & DatePicker Controls | |
TitledPane | |
Events Continued | |
UI Thread | |
Threads and Runnable | |
Setup Sample Todo List Application | |
Base Interface | |
Formatting Dates | |
Singletons | |
Load and Save ToDo Items from/to Disk | |
Add DialogPane | |
Show Dialog and Add Controller Code | |
Bug Fix and Update List View | |
Cell Factories | |
KeyEvents and Toolbars | |
SortedList | |
FilteredList | |
CSS With JavaFX | |
Transforming Nodes and Choosers | |
More on Choosers and Web Pages | |
SceneBuilder | |
Installing SceneBuilder for Windows | |
Installing SceneBuilder for Mac | |
Overview of SceneBuilder | |
Building a UI with SceneBuilder | |
More on SceneBuilder | |
JavaFX Challenge | |
JavaFX Challenge Part 2 | |
JavaFX Challenge Part 3 | |
JavaFX Challenge Part 4 | |
JavaFX Challenge Wrap up |
Introduction to Modules | |
Module Declarations and Statements | |
Module Types |
Project Setup and Test | |
Structuring the new project | |
Creating the first module (Common) | |
Creating the Module Descriptor file | |
Creating the 2nd module (Database) | |
Challenge - Create the final module (UI) | |
Transitive Dependencies |
Remaster in Progress | |
Video Quality | |
Subtitles | |
How to Get Help | |
Important Tip - Source Code |
Biggest Tip to Succeed as a Java Programmer | |
The Four Stages of Becoming a Programmer | |
Software Tools Introduction | |
Java Development Kit Installation Overview | |
Install JDK 11 for Windows | |
Installing Intellij IDEA for Windows | |
** IMPORTANT ** - Configuring IntelliJ IDEA | |
Install JDK 11 for Mac | |
Installing Intellij IDEA for Mac | |
Install JDK 11 for Linux | |
Installing Intellij IDEA for Linux | |
Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX |
Introduction | |
Hello World Project | |
Defining the Main Method | |
Hello World Challenge and Common Errors | |
Variables | |
Starting out with Expressions | |
Primitive Types | |
byte, short, long and width | |
Casting in Java | |
Primitive Types Challenge | |
float and double Primitive Types | |
Floating Point Precision and a Challenge | |
The char and boolean Primitive Data Types | |
Primitive Types Recap and the String Data Type | |
Operators, Operands and Expressions | |
Abbreviating Operators | |
if-then Statement | |
Logical and Operator | |
Logical OR Operator | |
Assignment Operator VS Equals to Operator | |
Ternary Operator | |
Operator Precedence and Operator Challenge | |
First Steps Summary | |
End of Remaster |
Introduction | |
Keywords And Expressions | |
Statements, Whitespace and Indentation (Code Organization) | |
Code Blocks And The If Then Else Control Statements | |
if then else Recap | |
Methods In Java | |
More On Methods And A Challenge | |
Method Challenge - Final Code Changes | |
DiffMerge Tool Introduction | |
Install DiffMerge | |
Using DiffMerge | |
Coding Exercises | |
Coding Exercises Example Part 1 | |
Coding Exercises Example Part 2 | |
Coding Exercises Example Part 3 | |
Method Overloading | |
Method Overloading Recap | |
Seconds and Minutes Challenge | |
Bonus Challenge Solution |
Introduction | |
The switch statement (+Challenge Exercise) | |
Day of the Week Challenge | |
The for Statement (+Challenge Exercise) | |
For Loop Recap | |
Sum 3 and 5 Challenge | |
The while and do while statements (+Challenge Exercise) | |
While and Do While Recap | |
Digit Sum Challenge | |
Parsing Values from a String | |
Reading User Input | |
Problems and Solutions | |
Reading User Input Challenge | |
Min and Max Challenge |
Arrays | |
Arrays (Challenge Exercise) | |
Arrays Recap | |
References Types vs Value Types | |
Minimum Element Challenge | |
Reverse Array Challenge | |
List and ArrayList Part 1 | |
ArrayList Part 2 | |
ArrayList Part 3 | |
ArrayList Challenge Part 1 | |
ArrayList Challenge Part 2 | |
ArrayList Challenge Part 3 | |
Bug Fix for ArrayList Challenge | |
Autoboxing and Unboxing | |
Autoboxing & Unboxing (Challenge Exercise) - Part 1 | |
Autoboxing & Unboxing (Challenge Exercise) - Part 2 | |
Autoboxing & Unboxing (Challenge Exercise) - Part 3 | |
LinkedList Part 2 | |
LinkedList Part 3 | |
LinkedList Challenge Part 1 | |
Bug Fix for "Track 1" Error | |
LinkedList Challenge Part 2 | |
LinkedList Challenge Part 3 (Final video) |
Interfaces | |
Interfaces Part 2 | |
Interfaces Challenge Part 1 | |
Interfaces Challenge Part 2 | |
Inner classes Part 1 | |
Inner Classes Part 2 | |
Inner Classes Challenge | |
Abstract Classes Part 1 | |
Abstract Classes Part 2 | |
Interface vs Abstract Class | |
Abstract Class Challenge Part 1 | |
Abstract Class Challenge Part 2 | |
Abstract Class Challenge Part 3 (includes recursion). |
Our Generics Class | |
Our Generics Class Part 2 | |
Our Generics Class Part 3 | |
Generics Challenge |
Lambda Expressions Introduction | |
Lambda Expressions Nested Blocks | |
Scope and Functional Programming | |
Functional Interfaces & Predicates | |
More on Predicates & Suppliers | |
Functions | |
Chaining java.util.function Functions | |
Lambda Challenge Part 1 | |
Lambda Challenge Part 2 |
Streams | |
Streams - Intermediate and Terminal Operations | |
Streams - Flatmap & Lambda Best Practices |
Naming Conventions | |
Packages | |
Packages Part 2 | |
Packages Part 3 | |
Packages (Challenge Exercise) | |
Scope | |
Scope Part 2 and Visibility | |
Scope +(Challenge Exercise) | |
Access Modifiers | |
The final statement | |
Final Part 2 and Static Initializers |
Collections Overview | |
Binary Search | |
Collections List Methods | |
Maps | |
Map Continued and Adventure Game | |
Adding Exits to the Adventure game | |
Adventure Game challenge | |
Adventure Game | |
Immutable Classes | |
Immutable Class Challenge | |
Sets & HashSet | |
HashSet - equals() and hashCode() | |
Finish off equals() and hashcode() | |
Sets - Symmetric & Asymmetric | |
Finishing Off Sets | |
Sets Challenge Part 1 | |
Sets Challenge Part 2 | |
Sets Challenge Part 3 | |
Sorted Collections | |
StockList Class With Maps | |
Add a Basket | |
TreeMap and Unmodifiable Maps | |
Challenge Part 1 | |
Challenge Part 2 | |
Challenge Part 3 | |
Challenge Part 4 (Final) |
Exceptions | |
Stack Trace and Call Stack | |
Catching and throwing Exceptions | |
Multi Catch Exceptions | |
Introduction to I/O | |
Try with Resources | |
FileReader and Closeable | |
BufferedReader | |
Load Big Location and Exits Files | |
Challenge | |
Buffered Writer and Challenge | |
Byte Streams | |
Reading Binary Data and End of File Exceptions | |
Object Input Output including Serialization | |
Finish Object I/O and RandomAccessFile class | |
Create Random Access File | |
Update Static Initializer Block With Random File Access | |
Update Adventure Game to Read Random Access File | |
Java NIO | |
Writing Objects With Java NIO | |
Reading and Writing with Java NIO | |
Writing Binary Files with Java NIO | |
Reading Files with NIO | |
Absolute and Relative Reads | |
Chained Put Methods | |
Writing Sequentially | |
FileChannel to Copy Files and Pipes with Threads | |
Filesystem | |
More on Paths | |
Exists and CopyFile | |
Move, Rename and Delete | |
File Attributes | |
Read Existing Directory Contents | |
Separators Temp Files and File Stores | |
Walk File Tree | |
Copy Entire Tree | |
Mapping IO and NIO Methods |
Regular Expressions Introduction | |
Character classes and Boundary Matchers | |
Quantifiers and the Pattern and Matcher classes | |
Matcher find and Group Methods | |
And, Or & Not | |
Regular Expressions Challenge Part 1 | |
Regular Expressions Challenge Part 2 | |
Regular Expressions Challenge Part 3 |
Section Introduction | |
Database Terminology | |
Install and Setup SQLite for Windows | |
Install and Setup SQLite for Mac | |
Install and Setup SQLite for Linux | |
Introduction to SQLite | |
More with SQLite | |
Querying Data With SQL | |
SQL Order by and Joins | |
More Complex Joins | |
Wildcards in Queries and Views | |
Housekeeping and Final SQL Challenge | |
JDBC and SQLite GUI Browser | |
Creating Databases With JDBC in Java | |
JDBC Insert, Update, Delete | |
.executeQuery() and using Constants | |
The Music SQLite Database | |
Write Java Query for Artists | |
Executing SQL in DB Browser | |
Query Albums by Artist Method | |
Query Artists for Song method | |
Result Set Meta Data | |
Functions and Views | |
Write the Method to Query View | |
SQL Injection Attacks and Prepared Statements | |
Transactions | |
Inserting Records With JDBC | |
Insert Albums, Artists, and Songs | |
Test Insert JDBC Code | |
JDBC with a GUI Program | |
Add Artists | |
Fix Artist and Preload Records | |
Implement Artist Query | |
Add ProgressBar | |
Handling Updates |
Networking Overview | |
First Client and Server Apps | |
Multi Threaded Server | |
Multi-Threading and Timeouts | |
UDP Server and Client | |
High Level APIS | |
URL Connections and Input Stream Reader | |
HTTPUrlConnection | |
Alternatives to HTTPUrlConnection |
Old JavaFX Introduction Video for JDK 8 |
Source code for all Programs | |
Bonus Lecture and Information |
You Can Trust with Global Certification
At Prolytics Institute, our certifications are globally recognized, ensuring that your skills are validated by a trusted authority. Whether you're advancing in your current role or exploring new career opportunities, our credentials give you a competitive edge in today’s global job market.
Our certification programs are designed to meet international standards while catering to local industry needs. This ensures that your expertise is not only widely accepted but also practically applicable wherever you go.
Committed to preparing you for successful career placement and acing job interviews.
Our curriculum is thoughtfully crafted by senior angular specialists with extensive industry experience.
The course prioritizes cutting-edge technologies that are in high demand among top web design firms and global corporations.
A Personality Development program that enhances skills in professional communication, email writing, and effective interview techniques.
Engaging hands-on practice and real-world projects form a key part of the learning experience.
Learn directly from professionals who are currently active as developer in top IT companies.

FAQs
General frequently asked questions for students.
Our instructors are experienced professionals actively working in the IT industry. They bring real-world insights, practical knowledge, and expertise to the classroom, enhancing the learning experience.
Yes, we offer dedicated job placement support to our graduates. This includes resume workshops, mock interviews, and direct connections with our industry partners to help students transition smoothly into their careers.
Prolytics provides both in-person and online classes to cater to various learning preferences. Our online classes are live and interactive, allowing students to engage directly with instructors and peers.
Absolutely! We prioritize hands-on learning through practical projects and assignments based on real-world scenarios. These projects help students gain practical experience and build a portfolio to showcase to potential employers.
Yes, upon successfully completing a course, students receive a certificate from Prolytics, recognized by industry partners and highly valued in the job market.
Prolytics has a flexible refund policy. Students who need to withdraw may be eligible for a partial refund, depending on the timing and course structure. Please contact our support team for detailed information on refunds.
To enroll, visit our website and register the enrollment form for your desired course. You can also reach out to our admissions team for guidance on course selection and the enrollment process.
Students Reviews

If there’s a course that can teach both basic and advanced courses of Java in the best way, it’s the one by Prolytics! They taught me all the skills I need to be an expert in Java.

I always wanted to be a programmer and the Prolytics Java development course offered me the best platform to hone my skills. Getting the chance to work with live projects was what I loved the most!

I can’t believe this Java course is so affordable because the training provided is top notch! These guys teach you everything without any compromises.