Java Programming Essentials (5-Course Bundle)
- Offered byUDEMY
Java Programming Essentials (5-Course Bundle) at UDEMY Overview
Duration | 11 hours |
Total fee | ₹3,499 |
Mode of learning | Online |
Credential | Certificate |
Java Programming Essentials (5-Course Bundle) at UDEMY Highlights
- Earn a certificate of completion from Udemy
- Learn from 1 downloadable resources
- Get full lifetime access of the course material
- Comes with 30 days money back guarantee
Java Programming Essentials (5-Course Bundle) at UDEMY Course details
- This course is for anyone who wants to get ahead in Java programming
- Understand programming syntax, variables, and expressions to create your algorithms
- Use Object Oriented Programming concepts for efficient programming
- Understand some of the fundamental concepts behind key algorithms
- Correctly implement basic and complex data structures
- Master graph representations and learn about different graph algorithms
- Utilize the functional programming paradigm on practical problems in Java
- Focus on the pros and cons of alternative Reactive frameworks, Reactor, and RxJava
- Build efficient and elegant code with popular parallel Java frameworks, including ForkJoin and Streams
- Java is one of the most well-known programming languages out there, primarily due to how adaptable and perfect it is
- This course will be your companion as you build robust and efficient applications with the latest features of Java 11
- Next, you will be introduced to algorithms, big O notation, bubble, merge, quicksort, and other popular programming patterns
- By the end of the course, you will know how to correctly implement common algorithms and data structures within your applications
- This course takes a thought-leadership approach, gently introduces you to Functional Programming, and takes you all the way to becoming a master of the paradigm
Java Programming Essentials (5-Course Bundle) at UDEMY Curriculum
Learning Java 11
The Course Overview
Setup, Installation, and Runthrough of IntelliJ IDEA
Writing Your First Java Code
Understanding the Programming Basics
Uses of Variables and Types
Using Expressions
Working with More Expressions
IF Statements
WHILE Loops
FOR Loops
Using Switch Statements
Understanding Arrays
Understanding Methods
Exception Handling
Files Input and Output
Introduction to Classes and Objects
Enum Class
Understanding Inheritance
Understanding Abstraction
Java Interfaces
Recursive Methods
ArrayList and LinkedList
TreeSet and HashSet
HashMap and TreeMap
Multi-Dimensional Arrays
Beginning Java Data Structures and Algorithms
Course Overview
Lesson Overview
Developing Our First Algorithm
Measuring Algorithmic Complexity with Big O Notation
Identifying Algorithms with Different Complexities
Summary
Lesson Overview
Introducing Bubble Sorting
Understanding Quick Sort
Using Merge Sort
Getting Started with Fundamental Data Structures
Summary
Lesson Overview
Introducing Hash Tables Part 1
Introducing Hash Tables Part 2
Getting Started with Binary Search Trees
Traversing a Binary Search Tree
Summary
Lesson Overview
Introducing Greedy Algorithms
Getting Started with Divide and Conquer Algorithms
Understanding Dynamic Programming
Summary
Lesson Overview
Naive Search Algorithms
Getting Started with the Boyer-Moore String Searching Algorithm
Introducing Other String Matching Algorithms
Summary
Lesson Overview
Representing Graphs
Traversing a Graph
Calculating Shortest Paths
Prime Numbers in Algorithms
Other Concepts in Graphs
Summary
Hands-on Functional Programming with Java
The Course Overview
What Is Functional Programming?
Implementing Anonymous Classes (Example A)
Lambda Expression (Lambda Version of Example A)
Differentiating Interfaces versus Functional Interfaces
Implementing the Syntax of Lambda Expressions
Replacing Anonymous Classes
Using Method References
Best Practices for Using Lambda Expressions
Introduction to the Collections Framework
Implementing the Set Interface Using HashSet and LinkedHashSet
Implementation of the SortedSet Interface
Deploying the List Interface
Working with the Queue Interface
Introduction and Implementations of Maps
Understanding the Stream API and Constructing Streams
Intermediate Stream Operations
Terminal Stream Operations and the Optional Class
Implementing Stream Operations in Examples
Operations on Collections and Creating Collections Using Collectors
Hands-on Collection Sorting Using Streams
Advanced Filtering and Mapping Using Streams
Using Reduce for Advanced Transformations
Implementing flatMap in Examples
Advanced Grouping of Objects Using Streams
Advanced Joining and Partitioning of Objects Using Streams
Benefits of Concurrent Streams and Concurrency in General
Implementing Parallel Streams
Parallel Stream Operations
Comparing Sequential to Parallel Streams
Hands-on reactive programming with java 12
The Course overview
Flow: The Main Entry Point of Every Reactive App
Subscriber versus Publisher: When to Use Which
Hot Publisher: Why It Is Hard to Take Control Over It
Cold Publisher: Pairing with Back Pressure
Consuming Messages: Creating a Subscriber
Using Publisher to Emit Stock Events
Testing Stock Reactive Flow
Handling Errors in Subscriber
Flow.Processor API for the Skeleton of Transformation
Using SubmissionPublisher for Proxying Event to Another Publisher in the Chain
Plugging the TransformProcessor for Transformation Logic
Testing Stock Transformation Logic
Leveraging Subscription Object for Controlling the Number of Fetched Stocks
Controlling the Speed of Consumer with AtomicInteger
Creating Overproducing Publisher
Testing Backpressure in Stock Exchange Application
RxJava ? Observables Abstractions
RxJava ? Advanced Operations ? flatMap
Reactor ? Flux
Reactor ? Combining Publishers
Reactive Spring Boot
Creating Reactive Data Access Layer
Creating Reactive Controller
Testing Reactive Microservices
Java Concurrency and Multithreading in Practice
The Course Overview
Executing Tasks in Parallel with ForkJoinPool
Joining the Results of the Tasks
RecursiveAction and RecursiveTask
Exception Handling and Cancelling a Task
Callable and Future
Thread and Thread Pool
CompletableFuture
Sequential Streams
Parallel Streams
Overview: Publishers, Subscribers, and Subscriptions
Subscriber: Consuming Messages
Publisher and SubmissionPublisher: Providing Messages
Processor: Transforming Messages
Threads: Thread Lifecycle
Structured Locks (The "synchronized" Keyword)
Working with Locks
Object#wait(), notify(), and the New onSpinWait()
Possible Problems: Data Races, Deadlock, Livelock, and Resource Starvation
Atomic Types and the Compare-and-Set Approach
Concurrent Collections: ConcurrentHashMap, ConcurrentLinkedQueue
Blocking Queues
Copy-on-Write Collections
Wrap Up and Next Steps