Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

60 Days Of Java : The Complete Java Masterclass

Posted By: ELK1nG
60 Days Of Java : The Complete Java Masterclass

60 Days Of Java : The Complete Java Masterclass
Published 10/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 27.79 GB | Duration: 51h 30m

Master Java by building real-world projects. Learn JavaFX, Spring Boot, REST APIs, Microservices, and more!

What you'll learn

Master Java from A to Z: Begin with the basics of Java programming and progress to advanced concepts.

Understand object-oriented programming (OOP) and its core principles—classes, inheritance, polymorphism, and more.

Build real-world projects including a fully functional To-Do App and REST APIs.

Develop desktop applications using JavaFX for sleek, responsive user interfaces.

Work with Spring Boot to build robust, scalable web applications and microservices.

Learn data handling and file processing in Java, including working with databases using Spring Data and H2.

Master concurrency, threads, and asynchronous programming for creating high-performance applications.

Dive into cybersecurity to learn how to secure your applications and data.

Work with RESTful APIs: Learn to design, build, and consume REST APIs using Spring Boot.

Version control with Git & GitHub: Collaborate effectively and manage your codebase.

Clean code and best practices: Learn to write high-quality, maintainable code

Requirements

No prior programming experience is required; I will teach you everything from the beginning.

A PC or Mac with internet access and a Java development environment (we’ll set this up together).

Optional: IntelliJ IDEA (for the integrated development environment portion of the course) and Visual Studio Code.

Description

Welcome to the Complete Java Masterclass, the only course you need to master Java development from the ground up. This comprehensive program is designed to take you from a complete beginner to an advanced-level Java developer by combining a perfect balance of theory, practical projects, and professional-level best practices.We will begin with Java fundamentals—variables, data types, control statements, and loops—ensuring a solid understanding of the language basics. As we progress, you'll learn the ins and outs of object-oriented programming, error handling, collections, file handling, and much more.By the time you finish this course, you'll be equipped to build desktop applications with JavaFX, create REST APIs with Spring Boot, work with databases, implement cybersecurity practices, and develop microservices for scalable, real-world applications.What makes this course unique?Project-based learning: You'll build multiple real-world projects, such as a To-Do Application and a full-featured Expense Tracker with Spring Boot, which will help you apply your knowledge in real-world scenarios.Modern development practices: You'll learn how to develop professional-grade applications using Spring Boot, JavaFX, and REST APIs, ensuring you're up-to-date with industry standards.Comprehensive curriculum: Covering everything from basic Java syntax to multi-threading, dependency injection, and even microservices, everything you need to become a Junior developer.Supportive community and instructor: I'm here to help. Throughout the course, I’ll be answering questions and providing feedback on your code and projects to ensure you stay on track and succeed.Who is this course for?Aspiring software developers who want to learn Java and build professional applications.Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.Java beginners with no prior experience who are eager to master one of the most widely used programming languages.Course content:You’ll learn Java through a structured path of 60 days, with each day introducing key topics and practical exercises:Day 1-15: Learn Java fundamentals, control statements, loops, arrays, and user input handling.Day 16-20: Dive into object-oriented programming (OOP) with inheritance, polymorphism, encapsulation, and interfaces.Day 21-25: Explore the Java Collections Framework, Exception handling, and best practices for clean, maintainable code.Day 26-30: Build desktop applications with JavaFX, using powerful UI components and animations.Day 31-40: Work with Spring Boot to build robust web applications and RESTful APIs. Learn Git, manage versions, and publish.Day 41-50: Integrate databases, create secure applications, Implement session management, Implement Stateless and Scalable authentication, Role Based Access Control, and Making a robust backend microserviceDay 51-60: Making REST calls from Java desktop apps, Handling Authentication from Desktop apps, Creating an interactive expense tracker UI, Creating Sharable JAR file and using your own appProject Highlights:To-Do Application: Build a feature-rich task manager with JavaFX, learning how to develop interactive desktop applications with clean and maintainable code.Expense Tracker: Develop a scalable, secure Expense Tracker using Spring Boot and REST APIs, where you'll manage data and user authentication.Microservices with Spring Boot: Learn how to break down applications into independent services that communicate over REST APIs.Building REST APIs: Master API creation with Spring Boot, integrating database connectivity and security features.Instructor:My name is Denis Panjuta, and I've been teaching programming for over a decade. I've helped over 500,000 students around the world to master coding through my carefully structured courses. With a background in engineering and years of experience in Java, I’m here to guide you step-by-step to ensure you build professional-level applications with confidence.Your satisfaction guaranteed:I’m so confident in the quality of this course that I offer a 30-day full money-back guarantee. If you're not completely satisfied, you can get a full refund—no questions asked.Get started today!This course is your way to mastering Java programming and stepping into the world of professional software development. Whether you want to build desktop applications, REST APIs, or learn the latest in Java development practices, this is the course for you.Join now and start your journey to becoming a Java developer!

