Welcome to my Core Java repository! This collection showcases my hands-on projects and exercises while learning Core Java concepts, including Object-Oriented Programming (OOP), Collections, Exception Handling, File I/O, Multithreading, and more. These projects demonstrate my understanding of Java fundamentals and real-world applications.
- In-depth mastery of OOP principles: encapsulation, inheritance, and polymorphism
- Designed and implemented Java classes with well-structured constructors, methods, and fields
- Created and leveraged abstract classes and interfaces to enforce contracts and extend functionality
- Applied method overloading and overriding to maximize code reuse and flexibility
- Hands-on experience with the Java Collections Framework (
List
,Set
,Map
,Queue
) - Implemented and used
ArrayList
,LinkedList
,HashSet
, andHashMap
for various use cases - Explored iteration and manipulation of collections using enhanced for-loops and iterators
- Understood when to choose specific implementations based on performance characteristics (e.g.,
ArrayList
vs.LinkedList
,HashMap
vs.TreeMap
)
- Solid use of
try
-catch
-finally
blocks to gracefully handle runtime errors - Defined and threw custom exceptions to clarify error conditions
- Employed exception propagation and analyzed stack traces for effective debugging
- Ensured robust program flow with proper resource cleanup and validation
- Read from and wrote to files using
FileReader
,BufferedReader
,FileWriter
, andBufferedWriter
- Implemented try-with-resources for automatic stream closing
- Serialized and deserialized Java objects to files for persistent storage
- Processed CSV and text files to simulate real-world data import/export tasks
- Created and managed threads via the
Thread
class andRunnable
interface - Ensured thread safety using
synchronized
blocks andvolatile
variables - Built concurrent workflows to perform tasks in parallel, improving throughput
- Demonstrated coordination between threads using
wait()
,notify()
, andnotifyAll()
- Embraced lambda expressions to write concise, functional-style code
- Utilized the Streams API for declarative collection processing (
filter()
,map()
,reduce()
) - Leveraged
Optional<T>
to handle potentially null values without explicit checks - Applied method references and functional interfaces for cleaner callbacks
- Explored the new Date/Time API (
java.time
) for immutable, thread-safe date handling
- Strong foundation in Core Java: OOP, Collections, Exception Handling, I/O, and Concurrency
- Proficient with Java 8+ functional programming constructs and stream processing
- Ability to choose the right collection type based on performance needs
- Experience writing robust, maintainable, and thread-safe Java code
- Familiarity with serialization, file handling, and resource management