Java was created in 1995 by James Gosling, Mike Sheridan, and Patrick Naughton at Sun Microsystems with the aim of providing a platform-independent programming language for building robust, high-performance applications. Over the years, Java has become one of the most widely used languages due to its versatility, scalability, and strong community support.
Java is crucial in the software industry, powering a vast array of applications, from enterprise-level systems and web applications to mobile apps on Android and large-scale data processing frameworks. Its "write once, run anywhere" philosophy has made it a staple in the development world, particularly for building cross-platform applications.
My professional journey began with Java, especially in the realm of constraint programming, which required a solid grasp of the language. TThis repository is a collection of practical code examples and solutions I have developed over time using IntelliJ IDEA. It focuses solely on hands-on code, without delving into theoretical aspects. Here, you will find key learnings, practical implementations, and useful snippets that reflect my experiences and insights gained while working with Java.
Feel free to explore and use the code in this repository for your own learning and projects. Contributions and feedback are always welcome!
I highly recommend considering the references listed at the end of this repository. All of them have been crucial for my comprehensive development in Java, and I am confident they will be invaluable to you as well. Happy learning!
-
Books: Grokking Algorithms[1][2], Java: How to Program [3] and Real Software Development: A Project Guide to Java Fundamentals [4];
-
Courses: Complete Java Object Oriented Programming + Projects [5];
-
Websites: Roadmap-Java [6];
-
Programming Logic and Algorithms: Input, output, assignment; Conditionals; rotations; Matrices; Functions, sequential structure, conditional structure, repetition structure;
-
Object Oriented Programming: Classes, attributes, methods, constructors, overloading, encapsulation, object composition, inheritance and polymorphism, memory behavior, exceptions, interfaces, collections, lambda expressions;
-
Data Structures and Algorithms: Binary and Breadth Search, Dijkstra's Algorithm, Dynamic Programming, K-Nearest Neighbors, Big O notation, Arrays and lists, Chaining, Quicksort, Stacks and queues, Sets and hash tables , recursion, trees and graphs, complexity of algorithms, dynamic programming of greedy algorithms;
-
Git: Repositories and versions, Problem Fixes, Branches, Fork and pull requests;
-
Database and SQL: Conceptual modeling, logical modeling, normalization, SQL: DDL and DML, SQL Queries;
[1] A. Bhargava, Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People, 1st ed., Novatec, 2017.
[2] A. Bhargava, Grokking Algorithms, GitHub, 2024. [Online]. Available: https://github.com/egonSchiele/grokking_algorithms. [Accessed: 2024].
[3] P. Deitel and H. Deitel, Java®: Como Programar, 10th ed., Pearson Universidades, 2016.
[4] R.G. Urma, R. Warburton, Real Software Development: A Project Guide to Java Fundamentals, 1st ed., O'Reilly Media, 2021.
[5] Nelio Alves, "Java COMPLETO Programação Orientada a Objetos + Projetos" Udemy, 2024. [Online]. Available: https://www.udemy.com/course/java-curso-completo. [Accessed: 2024].
[6] "Java Developer Roadmap," Roadmap.sh, 2023. [Online]. Available: https://roadmap.sh/java. [Accessed: 2024].