Overview

Section 1: Day 1: Introduction to Java and JDoodle Basics

Lecture 1 Intro

Lecture 2 Introduction to Java

Lecture 3 Quick overview of JDoodle

Lecture 4 Displaying Text on The Screen Intro

Lecture 5 Hello World - Displaying Text

Lecture 6 Understanding the Predefined Code

Lecture 7 Common Errors you can run into

Lecture 8 Search for errors and fix them with Gen AI

Lecture 9 Additional java features

Lecture 10 print vs println - comments and escape sequences

Lecture 11 (Optional theory) Java Under the hood

Lecture 12 Numbers and basic Math

Lecture 13 (Optional) Getting Started with JDoodle

Lecture 14 Let's Practice: Fun with Print Statements

Lecture 15 Solution: Fun with Print Statements

Lecture 16 Outro

Lecture 17 Cheat Sheet of the day

Section 2: Day 2: Variables and Data Types in Java

Lecture 18 Intro

Lecture 19 Variables Intro and Naming Conventions

Lecture 20 Declaring and Initializing variables

Lecture 21 Datatypes Quick Overview

Lecture 22 Datatypes For Whole Numbers

Lecture 23 Datatypes For Floating Point Numbers Float and Double

Lecture 24 Datatype Char

Lecture 25 Datatype Boolean

Lecture 26 Datatype String

Lecture 27 Declaring multiple variables at once

Lecture 28 Arithmetics with variables

Lecture 29 TypeCasting Implicit and explicit

Lecture 30 Let's Practice: Shape Transformation

Lecture 31 Outro

Lecture 32 Cheat Sheet of the day

Section 3: Day 3: Handling User Input and Simple Calculations

Lecture 33 Intro

Lecture 34 Introduction to Handling User Inputs

Lecture 35 User Input with Text and the Scanner Class

Lecture 36 User Input with Numbers and simple addition

Lecture 37 Next Line Buffer behaviour

Lecture 38 Let's Practice: Calorie counter pro

Lecture 39 Solution Calories Counter Pro

Lecture 40 Overview of Operators

Lecture 41 Modulo Operator

Lecture 42 Unary, Increment, Decrement Operators

Lecture 43 Relational Operators

Lecture 44 Compound Operators

Lecture 45 Outro

Lecture 46 Cheat Sheet of the day

Section 4: Day 4: String Manipulation and Comparison

Lecture 47 Intro

Lecture 48 Strings Overview

Lecture 49 Strings Creation and Concatenation

Lecture 50 Strings length and charAt method

Lecture 51 String Comparison with == Comparing References

Lecture 52 String Comparison with equal and equalIgnoreCase

Lecture 53 String Comparison with compareTo - lexicographically

Lecture 54 Cutting strings using substring()

Lecture 55 String replace, toUpperCase, toLowerCase

Lecture 56 String format with strings and numbers

Lecture 57 Operator Precedence and Associativity

Lecture 58 Let's Practice: Simple Interest Calculator

Lecture 59 Solution: Simple Interest Calculator

Lecture 60 Outro

Lecture 61 Cheat Sheet of the day

Section 5: Day 5: Setting Up the Java Development Environment

Lecture 62 Intro

Lecture 63 Overview JDK and IDE

Lecture 64 (Optional) Advanced knowledge about JDK

Lecture 65 Installing the JDK and Java Environment Variable

Lecture 66 Programming Java Without any IDE just the text editor

Lecture 67 Why IDE?

Lecture 68 Installing IntelliJ IDEA

Lecture 69 Setting up IntelliJ and creating our first project

Lecture 70 Some cool features of IntelliJ IDEA

Lecture 71 Autocompletion and closing a project

Lecture 72 Starting from an empty project and unused Variables

Lecture 73 Renaming refactoring

Lecture 74 Budget Exercise Solution

Lecture 75 Let's Practice: Budget Tracker Plus

Lecture 76 Solution: Budget Tracker Plus

Lecture 77 Outro

Section 6: Day 6: Control Statements - If, Else, and Ternary Operators

Lecture 78 Intro

Lecture 79 Control Statements in Java overview

Lecture 80 If Statement

Lecture 81 Nested If Statement

Lecture 82 Logical Operators

Lecture 83 If Statements Exercise Chatbot

Lecture 84 Let's Practice: Chatbot

Lecture 85 Solution: Chatbot

Lecture 86 If Else Control Statements

Lecture 87 Nested If Else Control Statements

Lecture 88 If Else If Else

Lecture 89 If Else If Else - Understanding the Flow using Breakpoints

Lecture 90 Ternary Operators

Lecture 91 Let's Practice: Galaxy Weather Advisor

Lecture 92 Solution - Galaxy Weather Advisor

Lecture 93 Outro

Lecture 94 Cheat Sheet of the day

Section 7: Day 7: Switch Statements and Enums in Java

Lecture 95 Intro

