Repository dedicated to demonstrating technical mastery of Java (SE) fundamentals,
focusing on best practices, clean code, and performance. 
Note
In this proyect, my objetive is to learn while i code until i dominate all the fundamentals of Java.
I have created milestones and issues for all the pending tasks in this repository.
I would appreciate any advice or recommendations on how to expand both my knowledge and my portfolio in this area.
| File | Content |
|---|---|
Variables.java |
Declaration, initialization, constants (final), casting, variable scope |
DataTypes.java |
Primitive types (byte, short, int, long, float, double, char, boolean) and String |
Operators.java |
Arithmetic, relational, logical, assignment, and ternary operators |
ControlFlow.java |
if/else, switch (classic and expression), for, for-each, while, do-while, break/continue |
Arrays.java |
One-dimensional arrays and matrices (2D), iteration, sorting, searching |
Methods.java |
Methods, parameters, overloading, recursion, varargs |
| File | Concept | Content |
|---|---|---|
Classes.java |
Classes and objects | Attributes, constructor, this, methods |
Encapsulation.java |
Encapsulation | Private attributes, getters/setters, internal state protection |
Inheritance.java |
Inheritance | extends, super, code reusability, @Override |
Polymorphism.java |
Polymorphism | Dynamic dispatch, superclass references pointing to subclasses |
Interfaces.java |
Interfaces | Contracts, multiple interfaces, default methods, lambdas |
AbstractClasses.java |
Abstract classes | Abstract vs. concrete methods, non-instantiable |
| File | Content |
|---|---|
ListsExample.java |
ArrayList and LinkedList: add, insert, remove, iterate / traverse |
SetsExample.java |
HashSet (no duplicates, unordered) and TreeSet (sorted) |
MapsExample.java |
HashMap and TreeMap: key-value pairs, getOrDefault, iteration / traversal |
ComparatorsExample.java |
Comparable (natural ordering) vs. Comparator (external/custom ordering) |
| File | Content |
|---|---|
ExceptionHandling.java |
try/catch/finally, multiple catch blocks, common exceptions (ArithmeticException, NullPointerException, etc.) |
CustomExceptions.java |
Custom exceptions: checked (extends Exception) vs. unchecked (extends RuntimeException) |
TryWithResources.java |
Automatic resource management using try-with-resources and AutoCloseable |
| File | Content |
|---|---|
LambdasBasics.java |
Functional interfaces: Function, BiFunction, Predicate, Supplier, Runnable, method references |
StreamsBasics.java |
filter, map, forEach, collect, count, anyMatch, allMatch |
AdvancedStreams.java |
reduce, groupingBy, sorted with Comparator, statistics, IntStream |
Clear and fully commented implementations of the algorithms that appear most often in classic programming problems
| File | Algorithm | Complexity |
|---|---|---|
BubbleSort.java |
Bubble Sort | O(n²) |
QuickSort.java |
Quick Sort (divide and conquer) | O(n log n) average |
MergeSort.java |
Merge Sort (stable) | O(n log n) guaranteed |
| File | Algorithm | Complexity |
|---|---|---|
BinarySearch.java |
Binary Search (iterative and recursive) | O(log n) |
| File | Algorithm | Complexity |
|---|---|---|
Fibonacci.java |
Fibonacci: recursive, memoized, and iterative | O(2ⁿ) / O(n) / O(n) |
Factorial.java |
Factorial: recursive and iterative | O(n) |
| File | Algorithm | Complexity |
|---|---|---|
Knapsack01.java |
0/1 Knapsack Problem | O(n × capacity) |
LongestCommonSubsequence.java |
Longest Common Subsequence (LCS) | O(n × m) |
| File | Algorithm | Complexity |
|---|---|---|
BFS.java |
Breadth-First Search (queue-based) | O(V + E) |
DFS.java |
Depth-First Search (recursive and iterative) | O(V + E) |
| File | Algorithm | Description |
|---|---|---|
FizzBuzz.java |
FizzBuzz | The classic screening filter |
PrimeNumbers.java |
Prime Verification + Sieve of Eratosthenes | O(√n) and O(n log log n) |
Palindrome.java |
Palindrome Check (two pointers approach) | O(n) |
ReverseString.java |
Reverse a String (manual and recursive) | O(n) |
TwoSum.java |
Two Sum: brute force vs. HashMap | O(n²) vs. O(n) |
Important
If someone has more ideas to expand my project I will apreciate it! :p
I’ll keep adding more things and learning as I continue working on this repository ^^