Java
Advanced Features
and Best Practices
We explain complex topics in simple language so that you master advanced concepts such as multithreading, working with data streams, and designing application architecture.
Enroll Now
Full course
Certificate included
No fluff
Hands-on project practice
Java is one of the most popular
programming languages.
Java is used to create powerful server applications that support large enterprise systems, as well as web applications, including dynamic websites and web services. In addition, Java is the main language for developing native Android applications, which makes it indispensable in the mobile industry.
If you are looking for
serious development in a
large company, choose Java.
  • Start with Java - it's your key to enterprise development and large-scale projects.
  • Once you master this language, you can easily move on to others such as Kotlin, Scala or C++.
Who this course is for
For those continuing to learn Java
This course will help you deepen your understanding of the language and master more complex concepts, making you a more confident developer.
For those continuing to learn Java
This course will help you deepen your understanding of the language and master more complex concepts, making you a more confident developer.
Course experts
Ekaterina Erdman
Front-end Developer at TechVision. She specializes in user interface development and has experience working with modern frameworks such as React and Angular. Participated in building several successful web applications for large clients. Total experience in IT - more than 5 years.
Dmitry Noskov
Full-stack Developer at Innovatech. Works with various programming languages and technologies, including Java, Python and Node.js. Experienced in both client-side and server-side application development, as well as API integration. Overall experience in IT - more than 6 years.
Training program
Introduction
  • Introduction to the course
Comparable and Comparator interfaces
  • Comparable interface
  • Comparator interface
Generics
  • Introduction to Generics
  • Parameterized Class
  • Parameterized method
  • Type erasure
  • Subtyping
  • Wildcards
  • Example on generics
Collections
  • Introduction to Collection and List
  • ArrayList
  • ArrayList methods. Part 1
  • ArrayList methods. Part 2
  • ArrayList methods and related methods. Part 3
  • Iterator interface
  • LinkedList
  • ListIterator interface
  • Binary search
  • Big O notation
  • Vector
  • Stack
  • Introduction to Map. HashMap
  • The equals and hashCode methods
  • HashMap in details
  • HashTable
  • Introduction to Set. HashSet
  • TreeSet
  • LinkedHashSet
  • Introduction to Queue. LinkedList
  • PriorityQueue
  • Introduction to Queue. LinkedList
  • Introduction to Deque. ArrayDeque
Nested classes
  • Introduction to Nested classes
  • Static Nested class
  • Inner class
  • Local Inner class
  • Anonymous class
Lambda expressions.
  • Lambda expressions. Part 1
  • Lambda expressions. Part 2
  • Predicate
  • Supplier
  • Consumer
  • Function
Streams
  • Maintaining in Streams. Metod map
  • Metod filter
  • Metod forEach
  • Method reduce
  • Method sorted
  • Metod chaining
  • Method concat
  • Method distinct
  • Method count
  • Peak method
  • FlatMap method
  • Collect method: grouping and partitioning
  • FindFirst method
  • Min and max methods
  • Limit method
  • Skip method
  • MapToInt method
  • Parallel Stream
Multithreading
  • Introduction to multithreading
  • Options for creating threads
  • Thread name and Thread priority
  • Methods sleep and join. Thread states
  • Notions of concurrency and parallelism. Notions of synchronous and asynchronous
  • Keyword volatile
  • Data race. Synchronized methods
  • The concept of “monitor”. Synchronized blocks
  • Wait and notify methods
  • Deadlock, Livelock, Lock Starvation concepts
  • Lock and ReentrantLock
  • Daemon streams
  • Interrupting threads
  • ThreadPool and ExecutorService. Part 1
  • ThreadPool and ExecutorService. Part 2
  • Callable and Future interfaces. Part 1
  • Callable and Future interfaces. Part 2
  • Semaphore Synchronizer
  • CountDownLatch synchronizer
  • Exchanger synchronizer
  • AtomicInteger class
  • Synchronized collections
  • ConcurrentHashMap
  • CopyOnWriteArrayList
  • ArrayBlockingQueue
File handling: IO and NIO
  • Introduction to Streams. FileWriter
  • FileReader
  • Try with resources
  • BufferedWriter and BufferedReader
  • FileInputStream and FileOutputStream
  • DataInputStream and DataOutputStream
  • Serialization. Part 1
  • Serialization. Part 2
  • RandomAccessFile class
  • File class
  • Introduction to Channel and Buffer. Reading from a file
  • Channel and Buffer. Writing to a file
  • Channel and Buffer. Important methods
  • Path interface and Files class. Part 1
  • The Path interface and the Files class. Part 2
  • Introduction to the walkFileTree method
  • The walkFileTree method. Copying a directory
  • The walkFileTree method. Deleting a directory
Regular expressions
  • RegEx. Part 1
  • RegEx. Part 2
  • RegEx. Part 3
  • String class methods: mathes and split
  • Example “IP Check”
  • Methods replaceAll and group
  • Methods printf and format
Bonus module
  • Enum. Part 1
  • Enum. Part 2
  • Scanner class. Part 1
  • Class Scanner. Part 2
  • Reflection. Part 1
  • Reflection. Part 2
  • Abstracts
Your qualification will be
confirmed by a Certificate
of Professional Retraining
Tariffs
Testimonials from our students
Zurab
This course was a real breakthrough for me in learning Java. “The experts do an excellent job of breaking down complex topics such as multithreading and working with data streams. Each lesson includes practical exercises that help to consolidate the material. Now I feel confident in developing complex applications!
Fedor
I liked the course. The authors share not only theory, but also real experience, which makes the training very valuable. I especially liked the lessons on working with collections and exceptions. I was able to apply the knowledge gained in my projects and it gave great results.
Alex
The Java course turned out to be very informative and structured. I was pleasantly surprised how easily the instructors explained even the most complex concepts. The lessons on memory management and code optimization were especially useful. I now understand how to create more efficient and scalable applications!
Oleg
Great course because it has the most detailed explanations of the topic. Recommended!
Marina
I was pleasantly surprised how deeply the teachers dive into such complex topics as parallel programming and working with databases. Each lesson includes a lot of practical examples, which allows you not only to understand the theory, but also to immediately apply it in practice. Thank you!
Frequent questions
What are the requirements for the course?
You must have a basic knowledge of Java.
What kind of projects will I be able to do after the course?
You will be able to create a variety of projects ranging from console applications to web applications in Java.
Will there be feedback?
Certainly. Our curators carefully check practical work and provide detailed comments.
Will I be able to combine the course with my work? How many hours do I have to study?
Yes, you will be able to combine your studies and work, because you decide when to watch the lessons.