Lecture 96 Presentation of the Day - Switch Control Statement

Lecture 97 Basic Switch Statement

Lecture 98 Default and break

Lecture 99 Break and fall through

Lecture 100 If Statements vs Switch Statements

Lecture 101 Switch Statements with Char

Lecture 102 Switch Statements with Strings

Lecture 103 Enums and Switch

Lecture 104 Why Enums

Lecture 105 Switch within switch and prep for exercise

Lecture 106 Text based Adventure Game with Switch Statement

Lecture 107 Outro

Lecture 108 Cheat Sheet of the day

Section 8: Day 8: Loops - For, While, and Do-While Loops

Lecture 109 Intro

Lecture 110 Loops Introduction Presentation For Loop

Lecture 111 For Loops

Lecture 112 Let's Practice: Star Pyramid Builder (Beginner)

Lecture 113 Nested For Loops

Lecture 114 Pyramids with for loops

Lecture 115 Interview Question Fibonacci Sequence

Lecture 116 Job Interview question: Fibonacci sequence

Lecture 117 While Loop

Lecture 118 Do While Loop

Lecture 119 Break Keyword in Loops

Lecture 120 Continue Keyword in Loops

Lecture 121 Labels and break and continue

Lecture 122 Let's Practice: Controlling loops

Lecture 123 Interview Question Harshad Number

Lecture 124 Job Interview Question: Harshad Number

Lecture 125 Outro

Lecture 126 Cheat Sheet of the day

Section 9: Day 9: Introduction to Arrays

Lecture 127 Intro

Lecture 128 Introduction to Arrays

Lecture 129 Declaring, Initializing, Accessing and Modifying arrays

Lecture 130 Array Length and For Loops to iterate through arrays

Lecture 131 Enhanced For Loop - For Each Loop

Lecture 132 Sum, min and max of an array

Lecture 133 Rearranging Challenge

Lecture 134 Arrays Class and common methods

Lecture 135 Arrays toString and sort Methods

Lecture 136 Array binarysearch method

Lecture 137 CopyOf and by value vs by reference

Lecture 138 Arrays Fill and equals

Lecture 139 Let's Practice: Array Shuffle

Lecture 140 Solution: Array Shuffle

Lecture 141 Outro

Section 10: Day 10: Working with 2D Arrays

Lecture 142 Intro

Lecture 143 2D Arrays overview

Lecture 144 2D Arrays - Declaration, initialization and iteration

Lecture 145 2D Arrays - Easier initialization

Lecture 146 2D Arrays - Enhanced for loops

Lecture 147 2D Arrays - get the largest number

Lecture 148 2D Arrays - get the sum of all items in a 2d array

Lecture 149 2D Arrays - Exercise

Lecture 150 Job Interview Question: Diagonal Sum

Lecture 151 Solution: Job Interview Question

Lecture 152 ArrayList Intro

Lecture 153 ArrayList and its methods

Lecture 154 Let's Practice: Space Travel Simulator

Lecture 155 Solution: Space Travel Simulator

Lecture 156 Outro

Section 11: Day 11: Methods and Their Uses

Lecture 157 Intro

Lecture 158 Presentation Methods intro

Lecture 159 Void Method

Lecture 160 Void Methods with parameters

Lecture 161 Sandwichmaker 3000

Lecture 162 Pass by Value vs Pass by reference

Lecture 163 Method that returns something

Lecture 164 Subtract Method

Lecture 165 Generating random numbers

Lecture 166 Intro Word Scramble Game

Lecture 167 Building a Word Scramble Game

Lecture 168 Interview Question: Validate an Email address

Lecture 169 Outro

Lecture 170 Cheat Sheet of the day

Section 12: Day 12: Recursive Methods and Call Stacks

Lecture 171 Intro

Lecture 172 Recursive Methods Intro

Lecture 173 Recursive Methods in action - Factorial

Lecture 174 Recursive Methods base case and recursive case

Lecture 175 Recursive Methods common error - infinite recursion

Lecture 176 Creating our secret language app - atbash method

Lecture 177 Creating our secret language app - encoding

Lecture 178 Creating our secret language app - decoding

Lecture 179 Let's Practice: Atbash cipher

Lecture 180 Understanding the Method Call stack

Lecture 181 Understanding the Method Call stack with debugging

Lecture 182 Method stack with recursive methods and overdoing it

Lecture 183 For loop alternative for factorials

Lecture 184 Visualising high memory usage

Lecture 185 Alternative solution

Lecture 186 Magic Mirror Exercise

Lecture 187 Let's Practice: The Magic Mirror: Reflecting Strings with Recursion

Lecture 188 Outro

Lecture 189 Cheat Sheet of the day

Section 13: Day 13: Exercises on Arrays and Number Handling

Lecture 190 Intro

Lecture 191 Exercise 1 - Remove duplicate elements from an array

Lecture 192 Solution and Explanation

