

Incerto da dove
iniziare?
Track
Certificato
Fondamenti di Java
4.3+
★★★★★
★★★★★
9 recensioni
Beginner
Intraprendi un viaggio completo nel mondo della programmazione Java. Che tu stia appena iniziando o abbia già un po' di esperienza di programmazione, questo percorso ti fornirà le conoscenze e le competenze per eccellere come sviluppatore Java. Mostra di più
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.
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.
Module 2 / Java Avanzato
Nel corso delle lezioni seguenti, verranno approfonditi i meccanismi interni di Java e saranno illustrate metodologie ottimizzate per lavorare con il linguaggio. Ciò comporterà l'esplorazione delle operazioni di Java a livello di computer e l'adozione delle migliori pratiche per utilizzare in modo efficiente i concetti già noti.
Hai già incontrato i metodi e ora finalmente comprenderai cosa sono effettivamente, come creare i tuoi metodi e come lavorare con essi. Imparerai a restituire i valori desiderati dai metodi e a migliorare significativamente la qualità e la logica del tuo codice.
Preparati a immergerti nel mondo di String e a scoprire di più sul suo funzionamento interno e sui suoi metodi. Esploreremo le caratteristiche interessanti offerte da String, inclusa la possibilità di personalizzare il metodo "toString", suddividere le stringhe in sottostringhe e utilizzare gli indici per un recupero efficiente dei dati. Iniziamo questo entusiasmante percorso per ampliare la nostra conoscenza della manipolazione delle stringhe!
In questa sezione, imparerai a creare le tue classi e i relativi oggetti. Sarai in grado di utilizzare i metodi di una classe all'interno di un'altra e di stabilire relazioni tra di esse. Preparati a scoprire molti concetti interessanti e ad approfondire la programmazione OOP!
- Che cos'è una classe?Anteprima
- Classe Principale e MetodoAnteprima
- Modificatori di AccessoAnteprima
- Creazione di ClassiAnteprima
- Sfida: Ottenere Informazioni sull'OggettoAnteprima
- CostruttoreAnteprima
- Sfida: Costruttore della Classe TeamAnteprima
- Metodo ToString()Anteprima
- Sfida: Visualizzazione delle Informazioni del PappagalloAnteprima
In questa sezione, continueremo il nostro studio delle classi. Esploreremo un utilizzo più avanzato degli oggetti di classe e approfondiremo i modificatori di accesso e il loro utilizzo efficace. Analizzeremo inoltre getter e setter, in quanto considerati best practice nella programmazione.
Finalmente, possiamo iniziare a studiare la programmazione orientata agli oggetti (OOP) in Java. Sarà impegnativo, ma sono certo che avrai successo! In questa sezione tratteremo tutti i principi della OOP e spiegheremo perché la OOP è importante. Imparerai come ereditare classi, sovraccaricare e sovrascrivere metodi, incapsulare dati da altre classi e lavorare con l'astrazione. Inoltre, rafforzerai tutti questi concetti teorici con esercizi pratici, lavorando su assegnazioni nel tuo IDE. Acquisirai una vasta conoscenza, sia pratica che teorica, quindi iniziamo!
Nella sezione precedente, abbiamo concluso che tutta la Programmazione Orientata agli Oggetti si basa principalmente sull'astrazione. Tuttavia, una classe astratta presenta una limitazione significativa: è possibile ereditare solo da una classe astratta. Ma cosa succede se abbiamo bisogno di più?
Le interfacce vengono in nostro aiuto. In questa sezione, apprenderai che cos'è un'interfaccia, perché è necessaria, come utilizzarla correttamente e continuerai a esercitarti con la Programmazione Orientata agli Oggetti. Preparati a diventare un professionista!
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 StructuresAnteprima
- List and ArrayList in JavaAnteprima
- Challenge: Library Management SystemAnteprima
- CRUD Operations in JavaAnteprima
- LinkedList in JavaAnteprima
- Implementing LinkedList in JavaAnteprima
- Challenge: Implementing size and delete Methods in LinkedListAnteprima
- Quiz: Fundamental Data StructuresAnteprima
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 SupportAnteprima
- Parallel Stream APIAnteprima
- BlockingQueue and its ImplementationsAnteprima
- Сhallenge BlockingQueueAnteprima
- ConcurrentMap and its ImplementationsAnteprima
- Challenge ConcurrentMapAnteprima
- CopyOnWrite CollectionAnteprima
- Examples of Using Collections MethodsAnteprima
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.
- ArchitectureAnteprima
- PrinciplesAnteprima
- What Is a Functional Interface?Anteprima
- Predicate: Data FilteringAnteprima
- Challenge: Filtering Corporate Email AddressesAnteprima
- Function: Data TransformationAnteprima
- Challenge: Income Tax CalculationAnteprima
- Comparable: Natural Ordering of DataAnteprima
- Comparator: Custom Comparison of DataAnteprima
- Challenge: Sorting EmployeesAnteprima
- Consumer: Processing DataAnteprima
- Supplier: Data GenerationAnteprima
- Bi-versions of Functional InterfacesAnteprima
- Challenge: Filtering Users by Two CriteriaAnteprima
- BinaryOperator: Combining Two ValuesAnteprima
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() MethodAnteprima
- Filtering Elements with the filter() MethodAnteprima
- Challenge: Factory Product FilteringAnteprima
- Working with Nested Structures with the flatMap() MethodAnteprima
- Arranging Items in Order with the sorted() MethodAnteprima
- Challenge: Selecting the Best Cars on the Production LineAnteprima
- Eliminating Duplicates with the distinct() MethodAnteprima
- Challenge: Factory Quality ControlAnteprima
- Restricting and Skipping Elements with the limit() and skip() MethodsAnteprima
- Challenge: Finding the Top 3 Hardest-Working EmployeesAnteprima
- Intermediate Processing with the peek() MethodAnteprima
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 CollectionAnteprima
- Challenge: Build a Custom Collector for Category CountingAnteprima
- Collectors Utility Class for Stream APIAnteprima
- Processing Elements with the forEach() MethodAnteprima
- Handling Values with the Optional ClassAnteprima
- Aggregating Elements with the reduce() MethodAnteprima
- Challenge: Calculating Total Cost with Discounts and TaxAnteprima
- Calculating Stream Statistics with count(), max(), and min()Anteprima
- Retrieving Stream Summary Metrics with summaryStatistics() MethodAnteprima
- Retrieving Elements from a Stream with findFirst() and findAny()Anteprima
- Challenge: Selecting Random Products Within a CategoryAnteprima
- Checking Stream Elements Against a Condition with allMatch()Anteprima
- Challenge: Ensuring Fast Delivery for Expensive ProductsAnteprima
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
La cosa principale è imparare e non arrendersi
Il materiale è buono, c'è tanto da imparare, tutto per migliorarsi, e la cosa principale è imparare ciò che desideri....
Matteo Comune
Grazie a loro sto imparando molto…
Grazie a loro sto imparando molto più rapidamente perché ti aiutano a comprendere tutto da zero. È il miglior sito web per chi non ha background in IT...
Yuliana Cadavid
ottimo corso per principianti
ottimo corso per principianti, mettono alla prova le tue conoscenze in ogni lezione...
Elpunzon
Sto apprezzando la mia esperienza su Codefinity…
Sto apprezzando la mia esperienza di apprendimento di Python con Codefinity. Il metodo di studio autodidatta è fantastico perché posso adattarlo al mio orario...
Alexandru Alexandru
È piacevole imparare da Codefinity
È piacevole imparare da Codefinity. È facile e offre buoni esempi di quanto appreso qui...
jacob Templet
Easy to follow along with and provides…
Facile da seguire e offre una sfida nella mia vita quotidiana. La sfida mi motiva a imparare giorno dopo giorno...
Elan
Codefinity è uno strumento di apprendimento completo…
Codefinity è uno strumento di apprendimento completo che ti aiuta a sviluppare le tue competenze come ingegnere del software o data scientist. Gli esercizi sono divertenti e un ottimo modo per affinare le tue abilità...
Thibault
Prima volta che impari a programmare
La prima volta che ho imparato a programmare e ci sono riuscito con Codefinity - Grazie...
Adrien Morel
Ben progettato per principianti assoluti
Ben progettato per principianti assoluti, con un progresso incrementale che mi dà fiducia....
_Gracy
è semplicemente perfettamente spiegato
È semplicemente perfettamente spiegato! Finora non ho incontrato alcuna difficoltà perché tutto è così ben organizzato....
Ruslan Kravchuk
La cosa principale è imparare e non arrendersi
Il materiale è buono, c'è tanto da imparare, tutto per migliorarsi, e la cosa principale è imparare ciò che desideri....
Matteo Comune
Grazie a loro sto imparando molto…
Grazie a loro sto imparando molto più rapidamente perché ti aiutano a comprendere tutto da zero. È il miglior sito web per chi non ha background in IT...
Yuliana Cadavid
ottimo corso per principianti
ottimo corso per principianti, mettono alla prova le tue conoscenze in ogni lezione...
Elpunzon
Sto apprezzando la mia esperienza su Codefinity…
Sto apprezzando la mia esperienza di apprendimento di Python con Codefinity. Il metodo di studio autodidatta è fantastico perché posso adattarlo al mio orario...
Alexandru Alexandru
È piacevole imparare da Codefinity
È piacevole imparare da Codefinity. È facile e offre buoni esempi di quanto appreso qui...
jacob Templet
Easy to follow along with and provides…
Facile da seguire e offre una sfida nella mia vita quotidiana. La sfida mi motiva a imparare giorno dopo giorno...
Elan
Codefinity è uno strumento di apprendimento completo…
Codefinity è uno strumento di apprendimento completo che ti aiuta a sviluppare le tue competenze come ingegnere del software o data scientist. Gli esercizi sono divertenti e un ottimo modo per affinare le tue abilità...
Thibault
Prima volta che impari a programmare
La prima volta che ho imparato a programmare e ci sono riuscito con Codefinity - Grazie...
Adrien Morel
Ben progettato per principianti assoluti
Ben progettato per principianti assoluti, con un progresso incrementale che mi dà fiducia....
_Gracy
è semplicemente perfettamente spiegato
È semplicemente perfettamente spiegato! Finora non ho incontrato alcuna difficoltà perché tutto è così ben organizzato....
Data Engineer
Certificato di Completamento
Mostra le abilità che hai acquisite recentemente. Te lo sei guadagnato
Discover more
Learning tracks
Solo per Ultimate
1 Corso
1 Progetto
0 Task
Solo per Ultimate
7 Corsi
345 Compiti
Solo per Ultimate
4 Corsi
98 Compiti
Solo per Ultimate
5 Corsi
145 Compiti
Solo per Ultimate
4 Corsi
115 Compiti
Solo per Ultimate
6 Corsi
101 Compiti
Solo per Ultimate
6 Corsi
195 Compiti
Solo per Ultimate
5 Corsi
144 Compiti
Solo per Ultimate
3 Corsi
1 Progetto
125 Compiti
Solo per Ultimate
4 Corsi
143 Compiti
Solo per Ultimate
5 Corsi
180 Compiti
Solo per Ultimate
5 Corsi
165 Compiti
Solo per Ultimate
6 Corsi
308 Compiti
Solo per Ultimate
6 Corsi
252 Compiti
Solo per Ultimate
8 Corsi
2 Progetti
185 Compiti
Solo per Ultimate
2 Corsi
89 Compiti
Solo per Ultimate
7 Corsi
293 Compiti
Solo per Ultimate
1 Progetto
0 Task
Solo per Ultimate
2 Corsi
21 Compiti
Solo per Ultimate
5 Corsi
139 Compiti
Solo per Ultimate
2 Corsi
0 Task
Solo per Ultimate
4 Corsi
81 Compiti
Solo per Ultimate
13 Corsi
555 Compiti
Solo per Ultimate
13 Corsi
555 Compiti
Solo per Ultimate
1 Corso
0 Task
Solo per Ultimate
0 Task
Solo per Ultimate
6 Corsi
180 Compiti
Solo per Ultimate
3 Corsi
70 Compiti
Solo per Ultimate
7 Corsi
282 Compiti
Solo per Ultimate
5 Corsi
239 Compiti
Solo per Ultimate
4 Corsi
125 Compiti
Solo per Ultimate
3 Corsi
119 Compiti
Solo per Ultimate
1 Corso
15 Compiti
Solo per Ultimate
3 Corsi
75 Compiti
Solo per Ultimate
3 Corsi
41 Compiti
Solo per Ultimate
3 Corsi
180 Compiti
Solo per Ultimate
3 Corsi
61 Compiti
Solo per Ultimate
2 Corsi
1 Progetto
38 Compiti
Solo per Ultimate
3 Corsi
36 Compiti
Solo per Ultimate
2 Corsi
1 Progetto
38 Compiti
Solo per Ultimate
5 Corsi
134 Compiti
Solo per Ultimate
5 Corsi
211 Compiti
Solo per Ultimate
5 Corsi
206 Compiti
Solo per Ultimate
3 Corsi
2 Progetti
59 Compiti
Learning tracks
traccia
TEST TRACK 12
Principiante
4.0
(9130)
traccia
Sviluppo Web Full Stack
Principiante
4.6
(58)
traccia
Diventa uno Sviluppatore React
Intermedio
4.9
(7)
traccia
Padroneggiare la Visualizzazione dei Dati
Intermedio
4.6
(7)
traccia
SQL da Zero a Eroe
Principiante
4.7
(93)
traccia
Fondamenti di C++
Principiante
4.4
(17)
traccia
Python da Zero a Eroe
Principiante
4.7
(287)
traccia
Apprendimento Supervisionato delle Macchine
Intermedio
4.9
(7)
traccia
Python Oltre l'Intermedio
Principiante
4.7
(3)
traccia
Sviluppo di Giochi con Unity
Principiante
4.6
(7)
traccia
Become a Django Developer
Avanzato
4.5
(28)
traccia
Flask for Dummies
Intermedio
4.5
(32)
traccia
Fondamenti Dello Sviluppo Frontend
Principiante
4.6
(53)
traccia
Web Developer from Zero to Hero
Principiante
4.6
(57)
traccia
Preparation for Data Science
Intermedio
4.5
(11)
traccia
Deep Learning Odyssey
Avanzato
5.0
(3)
traccia
Sviluppo Web con C#
Principiante
4.8
(98)
traccia
TEST E2E TRACK BEGINNER
Principiante
traccia
Test Track
4.7
(3)
traccia
Skilled Python BackEnd Developer
Avanzato
4.7
(264)
traccia
Test Recalculate
Principiante
traccia
Fondamenti di Excel
Principiante
4.5
(39)
traccia
Full-Stack .NET Developer Journey
Intermedio
4.8
(129)
traccia
Full-Stack .NET Developer Journey
Intermedio
4.8
(129)
traccia
Test track with rating
Avanzato
4.0
(4)
traccia
TEST TEST TRACK
Principiante
traccia
Fondamenti di Analista Dati
Principiante
4.7
(116)
traccia
Padronanza di C++
Avanzato
traccia
Java Web
Avanzato
4.5
(31)
traccia
Diventa un Ingegnere QA
Principiante
4.5
(44)
traccia
Produzione Video con Adobe
Principiante
traccia
Strumenti di Design UI/UX
Principiante
traccia
Test image upload track
Principiante
traccia
Competenze Essenziali per l'Ufficio
Principiante
4.6
(24)
traccia
GitHub from Zero to Hero
Principiante
traccia
No-Code Website Development
Principiante
traccia
C Programming & Low-Level Development
Principiante
traccia
testes
Principiante
4.7
(3)
traccia
Test translation track
Intermedio
traccia
Test CMS Track
Principiante
4.7
(3)
traccia
Python for Data Analysis
Intermedio
4.6
(9)
traccia
Digital Marketing Essentials
Principiante
traccia
Complete Social Media Management
Principiante
traccia
Business AI Toolkit
Principiante
4.5
(2)
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