Skip to content

Latest commit

 

History

History
107 lines (64 loc) · 6.1 KB

File metadata and controls

107 lines (64 loc) · 6.1 KB

🚀 Java Learning Journey 🚀

Welcome to my Java programming journey! This repository documents my progress from beginner to advanced Java concepts through practical projects.

🎯 Learning Goals

  • ✅ Master Java syntax and core concepts
  • ✅ Understand object-oriented programming principles
  • ✅ Develop GUI applications
  • ✅ Work with files and databases
  • ✅ Build web-connected applications
  • ✅ Apply best practices and design patterns

📚 Resources I'm Using

💡 Reflections

As I complete each project, I'll add my thoughts and lessons learned here.

Project 1: Shopping Cart Program

Created a simple console shopping cart that handles item name, price, and quantity to calculate purchase totals.

Learned: Scanner input, data types (String, double, int), basic I/O, arithmetic operations, and string concatenation.

Project 2: Compound Interest Calculator

Developed a console application to calculate compound interest using user inputs for principal, rate, compounding frequency, and time period.

Learned: Advanced mathematical calculations using Math.pow(), formatted output with System.out.printf(), handling financial calculations, and precise decimal representations.

Key Techniques: Scanner input, mathematical formulas, type conversion, and basic financial computation.

Project 3: Weight Converter

Created a console application that converts weights between pounds and kilograms using user-selected conversion options.

Learned: Conditional logic with if-else, user input validation, type conversion, and implementing simple conversion formulas.

Key Techniques: Menu-driven program, mathematical conversions, formatted output, and basic error handling.

Project 4: Banking Program

Implemented a simple console-based banking application with options to check balance, deposit, withdraw, and exit.

Learned: Loop-based menu systems, modular programming with static methods, parameter passing, switch expressions (->), and persistent state management.

Key Techniques: Input validation, maintaining state across operations, defensive programming (checking for negative values and insufficient funds), and user interface design.

Project 5: Dice Roller Application

Developed a console-based application that simulates rolling multiple dice with visual representation of each die face and calculates the total sum.

Learned: Random number generation, ASCII art implementation using text blocks, switch expressions with arrow syntax, and accumulating values across iterations.

Key Techniques: User input validation, ASCII art for visualization, Java text blocks, switch expressions, loops for multiple dice rolls, and running totals.

Project 6: Java Slot Machine

Developed a console-based slot machine game that simulates a real-world slot machine with multiple symbols, betting system, and dynamic payouts based on matching patterns.

Learned: Managing game state, implementing game mechanics with random outcomes, creating engaging user interfaces in console applications, and handling in-game currency/economy.

Key Techniques: Random symbol generation, pattern matching for win conditions, variable payout calculations based on symbol value, game loop management, and handling persistent game state between rounds. javaCopy

Project 7: Java Music / Audio Player

Developed a console-based audio player application that can play, stop, and reset audio files (.wav, .au, .aiff) using Java's sound API.

Learned: Working with Java's sound API (javax.sound.sampled), handling audio streams, resource management with try-with-resources, and implementing audio playback controls.

Key Techniques: File I/O operations, audio stream management, exception handling with multiple catch blocks, try-with-resources for automatic resource cleanup, and implementing an interactive menu system.

Project 8: Java Hangman Game

Developed a console-based Hangman game that reads words from a text file, randomly selects one for the player to guess, and provides visual feedback through ASCII art of the hangman.

Learned: File reading operations, ArrayList manipulation, character handling, ASCII art implementation with text blocks, and game state management.

Key Techniques: BufferedReader for file operations, dynamic word selection using Random, ArrayList for tracking game state, character-by-character comparison, and progressive visual feedback based on player performance.

Project 9: Java Countdown Timer

Developed a console application that creates a countdown timer from a user-specified number of seconds and displays a celebration message when the countdown reaches zero.

Learned: Working with Java's Timer and TimerTask classes, implementing scheduled tasks, handling time-based events, and creating anonymous inner classes.

Key Techniques: Scheduling tasks at fixed intervals, timer management, anonymous class implementation, user input for customization, and event-driven programming concepts.

Project 10: Java Alarm Clock

Developed a multithreaded alarm clock application that allows users to set an alarm time, displays a real-time clock, and plays an audio file when the alarm time is reached.

Learned: Working with Java's time API, multithreading concepts, implementing the Runnable interface, handling audio playback, and creating real-time updating displays.

Key Techniques: Thread management, time parsing and formatting, continuous time display with carriage return, audio file playback, and implementing multiple classes with specific responsibilities.

🛠️ Tools & Technologies

  • Java SE Development Kit (JDK)
  • Visual Studio Code with Java extensions
  • Git & GitHub for version control
  • Additional libraries and frameworks as needed

📬 Connect With Me

Feel free to reach out if you have suggestions or want to collaborate!


⭐ Star this repository if you find it interesting!