Lecture 193 Exercise 2 - Number of Digits

Lecture 194 Solution and Explanation

Lecture 195 Outro

Section 14: Day 14: Binary Search and Number Guessing Game

Lecture 196 Intro

Lecture 197 Binary Search explanation

Lecture 198 Binary Search Introduction and how it works

Lecture 199 Game Introduction

Lecture 200 Numbers Guessing Game Solution

Lecture 201 Explanation and Example Interaction

Lecture 202 Outro

Section 15: Day 15: Project: Todo App in Java

Lecture 203 Intro

Lecture 204 The Problem Statement. What do we want from the Todo App

Lecture 205 The Problem Solution: Step by step Building the Todo App

Lecture 206 Outro

Section 16: Day 16: Object-Oriented Programming Basics

Lecture 207 Intro

Lecture 208 Introduction to OOP presentation

Lecture 209 Creating our first class

Lecture 210 Creating our first class method

Lecture 211 Using Member Variables

Lecture 212 Function vs Method

Lecture 213 Default Constructor

Lecture 214 Parameterized Constructor

Lecture 215 The this keyword

Lecture 216 Let's Practice: Working with array of Objects

Lecture 217 Constructor Overloading

Lecture 218 The public, default, and private access modifiers

Lecture 219 Setters and understanding why they are important

Lecture 220 Let's Practice: Generating Math Quizzes

Lecture 221 Outro

Lecture 222 Cheat Sheet of the day

Section 17: Day 17: Understanding the this Keyword and Static Methods

Lecture 223 Intro

Lecture 224 Understanding the This keyword better

Lecture 225 getInstance vs Reference with this

Lecture 226 Method Chaining

Lecture 227 Using Objects as Parameters

Lecture 228 Copy Constructor

Lecture 229 The static keyword

Lecture 230 Why can't a non-static method be called from a static method

Lecture 231 Let's Practice: Dice Rolling Adventure

Lecture 232 Dice Game Exercise Solution

Lecture 233 Outro

Lecture 234 Cheat Sheet of the day

Section 18: Day 18: Inheritance and the Super Keyword

Lecture 235 Intro

Lecture 236 Inheritance overview

Lecture 237 First steps in inheritance

Lecture 238 Super keyword presentation

Lecture 239 Super keyword with constructors

Lecture 240 Super keyword with methods

Lecture 241 Multi-Level Inheritance

Lecture 242 Multi-Level Inheritance demo

Lecture 243 Method overriding

Lecture 244 Method overriding demo

Lecture 245 Protected access specifier

Lecture 246 Packages and all Access specifiers

Lecture 247 Let's Practice: Word Guessing Game

Lecture 248 Outro

Section 19: Day 19: Polymorphism and Abstract Classes vs. Interfaces

Lecture 249 Intro

Lecture 250 OOP3 Polymorphism Intro

Lecture 251 Hierarchical Inheritance in action

Lecture 252 Why Polymorphism

Lecture 253 Static Polymorphism Method Overloading

Lecture 254 Dynamic Polymorphism Method dispatching

Lecture 255 (Optional) Runtime Polymorphism

Lecture 256 Abstraction - Abstract and Interface

Lecture 257 Interface syntax

Lecture 258 Interface in action

Lecture 259 Abstract classes vs Interfaces

Lecture 260 Abstract classes vs Interfaces - real world example

Lecture 261 Encapsulation

Lecture 262 Outro

Section 20: Day 20: Course Project Overview

Lecture 263 Intro

Lecture 264 Presentation about the project - what you will gain

Lecture 265 Outro

Section 21: Day 21: Collections Framework Introduction

Lecture 266 Intro

Lecture 267 Collections Framework Intro

Lecture 268 The Depths of Arraylists heritage

Lecture 269 Overview of List Classes

Lecture 270 LinkedList vs ArrayList - Speed Test

Lecture 271 Vector vs ArrayList vs Sync Arraylist - Speed Test

Lecture 272 Stack

Lecture 273 Set overview

Lecture 274 Hashset

Lecture 275 Hash Table

Lecture 276 LinkedHashSet

Lecture 277 TreeSet

Lecture 278 Interview Question: Duplicates with index difference

Lecture 279 Interview Question Solution

Lecture 280 Outro

Section 22: Day 22: Queue and Map Interface

Lecture 281 Intro

Lecture 282 Queue and Map Presentation intro

Lecture 283 PriorityQueue

Lecture 284 ArrayDeque

Lecture 285 Map interface and its classes

Lecture 286 TreeMap

Lecture 287 Hashmap

Lecture 288 LinkedHashmap

Lecture 289 HashTable and Concurrenthashmap

Lecture 290 Iterator Interface

Lecture 291 Let's Practice: Word Frequency Counter

Lecture 292 Solution: Word Frequency Counter

Lecture 293 Outro

Section 23: Day 23: Exception Handling in Java

Lecture 294 Exception Handling Presentation

Lecture 295 Try and Catch

Lecture 296 Using multiple Catch Blocks

Lecture 297 Finally keyword

Lecture 298 Rethrowing and Propagation Intro

Lecture 299 Throw Keyword

Lecture 300 ReThrowing Exceptions

Lecture 301 Exception Propagation

Lecture 302 Combining Exception Propagation with Exception rethrowing

Lecture 303 Custom exceptions intro

Lecture 304 Creating custom exceptions

Section 24: Day 24: Java I/O - Working with Files and Streams

Lecture 305 Java IO Intro

Lecture 306 ByteArrayInputStream

Lecture 307 Output Classes Intro

Lecture 308 Try with resources and write text to a file using FileOutputStream

Lecture 309 Try with resources with two resources and write text to a file using BufferedOut

Lecture 310 Storing data in all kinds of data types using DataOutputStream

Lecture 311 Input Classes Intro

Lecture 312 Reading data types from a file using DataInputStream

Lecture 313 Reading data from a txt file using BufferedInputStream

Lecture 314 File Write Intro

Lecture 315 Buffered vs Unbuffered Stream Speeds

Lecture 316 Handling Files with the File Class

Lecture 317 Checking if file exists and create it if not

Lecture 318 Renaming Files with the File Class

Lecture 319 Deleting a file using the file class

Lecture 320 Creating Folders Directories Paths using the File Class

Lecture 321 Displaying all files within a folder using the File Class

Lecture 322 Serialization and Deserialization Intro

Lecture 323 Serialization in action

Lecture 324 Deserialization in action

Lecture 325 Final Thoughts about De-Serialization and the transient keyword

Section 25: Day 25: FXML and JavaFX Introduction

Lecture 326 FXML Intro

Lecture 327 Java Based UI vs FXML in larger projects

Lecture 328 Understanding XML and more about FXML

Lecture 329 Understanding the FXML in the generated file

Lecture 330 Using Layouts within Layouts VBox and HBox in FXML

Lecture 331 Using Comments in XML

Lecture 332 MVC overview

Lecture 333 Events in FXML and Alert onMouseEntered

Lecture 334 Gridpane

Lecture 335 styling and alignment

Lecture 336 Style property

Lecture 337 Alignment property

Lecture 338 Why CSS makes sense

Lecture 339 Borderpane in FXML

Lecture 340 style.css styling our ui

Lecture 341 more styling and hover effect

Section 26: Day 26: JavaFX and Basic UI Components

Lecture 342 JavaFX Overview

Lecture 343 Gradle and GroupID

Lecture 344 Running our first GUI App

Lecture 345 JavaFX File Structure overview

Lecture 346 JavaFX Basics - Stage, Scene, Pane

Lecture 347 Understanding the HelloApplication.java file

Lecture 348 Loading a Resource of fxml type

Lecture 349 Creating our own UI with java code

Lecture 350 Lambda Expressions theory

Lecture 351 Lambda Expressions Calculator

Lecture 352 Lambda Expressions vs MultiOperations Implementations

Lecture 353 Lambda Expressions why use lambdas

Lecture 354 Lambda Expressions as Parameters

Lecture 355 Single Argument Lambda expressions

Section 27: Day 27: JavaFX Layouts and Scene Builder

Lecture 356 JavaFX Shapes Presentation

Lecture 357 JavaFX Adding a Rectangle to a pane

Lecture 358 JavaFX Adding a Circle and Line to a pane

Lecture 359 JavaFX Layout Types

Lecture 360 JavaFX Layout HBox

Lecture 361 JavaFX Layout VBox

Lecture 362 JavaFX Layout Stackpane

Lecture 363 JavaFX Layout FlowPane

Lecture 364 JavaFX Layout GridPane

Lecture 365 BorderPane

Lecture 366 Installing Scene Builder

Lecture 367 Drag and Drop UI and connect it to our app

Lecture 368 Modifying which event will be triggered and how FXML, Controller and Scene Build

Lecture 369 Creating a Form with Scene builder

Section 28: Day 28: Event Handling and Data Binding in JavaFX

Lecture 370 Handling Keyboard events intro

Lecture 371 Building a JavaFX Project from scratch and understanding how the files interact

Lecture 372 Using Key Events and EventHandlers as well as EventListeners

Lecture 373 Mouse Events intro

Lecture 374 Get the Mouse Position via Events

Lecture 375 Databinding Intro

Lecture 376 Databinding in action - UI Setup

Lecture 377 Databinding in action

Lecture 378 Move from one Scene to another

Section 29: Day 29: Animations in JavaFX

Lecture 379 Intro Animations

Lecture 380 Translate Transition intro

Lecture 381 Translate Transition project prep

Lecture 382 Translate Transition move an item via animation

Lecture 383 Chain Animations

Lecture 384 Start and stop animations with a button click

Lecture 385 Fade Transition

Lecture 386 Rotate Transition

