Skip to content

A journey through Java development — from beginner basics to advanced concepts — documented through hands-on console projects. This repository showcases step-by-step learning progress, covering core syntax, OOP principles, GUI, file handling, databases, multithreading, and more. Each project highlights lessons learned, key techniques, and practical

Notifications You must be signed in to change notification settings

Ghoulayush/Java-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

🚀 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!

About

A journey through Java development — from beginner basics to advanced concepts — documented through hands-on console projects. This repository showcases step-by-step learning progress, covering core syntax, OOP principles, GUI, file handling, databases, multithreading, and more. Each project highlights lessons learned, key techniques, and practical

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages