This repository contains all the practical exercises and projects developed during the Java Premium Bootcamp by Código Facilito, taught by Tatiana Borda (Alien Explorer).
The Java Premium Bootcamp is an asynchronous premium program that combines pre-recorded classes with weekly live mentoring sessions. Students learn at their own pace throughout the week and attend live sessions to resolve doubts and reinforce key concepts through practical exercises.
- Java environment setup (JDK 21 - LTS)
- Variables and data types (primitives vs references)
- Operators (arithmetic, logical, relational)
- Control flow structures (if/else, switch, loops)
- Methods and scope
- Input validation with Scanner
- Java naming conventions (camelCase, PascalCase, UPPER_SNAKE_CASE)
- Classes and objects
- Attributes and methods
- Encapsulation (private, public, getters/setters)
- Inheritance (extends, super)
- Polymorphism (method overriding)
- Abstraction (abstract classes and interfaces)
- Collections framework:
- ArrayList (dynamic lists)
- HashMap (key-value pairs)
- For-each loops and lambdas
- Packages organization
- Exception handling:
- Checked vs Unchecked exceptions
- try-catch-finally blocks
- throws keyword
- Custom exceptions
- Date and Time API (java.time)
- Advanced Collections (List, Set, Map)
- Streams and Lambda expressions
- JVM (Java Virtual Machine) architecture
- Memory management:
- Heap and Stack
- Young and Old Generation
- Garbage Collection
- Memory leaks and OutOfMemoryError prevention
- StackOverflowError
- Build automation history and importance
- Maven:
- Project structure (src/main/java, src/test/java)
- pom.xml configuration
- GAV (GroupId, ArtifactId, Version)
- Lifecycle phases (clean, compile, test, package, install, deploy)
- Dependency management
- Gradle:
- build.gradle syntax (Groovy/Kotlin DSL)
- Gradle Wrapper (gradlew)
- Build cache and incremental compilation
- Performance advantages
- Maven vs Gradle comparison
- Industry adoption and use cases
- File reading and writing:
- Traditional approach (java.io)
- Modern approach (java.nio.file)
- Directory manipulation
- Try-with-resources for automatic resource management
- Serialization and Deserialization:
- Serializable interface
- ObjectOutputStream and ObjectInputStream
- transient keyword
- CLASSPATH understanding
- Java I/O fundamentals:
- Streams (byte streams vs character streams)
- Buffered classes (BufferedReader, BufferedWriter)
- Reader/Writer vs Streams
- Java NIO (New I/O):
- Channels and Buffers
- Selectors for non-blocking I/O
- Properties files:
- Reading and writing .properties files
- XML format support
- ResourceBundle and Locale for internationalization
- java.nio.file API:
- Path and Files classes
- File operations (create, copy, move, delete)
- Directory traversal
- Testing fundamentals:
- Types of testing (Unit, Integration, System, Manual)
- Importance and objectives
- JUnit framework:
- Annotations (@Test, @BeforeEach, @AfterEach, @BeforeAll, @AfterAll, @Disabled)
- Assertions
- Parameterized tests
- Mocking concepts (isolating dependencies)
- SOLID principles:
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Writing clean and testable code
Throughout the bootcamp, students progressively build a Personal Expense Calculator that evolves with each module:
- Module 1: Basic console application with variables, control flow, and Scanner validation
- Module 2: Refactored with OOP principles (Movement abstract class, Expense and Income classes)
- Module 3: Enhanced with exception handling, date/time management, and streams
- Module 4: Configured as a Maven/Gradle project with proper dependency management
- Module 5: Added file persistence using serialization
- Module 6: Implemented advanced file operations and configuration with .properties files
- Module 7: Complete unit test coverage with JUnit
Tatiana Borda (Alien Explorer)
- Full-stack developer with 5+ years of experience in Java, JavaScript, Solidity, and Rust
- Web3 enthusiast and hackathon participant
- Founder of "Buen Día Builders" organization
- Content creator on YouTube: AlienExplorer
- Java JDK 21 (LTS version)
- Maven or Gradle
- IntelliJ IDEA (recommended) or any Java IDE
- Git for version control
- Clone this repository:
git clone https://github.com/tatianaborda/java-premium.git- Navigate to the project directory:
cd java-premium- If using Maven:
mvn clean install
mvn exec:java- If using Gradle:
./gradlew build
./gradlew runjava-premium/
├── src/
│ ├── main/
│ │ └── java/
│ │ └── com/codigofacilito/
│ │ ├── model/
│ │ ├── service/
│ │ └── util/
│ └── test/
│ └── java/
├── config.properties
└── pom.xml (or build.gradle)
By completing this bootcamp, students will be able to:
✅ Write clean, maintainable Java code following industry best practices
✅ Apply Object-Oriented Programming principles effectively
✅ Handle exceptions and manage memory efficiently
✅ Work with modern Java APIs (Collections, Streams, NIO)
✅ Build projects using Maven or Gradle
✅ Implement file persistence and configuration management
✅ Write comprehensive unit tests with JUnit
✅ Follow SOLID principles for better software design
✅ Understand JVM internals and performance optimization
This is an educational repository for the Java Premium Bootcamp. If you're a student of the course and want to share improvements or fixes, feel free to open a pull request!
This project is created for educational purposes as part of the Código Facilito Java Premium Bootcamp.
Made with ❤️ by the Java Premium Bootcamp students