Lecture 387 ScaleTransition

Lecture 388 Sequential- and ParallelTransition

Lecture 389 Using ImageViews

Section 30: Day 30: Building a To-Do Application with JavaFX

Lecture 390 Why building the To-Do App is a good idea

Lecture 391 What we will build today

Lecture 392 Role of the launcher class

Lecture 393 Setting up the project from scratch

Lecture 394 Understanding Gradle

Lecture 395 Intro to MaterialFX and implementing it

Lecture 396 Adding MaterialFX to Scene Builder

Lecture 397 Fixing an error in the module-info.java file

Lecture 398 Setting up the Main Class with the Theme and Stylesheet

Lecture 399 Setting up our main interface

Lecture 400 Setting up the task card and task controller

Lecture 401 Setting up the main Controller and Testing the App with Dummy Data

Lecture 402 Styling the ToDo App with CSS

Section 31: Day 31: Adding Features to the To-Do Application

Lecture 403 What we will build today

Lecture 404 Intro to DTOs

Lecture 405 Creating a DTO TaskDTO

Lecture 406 Changing the architecture of our app

Lecture 407 Color Tasks based on status demo

Lecture 408 Add Task Intro

Lecture 409 Setting up the task dialog UI

Lecture 410 Displaying the new task dialog

Lecture 411 Adding Tasks via the dialog

Lecture 412 Styling the dialog

Lecture 413 View Task Dialog Intro

Lecture 414 View Task Dialog Prep

Lecture 415 Adding an ID to our Tasks

Lecture 416 Displaying Task in Dialog

Lecture 417 Adding Comments and viewing them

Lecture 418 Updating Tasks

Section 32: Day 32: Enhancing To-Do Application - Sorting and Filtering

Lecture 419 Intro for the sorting mechanism

Lecture 420 Adding Sorting by Status

Lecture 421 Adding Filter by Status Logic

Lecture 422 Saving and Loading our Tasks permanently

Lecture 423 Adding a Delete Feature

Section 33: Day 33: Git and GitHub Integration

Lecture 424 Version Control and Git Overview

Lecture 425 Installing Git on Windows

Lecture 426 Configure git user details

Lecture 427 Git Commands

Lecture 428 GitHub Intro

Lecture 429 Git Commands Basics in action

Lecture 430 Git Branches and Merging

Lecture 431 SSH and connecting git to github

Lecture 432 SSH and connecting git to github demo

Lecture 433 Connecting our Project to github

Lecture 434 Let the IDE share your project to github

Lecture 435 Commit and Push in IDE

Section 34: Day 34: Dependency Injection in Spring

Lecture 436 Spring Intro

Lecture 437 Where is spring used

Lecture 438 Types of Dependency Injection (DI)

Lecture 439 Constructor Dependency Injection

Lecture 440 Setter Dependency Injection

Lecture 441 More on Setter DI

Lecture 442 When to use Constructor DI and when Setter DI

Section 35: Day 35: Beans and Inversion of Control (IoC) with Spring Boot

Lecture 443 Introduction to Beans and IoC

Lecture 444 Lifecycle of beans

Lecture 445 Understanding Beans IoC and ApplicationContext better

Lecture 446 Advantages of using ApplicationContext

Lecture 447 Spring Initializr and ApplicationContext Beans

Lecture 448 Making a class a bean, and retrieving it from context

Lecture 449 Clean Spring project and more beans

Lecture 450 AutoWired - Field Dependency Injection

Lecture 451 Clean IoC Architecture with CommandLineRunner and Spring Boot

Section 36: Day 36: Autowiring and Component Scanning in Spring

Lecture 452 Autowiring Intro

Lecture 453 Autowiring Modes

Lecture 454 Autowiring by Type

Lecture 455 Autowiring by Name

Lecture 456 Autowiring by Constructor

Lecture 457 No Autowiring - Manual Wiring

Lecture 458 @Component and @Service

Lecture 459 @Configuration and @ComponentScan

Lecture 460 @Configuration and @ComponentScan in Action

Section 37: Day 37: Generics and Bounded Types

Lecture 461 Generics and Type Parameter

Lecture 462 Why not just use an ObjectPrinter

Lecture 463 Bounded Generics

Lecture 464 Generic Methods

Lecture 465 Generic Methods - swap items in an array

Lecture 466 Generic Methods with multiple generic parameters

Lecture 467 Bounded Type Parameters in Generic Methods

Section 38: Day 38: Dependency Injection and @Qualifier in Spring

Lecture 468 What we will cover today

Lecture 469 Field Injection with @Autowired

Lecture 470 Understanding DI Hierarchy

Lecture 471 Constructor DI vs Field DI

Lecture 472 @Qualifier vs @Primary intro

Lecture 473 Understanding @Service and @Qualifier demo

Lecture 474 @Primary demo

Section 39: Day 39: Spring Boot and MVC ChatApp

Lecture 475 Spring vs Spring Boot presentation

