

Usikker på hvor
starte?
Track
Certifikat!
Java Essentials
4.3+
★★★★★
★★★★★
9 anmeld.
Beginner
Embark on a comprehensive journey into the realm of Java programming. Whether you're just starting or have some coding experience, this track will equip you with the knowledge and skills to excel as a Java developer. Vis nu mere
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 Basics
Discover the unique features of Java and understand why it's a recommended programming language to learn. Write your first Java code and explore how to print text to the console.
Learn the basics of programming, dive into primitive data types, and explore operations with them. Write code that performs mathematical tasks and evaluates conditions for seamless execution.
- Primitive Data TypesForhåndsvisning
- Challenge: Primitive TypesForhåndsvisning
- Mathematical Operations on charForhåndsvisning
- Mathematical Operations in JavaForhåndsvisning
- If-Else StatementForhåndsvisning
- Switch-Case StatementForhåndsvisning
- New Task StructureForhåndsvisning
- Challenge: Weekday SwitchForhåndsvisning
Explore various loops such as for, while, and do-while, which are essential in any programming language. Loops enable efficient iteration over large datasets, saving significant time. Apply them extensively in tasks like sorting, working with arrays, collections, and more.
Learn how to effectively use arrays in Java programming by discovering how to group data into arrays and exploring common methods and properties for working with them. Techniques for manipulating and optimizing arrays in real-world applications will also be examined.
Learn about String, a crucial data type in Java, and discover its many built-in methods and operations. Explore String and StringBuilder, understanding their basic methods and how to use strings effectively in Java.
- What Is String?Forhåndsvisning
- Basic Methods In StringForhåndsvisning
- Practical Applications of String MethodsForhåndsvisning
- Challenge: Filter Failure MessagesForhåndsvisning
- NullPointerExceptionForhåndsvisning
- StringBuilderForhåndsvisning
- String Pool, Method Equals()Forhåndsvisning
- SummaryForhåndsvisning
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.
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?Forhåndsvisning
- Main Class and MethodForhåndsvisning
- Access ModifiersForhåndsvisning
- Class CreationForhåndsvisning
- Challenge: Get Information About the ObjectForhåndsvisning
- ConstructorForhåndsvisning
- Challenge: Team ConstructorForhåndsvisning
- Method toString()Forhåndsvisning
- Challenge: Parrot Information DisplayForhåndsvisning
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.
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?Forhåndsvisning
- OOP Principles: InheritanceForhåndsvisning
- Challenge: InheritanceForhåndsvisning
- OOP Principles: PolymorphismForhåndsvisning
- Challenge: PolymorphismForhåndsvisning
- OOP Principles: EncapsulationForhåndsvisning
- OOP Principles: AbstractionForhåndsvisning
- Challenge: AbstractionForhåndsvisning
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 StructuresForhåndsvisning
- List and ArrayList in JavaForhåndsvisning
- Challenge: Library Management SystemForhåndsvisning
- CRUD Operations in JavaForhåndsvisning
- LinkedList in JavaForhåndsvisning
- Implementing LinkedList in JavaForhåndsvisning
- Challenge: Implementing size and delete Methods in LinkedListForhåndsvisning
- Quiz: Fundamental Data StructuresForhåndsvisning
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.
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.
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 SupportForhåndsvisning
- Parallel Stream APIForhåndsvisning
- BlockingQueue and its ImplementationsForhåndsvisning
- Сhallenge BlockingQueueForhåndsvisning
- ConcurrentMap and its ImplementationsForhåndsvisning
- Challenge ConcurrentMapForhåndsvisning
- CopyOnWrite CollectionForhåndsvisning
- Examples of Using Collections MethodsForhåndsvisning
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.
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.
- ArchitectureForhåndsvisning
- PrinciplesForhåndsvisning
- What Is a Functional Interface?Forhåndsvisning
- Predicate: Data FilteringForhåndsvisning
- Challenge: Filtering Corporate Email AddressesForhåndsvisning
- Function: Data TransformationForhåndsvisning
- Challenge: Income Tax CalculationForhåndsvisning
- Comparable: Natural Ordering of DataForhåndsvisning
- Comparator: Custom Comparison of DataForhåndsvisning
- Challenge: Sorting EmployeesForhåndsvisning
- Consumer: Processing DataForhåndsvisning
- Supplier: Data GenerationForhåndsvisning
- Bi-versions of Functional InterfacesForhåndsvisning
- Challenge: Filtering Users by Two CriteriaForhåndsvisning
- BinaryOperator: Combining Two ValuesForhåndsvisning
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() MethodForhåndsvisning
- Filtering Elements with the filter() MethodForhåndsvisning
- Challenge: Factory Product FilteringForhåndsvisning
- Working with Nested Structures with the flatMap() MethodForhåndsvisning
- Arranging Items in Order with the sorted() MethodForhåndsvisning
- Challenge: Selecting the Best Cars on the Production LineForhåndsvisning
- Eliminating Duplicates with the distinct() MethodForhåndsvisning
- Challenge: Factory Quality ControlForhåndsvisning
- Restricting and Skipping Elements with the limit() and skip() MethodsForhåndsvisning
- Challenge: Finding the Top 3 Hardest-Working EmployeesForhåndsvisning
- Intermediate Processing with the peek() MethodForhåndsvisning
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 CollectionForhåndsvisning
- Challenge: Build a Custom Collector for Category CountingForhåndsvisning
- Collectors Utility Class for Stream APIForhåndsvisning
- Processing Elements with the forEach() MethodForhåndsvisning
- Handling Values with the Optional ClassForhåndsvisning
- Aggregating Elements with the reduce() MethodForhåndsvisning
- Challenge: Calculating Total Cost with Discounts and TaxForhåndsvisning
- Calculating Stream Statistics with count(), max(), and min()Forhåndsvisning
- Retrieving Stream Summary Metrics with summaryStatistics() MethodForhåndsvisning
- Retrieving Elements from a Stream with findFirst() and findAny()Forhåndsvisning
- Challenge: Selecting Random Products Within a CategoryForhåndsvisning
- Checking Stream Elements Against a Condition with allMatch()Forhåndsvisning
- Challenge: Ensuring Fast Delivery for Expensive ProductsForhåndsvisning
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
Det vigtigste er at lære og ikke give op
Materialet er godt, der er meget at lære for at blive bedre, og det vigtigste er at lære det, du ønsker....
Matteo Comune
Takket være dem lærer jeg meget…
Takket være dem lærer jeg meget hurtigere, fordi de hjælper dig med at forstå alt fra bunden. Det er den bedste hjemmeside for folk uden IT-erfaring...
Yuliana Cadavid
fantastisk kursus for begyndere
fantastisk kursus for begyndere, som tester din viden i hver lektion...
Elpunzon
Jeg nyder min Codefinity-oplevelse…
Jeg nyder at lære Python med Codefinity. Den selvstyrede læringsmetode er fantastisk, fordi jeg kan tilpasse den min tidsplan...
Alexandru Alexandru
Det er rart at lære fra Codefinity
Det er rart at lære fra Codefinity. Det er nemt og har gode eksempler på, hvad jeg har lært her...
jacob Templet
Easy to follow along with and provides…
Let at følge med og giver daglige udfordringer. Udfordringen motiverer mig til at lære dag efter dag...
Elan
Codefinity er et omfattende læringsværktøj…
Codefinity er et omfattende læringsværktøj, der hjælper dig med at udvikle dine færdigheder som softwareingeniør eller datavidenskabsmand. Øvelserne er sjove og en god måde at finpudse dine evner på...
Thibault
Første gang jeg lærer at kode
Første gang jeg lærer at kode og lykkes med det hos Codefinity - tak...
Adrien Morel
Godt designet til totale begyndere
Godt designet til totale begyndere, med trinvis progression, der giver mig selvtillid....
_Gracy
det er simpelthen fuldstændig velforklaret
det er simpelthen fuldstændig velforklaret! Indtil videre har jeg ikke oplevet nogen problemer, fordi alt er så godt organiseret...
Ruslan Kravchuk
Det vigtigste er at lære og ikke give op
Materialet er godt, der er meget at lære for at blive bedre, og det vigtigste er at lære det, du ønsker....
Matteo Comune
Takket være dem lærer jeg meget…
Takket være dem lærer jeg meget hurtigere, fordi de hjælper dig med at forstå alt fra bunden. Det er den bedste hjemmeside for folk uden IT-erfaring...
Yuliana Cadavid
fantastisk kursus for begyndere
fantastisk kursus for begyndere, som tester din viden i hver lektion...
Elpunzon
Jeg nyder min Codefinity-oplevelse…
Jeg nyder at lære Python med Codefinity. Den selvstyrede læringsmetode er fantastisk, fordi jeg kan tilpasse den min tidsplan...
Alexandru Alexandru
Det er rart at lære fra Codefinity
Det er rart at lære fra Codefinity. Det er nemt og har gode eksempler på, hvad jeg har lært her...
jacob Templet
Easy to follow along with and provides…
Let at følge med og giver daglige udfordringer. Udfordringen motiverer mig til at lære dag efter dag...
Elan
Codefinity er et omfattende læringsværktøj…
Codefinity er et omfattende læringsværktøj, der hjælper dig med at udvikle dine færdigheder som softwareingeniør eller datavidenskabsmand. Øvelserne er sjove og en god måde at finpudse dine evner på...
Thibault
Første gang jeg lærer at kode
Første gang jeg lærer at kode og lykkes med det hos Codefinity - tak...
Adrien Morel
Godt designet til totale begyndere
Godt designet til totale begyndere, med trinvis progression, der giver mig selvtillid....
_Gracy
det er simpelthen fuldstændig velforklaret
det er simpelthen fuldstændig velforklaret! Indtil videre har jeg ikke oplevet nogen problemer, fordi alt er så godt organiseret...
Data Engineer
Certifikat for fuldførelse
Fremvis dine nyligt opnåede færdigheder. Du har fortjent det
Discover more
Learning tracks
Kun for Ultimate
1 Kursus
1 Projekt
0 Task
Kun for Ultimate
7 Kurser
345 Opgaver
Kun for Ultimate
5 Kurser
119 Opgaver
Kun for Ultimate
5 Kurser
146 Opgaver
Kun for Ultimate
4 Kurser
115 Opgaver
Kun for Ultimate
6 Kurser
101 Opgaver
Kun for Ultimate
6 Kurser
168 Opgaver
Kun for Ultimate
5 Kurser
135 Opgaver
Kun for Ultimate
2 Kurser
1 Projekt
57 Opgaver
Kun for Ultimate
4 Kurser
143 Opgaver
Kun for Ultimate
5 Kurser
180 Opgaver
Kun for Ultimate
5 Kurser
165 Opgaver
Kun for Ultimate
6 Kurser
308 Opgaver
Kun for Ultimate
6 Kurser
252 Opgaver
Kun for Ultimate
8 Kurser
2 Projekter
176 Opgaver
Kun for Ultimate
2 Kurser
80 Opgaver
Kun for Ultimate
7 Kurser
293 Opgaver
Kun for Ultimate
1 Projekt
0 Task
Kun for Ultimate
2 Kurser
21 Opgaver
Kun for Ultimate
5 Kurser
111 Opgaver
Kun for Ultimate
2 Kurser
0 Task
Kun for Ultimate
3 Kurser
39 Opgaver
Kun for Ultimate
13 Kurser
555 Opgaver
Kun for Ultimate
13 Kurser
555 Opgaver
Kun for Ultimate
1 Kursus
0 Task
Kun for Ultimate
0 Task
Kun for Ultimate
5 Kurser
139 Opgaver
Kun for Ultimate
3 Kurser
71 Opgaver
Kun for Ultimate
7 Kurser
282 Opgaver
Kun for Ultimate
5 Kurser
239 Opgaver
Kun for Ultimate
4 Kurser
125 Opgaver
Kun for Ultimate
2 Kurser
33 Opgaver
Kun for Ultimate
3 Kurser
119 Opgaver
Kun for Ultimate
1 Kursus
15 Opgaver
Kun for Ultimate
3 Kurser
75 Opgaver
Kun for Ultimate
3 Kurser
31 Opgaver
Kun for Ultimate
2 Kurser
151 Opgaver
Kun for Ultimate
3 Kurser
56 Opgaver
Kun for Ultimate
2 Kurser
1 Projekt
38 Opgaver
Kun for Ultimate
3 Kurser
36 Opgaver
Kun for Ultimate
2 Kurser
1 Projekt
38 Opgaver
Kun for Ultimate
5 Kurser
134 Opgaver
Learning tracks
spor
TEST TRACK 12
Begynder
4.0
(7146)
spor
Full Stack Web Development
Begynder
4.5
(58)
spor
Become a React Developer
Mellemniveau
4.9
(7)
spor
Mastering Data Visualization
Mellemniveau
4.6
(7)
spor
SQL from Zero to Hero
Begynder
4.7
(93)
spor
С++ Essentials
Begynder
4.4
(17)
spor
Python from Zero to Hero
Begynder
4.7
(284)
spor
Supervised Machine Learning
Mellemniveau
4.9
(7)
spor
Python Beyond Intermediate
Begynder
5.0
(1)
spor
Game Development with Unity
Begynder
4.6
(7)
spor
Become a Django Developer
Avanceret
4.4
(27)
spor
Flask for Dummies
Mellemniveau
4.5
(31)
spor
Frontend Development Foundations
Begynder
4.6
(52)
spor
Web Developer from Zero to Hero
Begynder
4.6
(56)
spor
Preparation for Data Science
Mellemniveau
4.5
(11)
spor
Deep Learning Odyssey
Avanceret
5.0
(3)
spor
Web Development with C#
Begynder
4.8
(98)
spor
TEST E2E TRACK BEGINNER
Begynder
spor
Test Track
Begginer
4.7
(3)
spor
Skilled Python BackEnd Developer
Avanceret
4.7
(261)
spor
Test Recalculate
Begynder
spor
Excel Essentials
Begynder
4.5
(33)
spor
Full-Stack .NET Developer Journey
Mellemniveau
4.8
(129)
spor
Full-Stack .NET Developer Journey
Mellemniveau
4.8
(129)
spor
Test track with rating
Avanceret
4.0
(4)
spor
TEST TEST TRACK
Begynder
spor
Data Analyst Foundation
Begynder
4.7
(111)
spor
C++ Mastery
Avanceret
spor
Java Web
Avanceret
4.5
(30)
spor
Become a QA Engineer
Begynder
4.5
(43)
spor
Video Production with Adobe
Begynder
spor
Digital Marketing Essentials
Begynder
spor
UI/UX Design Tools
Begynder
spor
Test image upload track
Begynder
spor
Essential Office Skills
Begynder
4.6
(24)
spor
GitHub from Zero to Hero
Begynder
spor
No-Code Website Development
Begynder
spor
C Programming & Low-Level Development
Begynder
spor
testes
Begynder
4.7
(3)
spor
Test translation track
Mellemniveau
spor
Test CMS Track
Begynder
4.7
(3)
spor
Python for Data Analysis
Mellemniveau
4.6
(9)
Become a Software 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