Track
Сертифікат
Основи Java
4.7+
★★★★★
★★★★★
195 відгуки
Beginner
Вирушайте у всебічну подорож у сферу програмування на Java. Незалежно від того, чи ви тільки починаєте, чи вже маєте певний досвід кодування, цей трек забезпечить вас знаннями та навичками, необхідними для успішної кар'єри Java-розробника. Показати більше
java
Boost your Tech Skills!
with up to 55% off
What you'll get with our subscription:
Access to 85+ top-rated courses
AI-driven Learning
Workspaces for practicing your skills
Personalized study tracks
Certificates of completion
Training 2 or more people?
Get your team access to Codefinity courses anytime, anywhere.
Try Codefinity TeamsWhat you will learn
- Build a strong foundation in Java by learning essential syntax, data types, and control structures
- Expand your Java knowledge with advanced concepts, enhancing your ability to write efficient and maintainable code
- Master Object-Oriented Programming (OOP) principles, including encapsulation, inheritance, and polymorphism
- Learn how to work with data structures in Java, such as lists, sets, maps, and queues, to optimize performance
- Understand the fundamentals of unit testing using JUnit, covering different types of testing methodologies
- Dive into Java multithreading to develop high-performance applications that execute multiple tasks concurrently
- 216 chapters
- 32 hours
- 376 tasks
Trusted by employees of leading companies
Learning track content
Module 1 / Основи Java
У цьому чаптері ви познайомитсь з Java, зрозумієте її особливості та чому я рекомендую вивчати саме цю мову програмування. Ви напишете свій перший код на Java і познайомитися з виведенням тексту на консоль. Почнемо?
Ми пройшли теоретичну секцію, і тепер починається найцікавіше. У цьому розділі ми познайомимося з основами кодування, примітивними типами даних та операціями над ними. Тепер ваш код зможе виконувати математичні задачі та оцінювати умови для подальшого виконання. Звучить цікаво? Починаємо!
У цьому розділі ми познайомимося з різними циклами, такими як for, while та do-while. Цикли є невід'ємною частиною будь-якої мови програмування, оскільки вони дозволяють ефективно опрацьовувати велику кількість даних і заощаджувати значний час. Пізніше ви будете широко використовувати цикли в таких задачах, як сортування, робота з масивами, колекціями тощо. Давайте починати!
- Вступ до циклівПопередній перегляд
- Цикл WhileПопередній перегляд
- Цикл Do-WhileПопередній перегляд
- Challenge: Building a Server Retry MechanismПопередній перегляд
- For-LoopПопередній перегляд
- Інкремент та ДекрементПопередній перегляд
- Нескінченний цикл (додатково)Попередній перегляд
- Завдання: ФакторіалПопередній перегляд
У цій секції ми розглянемо масиви і те, як їх правильно використовувати. Ми навчимося групувати дані в масиви і розглянемо деякі методи роботи з масивами. Масиви є невід'ємною частиною будь-якої мови програмування, тож давайте зануримося в них.
У цьому розділі ви познайомитеся з типом даних String.
Чому цьому типу даних присвячено окремий розділ у курсі? String - це важливий тип даних з багатьма вбудованими методами та операціями. У цій секції ви дізнаєтеся про String та StringBuilder, вивчите їх основні методи та навчитеся ефективно використовувати рядки в Java. Отже, ви готові почати?
- Що таке String?Попередній перегляд
- Основні методи в String, частина 1Попередній перегляд
- Основні методи в рядках, частина 2Попередній перегляд
- ЗавданняПопередній перегляд
- NullPointerExceptionПопередній перегляд
- StringBuilderПопередній перегляд
- String Pool та метод Equals()Попередній перегляд
- ПідсумокПопередній перегляд
Module 2 / Java Extended
Throughout the following lessons, you will become acquainted with the inner workings of Java and discover optimized methods to work with the language. This will involve exploring Java's operations at the computer level and adopting best practices for utilizing familiar concepts efficiently.
You have already encountered methods, and now you will finally understand what they actually are, how to create your own methods, and how to work with them. You will learn to return the desired values from methods and significantly improve the quality and logic of your code.
- What is a Method?Попередній перегляд
- Creating Our Own MethodsПопередній перегляд
- Challenge: Names Starting with Letter BПопередній перегляд
- VoidПопередній перегляд
- Methods PracticeПопередній перегляд
- Method OverloadingПопередній перегляд
- RecursionПопередній перегляд
- Challenge: Find Maximum and Minimum in ArrayПопередній перегляд
Get ready to dive into the world of String and discover more about its inner workings and methods. We'll explore the fascinating features that String offers, including the ability to customize the "toString" method, split strings into substrings, and utilize indexes for efficient data retrieval. Let's embark on this exciting journey to expand our knowledge of String manipulation!
In this section, you will learn how to create your own classes and their objects. You will be able to use methods of one class within another and establish relationships between them. Get ready to discover many interesting concepts and delve deeper into OOP programming!
- What is Class?Попередній перегляд
- Main Class and MethodПопередній перегляд
- Access ModifiersПопередній перегляд
- Class CreationПопередній перегляд
- Challenge: Get Information About the ObjectПопередній перегляд
- ConstructorПопередній перегляд
- Challenge: Team ConstructorПопередній перегляд
- Method toString()Попередній перегляд
- Challenge: Parrot Information DisplayПопередній перегляд
In this section, we will continue our study of classes. We will explore more advanced usage of class objects and learn more about access modifiers and how to use them effectively. We will also delve into getters and setters, as they are considered best practices in programming.
- Complex Classes UsageПопередній перегляд
- Challenge: Pet and Owner RelationshipПопередній перегляд
- Private ModifierПопередній перегляд
- Challenge: Animal Information DisplayПопередній перегляд
- Getter and SetterПопередній перегляд
- Challenge: Updating User InformationПопередній перегляд
- SummaryПопередній перегляд
Finally, we can start learning Object-Oriented Programming (OOP) in Java. It will be challenging, but I'm confident that you'll succeed! In this section, we'll cover all the principles of OOP, explain why OOP is important. You'll learn how to inherit classes, overload and override methods, encapsulate data from other classes, and work with abstraction. Moreover, you'll reinforce all these theoretical concepts with practical exercises, working on assignments in your IDE. You'll gain a wealth of knowledge, both practical and theoretical, so let's get started!
- What is OOP?Попередній перегляд
- OOP Principles: InheritanceПопередній перегляд
- Challenge: InheritanceПопередній перегляд
- OOP Principles: PolymorphismПопередній перегляд
- Challenge: PolymorphismПопередній перегляд
- OOP Principles: EncapsulationПопередній перегляд
- OOP Principles: AbstractionПопередній перегляд
- Challenge: AbstractionПопередній перегляд
In the previous section, we concluded that all Object-Oriented Programming is mainly built on abstraction. However, an abstract class has one significant limitation – you can inherit from only one abstract class. But what if we need more?
Interfaces come to the rescue. In this section, you will learn what an interface is, why it's necessary, how to use it correctly, and you will continue practicing Object-Oriented Programming. Let's turn you into a professional!
Module 4 / Java Data Structures
Discover the concept of lists and explore the most commonly used types in Java. Learn how to create, modify, and manage lists efficiently. Understand their internal structure and discover when to use ArrayList vs. LinkedList based on performance. Implement your own singly linked list and reinforce key concepts through practical coding challenges.
- Introduction to Data StructuresПопередній перегляд
- List and ArrayList in JavaПопередній перегляд
- Challenge: Library Management SystemПопередній перегляд
- CRUD Operations in JavaПопередній перегляд
- LinkedList in JavaПопередній перегляд
- Implementing LinkedList in JavaПопередній перегляд
- Challenge: Implementing size and delete Methods in LinkedListПопередній перегляд
- Quiz: Fundamental Data StructuresПопередній перегляд
Learn about data structures that are not as commonly used but are still valuable. Data structures like Set, Stack, Queue, and Deque will help you better understand how Java works and their various applications in databases.
- Queue Data Structure in JavaПопередній перегляд
- Deque Data Structure in JavaПопередній перегляд
- Challenge: Implementing a TaskManager ServiceПопередній перегляд
- Stack Data Structure in JavaПопередній перегляд
- Challenge: Implementing BrowserHistoryПопередній перегляд
- Quiz: Advanced Data StructuresПопередній перегляд
Learn about key-value pair-based data retrieval, enabling the creation of structures similar to databases. Discovery of concepts like hashcode and exploration of data structures such as HashMap and HashSet are also included.
Learn to use enum for defining a fixed set of constants and explore the Stream API to process, filter, and transform data efficiently.
Module 5 / Java JUnit Library. Types of Testing
Let's talk about types of testing and which testing methods developers use. You will learn about the stages an application goes through before being delivered to the client and the specific tests you will need to write.
In this section, we're going to dive into unit testing — you'll get the rundown on its structure in Java and the ins and outs of crafting them the right way. Setting up your IDE, importing necessary libraries, and lots of hands-on practice.
In this section, we will enhance our coding skills by dealing with errors that can also be caught in unit tests. When testing an application, you may come across various errors, and sometimes they should be turned into exceptions. I will explain how to catch exceptions in your code, test them, and handle them properly.
Module 6 / Multithreading in Java
This section will delve into the foundational concepts of multithreading in Java, focusing on the creation and management of threads, and the use of synchronization techniques to avoid conflicts. You’ll also learn how to utilize essential keywords and methods to ensure the accurate and reliable execution of multithreaded programs, providing a solid understanding of how to handle concurrency effectively in your applications.
- What is MultithreadingПопередній перегляд
- Difference Between Multithreading and Single-ThreadingПопередній перегляд
- Threads in JavaПопередній перегляд
- Thread SynchronizationПопередній перегляд
- Performance and ChallengesПопередній перегляд
- AtomicityПопередній перегляд
- Multithreading TaskПопередній перегляд
This section explores synchronized collections in Java, explaining their purpose and the common concurrency issues they are designed to solve. You’ll gain insights into how these collections work, why they are essential in multithreaded environments, and how they help ensure safe and consistent data manipulation when multiple threads access shared resources.
- Collections with Multithreading SupportПопередній перегляд
- Parallel Stream APIПопередній перегляд
- BlockingQueue and its ImplementationsПопередній перегляд
- Сhallenge BlockingQueueПопередній перегляд
- ConcurrentMap and its ImplementationsПопередній перегляд
- Challenge ConcurrentMapПопередній перегляд
- CopyOnWrite CollectionПопередній перегляд
- Examples of Using Collections MethodsПопередній перегляд
This section covers high-level synchronization mechanisms in Java, such as the use of Lock and Condition, semaphores, barriers, atomic variables, and thread pooling with Executors. Each topic is paired with practical exercises designed to reinforce your understanding and help you apply the theoretical knowledge to real-world scenarios.
This section explores fundamental multithreaded programming patterns and practices such as Producer-Consumer, Fork/Join, ThreadLocal, and asynchronous programming with CompletableFuture. You'll work through examples and see the practical outcomes of these approaches, gaining hands-on experience that will enable you to apply these techniques effectively in real-world applications.
- Producer-ConsumerПопередній перегляд
- ForkJoinPoolПопередній перегляд
- Challenge ForkJoinPoolПопередній перегляд
- ThreadLocalПопередній перегляд
- Basics of Asynchronous ProgrammingПопередній перегляд
- CompletableFutureПопередній перегляд
- Challenge CompletableFutureПопередній перегляд
- Summary MultithreadingПопередній перегляд
Module 7 / Stream API
Discover how Stream API revolutionizes data processing in Java with its expressive and functional approach. Explore its architecture, principles, and key functional features to write concise and efficient code.
- ArchitectureПопередній перегляд
- PrinciplesПопередній перегляд
- What Is a Functional Interface?Попередній перегляд
- Predicate: Data FilteringПопередній перегляд
- Challenge: Filtering Corporate Email AddressesПопередній перегляд
- Function: Data TransformationПопередній перегляд
- Challenge: Income Tax CalculationПопередній перегляд
- Comparable: Natural Ordering of DataПопередній перегляд
- Comparator: Custom Comparison of DataПопередній перегляд
- Challenge: Sorting EmployeesПопередній перегляд
- Consumer: Processing DataПопередній перегляд
- Supplier: Data GenerationПопередній перегляд
- Bi-versions of Functional InterfacesПопередній перегляд
- Challenge: Filtering Users by Two CriteriaПопередній перегляд
- BinaryOperator: Combining Two ValuesПопередній перегляд
Learn about various intermediate operations available in the Stream API that allow you to manipulate and process data in a functional style. These operations, such as filtering, transforming, and sorting, enable you to efficiently work with collections and perform tasks like removing duplicates, limiting results, or handling nested structures. Each operation can be combined to create powerful data pipelines, making your code more concise and readable.
- Transforming Elements with the map() MethodПопередній перегляд
- Filtering Elements with the filter() MethodПопередній перегляд
- Challenge: Factory Product FilteringПопередній перегляд
- Working with Nested Structures with the flatMap() MethodПопередній перегляд
- Arranging Items in Order with the sorted() MethodПопередній перегляд
- Challenge: Selecting the Best Cars on the Production LineПопередній перегляд
- Eliminating Duplicates with the distinct() MethodПопередній перегляд
- Challenge: Factory Quality ControlПопередній перегляд
- Restricting and Skipping Elements with the limit() and skip() MethodsПопередній перегляд
- Challenge: Finding the Top 3 Hardest-Working EmployeesПопередній перегляд
- Intermediate Processing with the peek() MethodПопередній перегляд
Learn about various terminal operations available in the Stream API that allow you to process and retrieve data efficiently. These operations, such as collecting, reducing, and counting, enable you to aggregate results, find specific elements, or perform side effects like printing or writing to a file. Understanding these operations helps you efficiently handle data processing tasks while keeping your code concise and expressive.
- collect() Gathering Stream Elements into a CollectionПопередній перегляд
- Challenge: Build a Custom Collector for Category CountingПопередній перегляд
- Collectors Utility Class for Stream APIПопередній перегляд
- Processing Elements with the forEach() MethodПопередній перегляд
- Handling Values with the Optional ClassПопередній перегляд
- Aggregating Elements with the reduce() MethodПопередній перегляд
- Challenge: Calculating Total Cost with Discounts and TaxПопередній перегляд
- Calculating Stream Statistics with count(), max(), and min()Попередній перегляд
- Retrieving Stream Summary Metrics with summaryStatistics() MethodПопередній перегляд
- Retrieving Elements from a Stream with findFirst() and findAny()Попередній перегляд
- Challenge: Selecting Random Products Within a CategoryПопередній перегляд
- Checking Stream Elements Against a Condition with allMatch()Попередній перегляд
- Challenge: Ensuring Fast Delivery for Expensive ProductsПопередній перегляд
Discover how to apply Stream API in real-world scenarios, improving code readability and efficiency. Learn how to refactor existing code, analyze performance trade-offs, and handle exceptions properly. Will help you write cleaner and more maintainable Java code using Stream API.
Requirements
- A computer with a browser - all browsers are supported.
- Your enthusiasm to enhance your tech skills.
- Everything else needed to start learning and practicing is already included in this course.
Over 200,000 5-star ratings and counting
Ruslan Kravchuk
Головне - вчитися і не здаватися
Матеріал хороший, є багато чого вивчити, все для того, щоб стати кращим, і головне - вчитися тому, чого хочете....
Matteo Comune
Завдяки їм я багато чого вчуся…
Завдяки їм я вчуся набагато швидше, тому що вони допомагають зрозуміти все з нуля. Це найкращий сайт, який допомагає людям без досвіду в ІТ...
Yuliana Cadavid
чудовий курс для початківців
чудовий курс для початківців, вони перевіряють ваші знання в кожному уроці...
Elpunzon
Я насолоджуюся своїм досвідом з Codefinity…
Я насолоджуюся своїм досвідом з Codefinity, вивчаючи Python. Самостійний спосіб навчання чудовий, тому що я можу вписати його у свій графік...
Alexandru Alexandru
Приємно вчитися з Codefinity
Приємно вчитися з Codefinity. Це легко і є хороші приклади того, що я тут вивчив...
jacob Templet
Easy to follow along with and provides…
Легко слідувати і надає виклик у моєму повсякденному житті. Виклик змушує мене хотіти вчитися день за днем...
Elan
Codefinity - це всебічне навчання…
Codefinity - це всебічний навчальний інструмент, який допоможе вам розвивати свої навички як інженера-програміста або науковця з даних. Вправи веселі і є хорошим способом відточити свої навички...
Thibault
Вперше вчуся кодувати
Вперше вчуся кодувати і успішно роблю це з Codefinity - дякую...
Adrien Morel
Добре спроектовано для повних початківців
Добре спроектовано для повних початківців, поступовий прогрес і змушує мене почуватися впевнено....
_Gracy
це просто ідеально пояснено
це просто ідеально пояснено! досі я не відчував жодних труднощів, тому що все так добре організовано...
Ruslan Kravchuk
Головне - вчитися і не здаватися
Матеріал хороший, є багато чого вивчити, все для того, щоб стати кращим, і головне - вчитися тому, чого хочете....
Matteo Comune
Завдяки їм я багато чого вчуся…
Завдяки їм я вчуся набагато швидше, тому що вони допомагають зрозуміти все з нуля. Це найкращий сайт, який допомагає людям без досвіду в ІТ...
Yuliana Cadavid
чудовий курс для початківців
чудовий курс для початківців, вони перевіряють ваші знання в кожному уроці...
Elpunzon
Я насолоджуюся своїм досвідом з Codefinity…
Я насолоджуюся своїм досвідом з Codefinity, вивчаючи Python. Самостійний спосіб навчання чудовий, тому що я можу вписати його у свій графік...
Alexandru Alexandru
Приємно вчитися з Codefinity
Приємно вчитися з Codefinity. Це легко і є хороші приклади того, що я тут вивчив...
jacob Templet
Easy to follow along with and provides…
Легко слідувати і надає виклик у моєму повсякденному житті. Виклик змушує мене хотіти вчитися день за днем...
Elan
Codefinity - це всебічне навчання…
Codefinity - це всебічний навчальний інструмент, який допоможе вам розвивати свої навички як інженера-програміста або науковця з даних. Вправи веселі і є хорошим способом відточити свої навички...
Thibault
Вперше вчуся кодувати
Вперше вчуся кодувати і успішно роблю це з Codefinity - дякую...
Adrien Morel
Добре спроектовано для повних початківців
Добре спроектовано для повних початківців, поступовий прогрес і змушує мене почуватися впевнено....
_Gracy
це просто ідеально пояснено
це просто ідеально пояснено! досі я не відчував жодних труднощів, тому що все так добре організовано...
Data Engineer
Сертифікат про завершення
Покажіть свої нові навички. Ви це заслужили
Discover more
Learning tracks
Лише для Ultimate
7 Курсів
293 Завдань
Лише для Ultimate
6 Курсів
168 Завдань
Лише для Ultimate
4 Курсів
115 Завдань
Лише для Ultimate
6 Курсів
101 Завдань
Лише для Ultimate
4 Курсів
143 Завдань
Лише для Ultimate
5 Курсів
119 Завдань
Лише для Ultimate
3 Курсів
39 Завдань
Лише для Ultimate
2 Курсів
1 Проєкт
57 Завдань
Лише для Ultimate
7 Курсів
346 Завдань
Лише для Ultimate
6 Курсів
309 Завдань
Лише для Ultimate
5 Курсів
146 Завдань
Лише для Ultimate
5 Курсів
135 Завдань
Лише для Ultimate
3 Курсів
71 Завдань
Лише для Ultimate
6 Курсів
239 Завдань
Лише для Ultimate
5 Курсів
239 Завдань
Лише для Ultimate
4 Курсів
125 Завдань
Лише для Ultimate
3 Курсів
119 Завдань
Лише для Ultimate
3 Курсів
75 Завдань
Learning tracks
трек
Веб-Розробка з C#
Базовий
4.8
(2353)
трек
Python з Нуля до Героя
Базовий
4.7
(8332)
трек
SQL з Нуля до Героя
Базовий
4.7
(2589)
трек
С++ для Початківців
Базовий
4.5
(482)
трек
Розробка Ігор з Unity
Базовий
4.7
(72)
трек
Станьте React Розробником
Середній
4.7
(66)
трек
Основи Excel
Базовий
4.7
(301)
трек
Python Понад Середній Рівень
Базовий
4.6
(66)
трек
Full Stack Веб Розробка
Базовий
4.7
(850)
трек
Основи Frontend Розробки
Базовий
4.7
(821)
трек
Аналіз та Візуалізація Даних на Python
Середній
4.7
(563)
трек
Основи Machine Learning
Середній
4.6
(124)
трек
C++ Mastery
Просунутий
4.8
(16)
трек
Java Web
Просунутий
4.7
(1158)
трек
Стати Інженером QA
Базовий
4.7
(715)
трек
Video Production With Adobe
Базовий
5.0
(5)
трек
Інструменти Дизайну UI/UX
Базовий
5.0
(4)
трек
Essential Office Skills
Базовий
4.8
(240)
Become a Development expert
Interactive exercises
Learning videos
AI-assistant on all courses
Workspaces for designing your own projects
Ready to get started?
ProBest intro offer | UltimateA complete experience to kickstart your career | |
---|---|---|
85+ Top-Rated courses | ||
Completion certificates | ||
AI-Assistant in all courses | ||
20+ hands-on Real-world projects | ||
Personalized study tracks | ||
Unlimited workspaces | ||
Boost your Tech Skills!
with up to 55% off
What you'll get with our subscription:
Access to 85+ top-rated courses
AI-driven Learning
Workspaces for practicing your skills
Personalized study tracks
Certificates of completion
Training 2 or more people?
Get your team access to Codefinity courses anytime, anywhere.
Try Codefinity Teams