Lecture 476 Spring Boot Auto Configuration, Setup and @PostConstruct

Lecture 477 The Power of @PostConstruct

Lecture 478 Spring MVC Explained

Lecture 479 CommandLineRunner

Lecture 480 MVC ChatApp - Models and Service

Lecture 481 MVC ChatApp - Controller and Testing

Section 40: Day 40: Introduction to Web Development and REST APIs

Lecture 482 Introduction to Web Development HTTP GET, POST, PUT, DELETE and API

Lecture 483 REST, Restful, Restless, CRUD

Lecture 484 HTTP vs HTTP Methods, REST vs API

Lecture 485 Our First REST API Server localhost 8080

Lecture 486 HTTP Status Codes and ResponseEntity

Lecture 487 @Controller vs @RestController and a bit of JSON

Lecture 488 Using @PathVariable

Lecture 489 Using @RequestParam for Query Parameters

Lecture 490 Using @RequestParam and @PathVariable and when to use what

Section 41: Day 41: JSON Processing and Lombok Annotations

Lecture 491 Intro for the day and Postman

Lecture 492 Installing Postman and quick test

Lecture 493 JSON Basics, Jackson and ObjectMapper

Lecture 494 JSON Serialization with ObjectMapper and Jackson

Lecture 495 JSON Deserialization with ObjectMapper and Jackson

Lecture 496 Modify JSON dynamically using ObjectNode and JSONNode

Lecture 497 Lombok Annotations

Lecture 498 @JsonProperty and @JsonPropertyOrder

Lecture 499 @JsonIgnore and @JsonInclude

Lecture 500 Lombok @Setter and @Getter

Lecture 501 Lombok @ToString, @NoArgsConstructor, @AllArgsConstructor, @EqualsAndHashCode

Section 42: Day 42: CRUD Operations with Spring Boot RESTful Services

Lecture 502 SpringBoot RESTful services POST and PUT

Lecture 503 Post request and @RequestBody

Lecture 504 POST with Postman

Lecture 505 Storing Products in a JSON and Updating our Request

Lecture 506 Get Products and Get Product by ID

Lecture 507 PUT operation - Updating the database

Lecture 508 Delete operation CRUD

Section 43: Day 43: Expense Tracker Application

Lecture 509 Expense @Data Class

Lecture 510 Loading the Expenses

Lecture 511 Filtering by Category like a pro using stream map

Lecture 512 Refactoring, Filtering and Making Services

Lecture 513 Testing our other endpoints

Lecture 514 FindById

Lecture 515 AtomicLong and Adding Items with PUT

Lecture 516 Updating with PUT

Lecture 517 Deleting Expenses

Section 44: Day 44: Spring Data Access and H2 Databases

Lecture 518 Spring Data Access Intro

Lecture 519 Spring Data Access Advantages

Lecture 520 JDBC and JPA

Lecture 521 Hibernate

Lecture 522 Understanding different Database Types and H2 Database

Lecture 523 Intro to H2 Databases

Lecture 524 Setting up our H2 Project and application.yml

Lecture 525 Setting up an Entity

Lecture 526 Repository, Service, Controller and Testing

Lecture 527 Testing the h2 console

Section 45: Day 45: Integrating PostgreSQL with Expense Tracker

Lecture 528 H2 for our Expense Tracker Intro

Lecture 529 Adding dependencies and the application.yml to our expense tracker app

Lecture 530 Adding the Entity and the Repository

Lecture 531 Adding our ExpenseServiceImplDb

Lecture 532 Neon PostgreSQL Database overview

Lecture 533 Connecting to a PostgreSQL Cloud Database

Section 46: Day 46: Spring Security Basics and User Authentication

Lecture 534 Spring Security Intro. Authentication, Authorization etc

Lecture 535 Security Config Class

Lecture 536 Setting up Security Config Class and testing authentication

Lecture 537 Requestmatchers permitAll for public pages

Lecture 538 Customizing UserDetailsService for Authentication

Lecture 539 Creating an inmermory User and checking out bcrypt

Lecture 540 Managing User Roles

Lecture 541 Password encryption and hashing with bcrypt

Lecture 542 Adding Password encryption and hashing with bcrypt

Lecture 543 Logout, Sessions, Cookies and more

Lecture 544 Implementing Logout to our demo

Section 47: Day 47: Session Management and JWT Authentication

Lecture 545 Session Management Intro

Lecture 546 Session Demo

Lecture 547 Session Timeout Demo

Lecture 548 State vs Stateless Authenticatin JWT, etc.

Lecture 549 Stateless Authenticatin using JWT

Lecture 550 JWT in Action with Postman and rundown of JwtUtil einschub

Lecture 551 JWT in Action with Postman and rundown of JwtUtil

Lecture 552 JwtAuthFilter rundown

Section 48: Day 48: User Sign-Up and JWT Integration

Lecture 553 User Sign UP and Log in Intro

