Java & Related Concepts
This Repo contains Notes and Programs on following topics :
- Java Fundamentals
- Java Object-Oriented Programming
- Java Collections Framework
- I/O & Networking in Java
- Concurrency in Java
- Databases in Java
- Design Patterns in Java
- Data Structures in Java
- Algorithms in Java
- Kotlin - Modern JVM Language
- Android Development (Java & Kotlin)
- Spring Boot REST API (Java & Kotlin)
- Unit Testing in Java
[1] Java - Fundamentals & OOPS [Done]
NOTES [Useful Info] :
-> All 50 Java Keywords with definitions & examples
-> Java Features, Execution Process & JVM Internals
-> Java Fundamentals & OOPS Concepts
-> Java OOPS - few points to remember
-> Methods of Number, Char, String, Array Classes
PROGRAMS :
Variables & Operators | Control Flow
Classes & Objects | static & this | Inner Classes
Inheritance (is-a) | Association (has-a, part-of)
Overloading | Overriding | super & final
Runtime Polymorphism | instanceof
Abstraction | Interfaces | Encapsulation
Arrays | Strings | Date & Time | Misc
.
[2] Java - Generics, Collections & Exception Handling [Done]
NOTES [Useful Info] :
-> Java Errors and Exception Handling
PROGRAMS :
Generics in Java
Collection Interface (List,Set,Queue)
Map Interface (Map)
Legacy (Enum,Vector,Stack,etc)
Collections Class
Exception Handling
.
[3] Java - Files, I/O, Serialization, Networking, Others [Done]
NOTES [Useful Info] :
-> Java RegEx & Lambda Expressions
PROGRAMS :
Files and I/O
Serialization
Networking (Socket,URL,HTTP,Datagram)
Regular Expressions
Lambda Expressions
Data Parsing (CSV, JSON & XML)
Advanced Data Types (Protobuf, Flatbuffer)
.
[4] Java - Threads, Concurrency & Concurrent Collections [WIP]
NOTES [Useful Info] :
-> Java Multithreading & Garbage Collection
-> Java Thread Synchronization
PROGRAMS :
Multithreading
Thread Synchronization
Classic Concurrency Problems
Operating Systems (CPU Scheduling, Memory Management)
Background Processing
Inter-Process Communication
.
[5] Java - Software Design [WIP]
NOTES [Useful Info] :
-> Design Patterns & Examples in JDK
-> Creational Patterns: Singleton, Builder, Factory Method, Prototype
-> Structural Patterns
-> Behavioral Patterns
-> Design Patterns Cheat Sheet
PROGRAMS :
GOF Design Patterns - Creational
GOF Design Patterns - Structural
GOF Design Patterns - Behavioral
SOLID Design Principles
Object Oriented Design
Design Interview Questions
.
[6] Java - Data Structures & Algorithms [WIP]
NOTES [Useful Info] :
-> Searching and Sorting Algorithms
-> Concepts of Dynamic Programming
PROGRAMS :
Basic Programs | Recursion Programs
Arrays | Strings | Matrix
Linked Lists | Stacks | Queues
BSTs | Heap | Hashing
Searching | Sorting
Tree Traversal | Graph Traversal
Graph Algorithms
Dynamic Programming
Coding Interview Problems
.
[2021] Kotlin - Modern JVM Language [WIP]
- Fastest growing language in Guthub & among the most loved acc. to StackOverflow survey
- Cross-platform, General-purpose, Concise, Safe & fully interoperable with Java
- Primary Official language for Native Android Development since 2019
- Officially supported by Spring Framework, JetBrains Ktor, Eclipse Vert.x (server-side dev)
NOTES [Useful Info] :
-> Kotlin Funadamentals and OOP
-> Kotlin Overview, Features & Multi-platform Support
PROGRAMS :
Basic Syntax Programs
Collections
Coroutines
Serialization
Standard Library
Kotlin for Android
.
[2021] Android Development (Java & Android Libraries) [WIP]
- There are 2.5 billion+ monthly active Android devices
- In 2020, Google Play users worldwide downloaded 108.5 billion mobile apps
- Native Apps have better performance, security, access to device hardware and software
- Native apps tends to have less bugs, gets latest features first and run smoother
NOTES [Useful Info] :
-> UI Basics - XML layouts, views, event handlers
-> Recycler View - display scrolling list data using adapter pattern
-> Retrofit - type-safe HTTP client for Java & Android
-> Glide - efficient image loading lib with media decoding, memory & disk caching
-> RoomDB - ORM based SQLite wrapper for fluent db access
-> WorkManager - schedule deferrable, asynchronous tasks
-> ViewModel - store & and manage UI-related data in lifecycle-aware way
-> LiveData - lifecycle-aware observable data holder, ootb data binding support
-> DataBinding - bind UI components to data sources in declarative way
-> RxJava - asynchronous, event-based programs using observable sequences
-> Dagger - static, compile-time dependency injection framework
-> JUnit - developer-side testing on the JVM (unit testing framework)
*-> Mockito - mocking objects in unit tests (test doubling framework)
PROGRAMS :
...
.
Relation of Java and Others Languages
NOTES [Useful Info] :
-> Comparisons between C, C++, C# and Java Language
-> CheatSheet | C# for Java Developers
.
Extras
NOTES :
[USEFUL INFO - Good Java & Computer Science Books for Reference]
[USEFUL INFO - Great Websites for Learning Java & Computer Science]
.
NOTE :
I will keep adding more important codes to this Repo throughout 2021.
Happy Learning! π
.
REFERENCES :
This repository contains some codes and images from other authors.
Used for "Nonprofit Educational Purpose".
References are listed in the above link for Books & Websites.
Thanks to those authors! π
.