Lecture 554 Setting up the H2 In Memory DB

Lecture 555 Sign up controller and Service Intro

Lecture 556 Sign up new user

Lecture 557 Adding JWT to our Signup and login - Intro

Lecture 558 Adding JWT to our Signup and login - demo

Lecture 559 Login via database user data - demo

Lecture 560 Day summary

Section 49: Day 49: Advanced JWT Implementation and Security Configuration

Lecture 561 Intro Security for our Expense tracker

Lecture 562 Adding the SecurityConfig to our Expense Tracker

Lecture 563 AuthController Overview

Lecture 564 AuthController Implementation

Lecture 565 JWTUtil class overview

Lecture 566 JWTUtil class implementation

Lecture 567 JWTAuthFilter intro

Lecture 568 Setting up the AppUser, Repository and signup endpoint

Lecture 569 Setting up the UserDetailServiceImpl

Lecture 570 JwtFilter

Lecture 571 Adding the Filter before Spring security authenticates

Lecture 572 Creating the User Login Flow intro

Lecture 573 Creating the AuthServiceImpl class

Lecture 574 Separating the concerns

Section 50: Day 50: Role-Based Access Control (RBAC) and Final Touches to Expense Tracker

Lecture 575 Expense Tracker Final Touches RBAC intro

Lecture 576 RBAC and middleware

Lecture 577 Mapping Users to expenses Part 1

Lecture 578 Mapping Users to expenses part - Part 2

Lecture 579 Adjusting the Controller

Lecture 580 Testing user-based database access

Lecture 581 Implementing RBAC - Intro

Lecture 582 Prepping UserRoles and hardcoding Admin

Lecture 583 AdminService and AdminController

Section 51: Day 51: Expense Tracker Authentication with JavaFX

Lecture 584 Expense Tracker Authentication with JavaFX Intro

Lecture 585 Setting up JavaFX Project and HTTPClient

Lecture 586 Setting up MaterialFX

Lecture 587 Setting up Login, Signup and Loading Views and Controllers

Lecture 588 Setting up Preferences that hold the JWT Token

Lecture 589 Moving between Login and Signup Scenes

Lecture 590 Creating the HTTPResonse sendPostRequest method

Lecture 591 Finalizing actual signup via our UI and creating the AuthService class

Lecture 592 Adding the login feature

Section 52: Day 52: Expense Tracker: Rendering User expenses (expense-ui)

Lecture 593 About the Day

Lecture 594 Creating the Main UI

Lecture 595 Adding Fields to the Expense Table

Lecture 596 Explaining the Edit and Delete buttons

Lecture 597 Fetching Expenses from API

Lecture 598 Handling Authentication Failure

Lecture 599 What Next?

Section 53: Day 53: Expense Tracker: Add Expense UI (add-expense-ui)

Lecture 600 About the Day

Lecture 601 Designing the Add Expense View

Lecture 602 Handling Form Validations

Lecture 603 Calling API to add expense

Lecture 604 Updating the main screen

Section 54: Day 54: Expense Tracker: Editing Expense (edit-expense-ui)

Lecture 605 About the day

Lecture 606 Assignment! Practice your skills!

Section 55: Day 55: Expense Tracker: Viewing Statistics

Lecture 607 About the day

Lecture 608 Assignment! Practice your skills!

Section 56: Day 56: Expense Tracker: Building and Sharing

Lecture 609 About the day

Lecture 610 Assignment! Practice your skills!

Section 57: Day 57: Mastering Java Interview Questions

Lecture 611 Introduction to Java Interview Process

Lecture 612 Common Java Interview Questions

Lecture 613 Java Coding Challenges

Lecture 614 How to Prepare for Whiteboard Coding Interviews

Section 58: Day 58: Behavioural Interview Questions and Soft Skills

Lecture 615 Introduction to Behavioral Interviews

Lecture 616 Common Behavioral Interview Questions

Lecture 617 Developing Communication Skills as a Developer

Lecture 618 Leadership and Initiative in a Development Team

Section 59: Day 59: Building Your Java Developer Portfolio and Applying for Jobs

Lecture 619 Introduction to Job Search Strategy

Lecture 620 Creating a Developer Portfolio

Lecture 621 Resume and Cover Letter Tips

Lecture 622 Technical and Non-Technical Skills Employers Look For

Lecture 623 Applying for Jobs and Preparing for Remote Interviews

Section 60: Day 60: Continuous Learning and Career Growth as a Java Developer

Lecture 624 The Importance of Lifelong Learning in Software Development

Lecture 625 Contributing to Open Source Projects

Lecture 626 Exploring Certifications for Career Growth

Lecture 627 Mentoring and Leadership in a Developer Career

Lecture 628 Building a Long-Term Career Plan

Aspiring software developers who want to learn Java and build professional applications.,Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.,Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.,Java beginners with no prior experience who are eager to master one of the most widely used programming languages.