Day 51-What I Learned In a Day (JAVA) Today I stepped into the next important concept in Java -Non-Static Members. Unlike static members, non-static members belong to an object, not the class. This means they require an instance of the class to be accessed. What are Non-Static Members? Non-static members include: • Non-static variables (instance variables) • Non-static methods • Constructors Key Understanding: 🔹 Instance Variables Each object has its own copy of variables. Changes in one object do not affect another. 🔹 Non-Static Methods These methods can directly access both static and non-static members. They require object creation to be called. 🔹 Object Creation is Mandatory !To access non-static members: ClassName obj = new ClassName(); Important Difference I Learned: • Static → Belongs to class (no object needed) • Non-Static → Belongs to object (object required) What I Realized Today: Understanding non-static members is crucial because real-world applications mainly work with objects. This concept is the base for Object-Oriented Programming (OOP). #Java #OOP #Programming #LearningJourney #DeveloperLife
Java Non-Static Members Explained
More Relevant Posts
-
Day 7 of #100DaysOfCode — Java is getting interesting ☕ Today I explored the Java Collections Framework. Before this, I was using arrays for everything. But arrays have one limitation — fixed size. 👉 What if we need to add more data later? That’s where Collections come in. 🔹 Key Learnings: ArrayList grows dynamically — no size worries Easy operations: add(), remove(), get(), size() More flexible than arrays 🔹 Iterator (Game changer) A clean way to loop through collections: hasNext() → checks next element next() → returns next element remove() → safely removes element 🔹 Concept that clicked today: Iterable → Collection → List → ArrayList This small hierarchy made everything much clearer. ⚡ Array vs ArrayList Array → fixed size ArrayList → dynamic size Array → stores primitives ArrayList → stores objects Still exploring: Set, Map, Queue next 🔥 Consistency is the only plan. Showing up every day 💪 If you’re also learning Java or working with Collections — let’s connect 🤝 #Java #Collections #ArrayList #100DaysOfCode #JavaDeveloper #LearningInPublic
To view or add a comment, sign in
-
🔥 Java Records — Cleaner code, but with important trade-offs I used to write a lot of boilerplate in Java just to represent simple data: Fields… getters… equals()… hashCode()… toString() 😅 Then I started using Records—and things became much cleaner. 👉 Records are designed for one purpose: Representing immutable data in a concise way. What makes them powerful: 🔹 Built-in immutability (fields are final) 🔹 No boilerplate for getters or utility methods 🔹 Compact and highly readable 🔹 Perfect for DTOs and API responses But here’s what many people overlook 👇 ⚠️ Important limitations of Records: 🔸 Cannot extend other classes (they already extend java.lang.Record) 🔸 All fields must be defined in the canonical constructor header 🔸 Not suitable for entities with complex behavior or inheritance 🔸 Limited flexibility compared to traditional classes So while Records reduce a lot of noise, they are not a universal replacement. 👉 They work best when your class is truly just data, not behavior. 💡 My takeaway: Good developers don’t just adopt new features—they understand where not to use them. ❓ Question for you: Where do you prefer using Records—only for DTOs, or have you explored broader use cases? #Java #AdvancedJava #JavaRecords #CleanCode #BackendDevelopment #SoftwareEngineering
To view or add a comment, sign in
-
♻️ Ever wondered how Java manages memory automatically? Java uses Garbage Collection (GC) to clean up unused objects — so developers don’t have to manually manage memory. Here’s the core idea in simple terms 👇 🧠 Java works on reachability It starts from GC Roots: • Variables in use • Static data • Running threads Then checks: ✅ Reachable → stays in memory ❌ Not reachable → gets removed 💡 Even objects referencing each other can be cleaned if nothing is using them. 🔍 Different types of Garbage Collectors in Java: 1️⃣ Serial GC • Single-threaded • Best for small applications 2️⃣ Parallel GC • Uses multiple threads • Focuses on high throughput 3️⃣ CMS (Concurrent Mark Sweep) • Runs alongside application • Reduces pause time (now deprecated) 4️⃣ G1 (Garbage First) • Splits heap into regions • Balanced performance + low pause time 5️⃣ ZGC • Ultra-low latency GC • Designed for large-scale applications ⚠️ One important thing: If an object is still referenced (even accidentally), it won’t be cleaned → which can lead to memory issues. 📌 In short: Java automatically removes unused objects by checking whether they are still reachable — using different GC strategies optimized for performance and latency. #Java #Programming #JVM #GarbageCollection #SoftwareDevelopment #TechConcepts
To view or add a comment, sign in
-
-
Internal Working of HashMap in Java — How .put() Works When the .put(key, value) method is called for the first time, HashMap internally performs the following steps: Step 1 — Array of Buckets is Created An array of 16 buckets (index 0 to 15) is initialized by default. Each bucket acts as a slot to store data. Step 2 — Hash Calculation The .put() method internally calls putVal(), which receives the result of hash(key) as an argument. The hash() method calls hashCode() which calculates a hash value by using key and returns it back to hash(), which then passes it to putVal(). Step 3 — Index Generation Inside putVal(), a bitwise AND operation is performed between the hashcode and (n-1) where n = 16: index = hashCode & (n - 1) This generates the exact bucket index where the key-value pair will be stored. Step 4 — Node Creation A Node is created and linked to the calculated bucket index. Each Node contains: 🔹 hash — the hash value 🔹 key — the key 🔹 value — the value 🔹 next — pointer to the next node What happens when .put() is called again? The same hash calculation process runs. Now two scenarios are possible: Case 1 — Same Index, Same Key (Update) If the newly generated index matches an existing bucket and the existing node's key equals the new key → the value is simply updated with the new one. Case 2 — Same Index, Different Key (Collision) If the index is the same but the keys are different → a collision occurs. In this case, the new node is linked to the previous node using the next pointer, forming a Linked List inside that bucket. That's how HashMap handles collisions and maintains data internally — simple but powerful. #Java #HashMap #DataStructures #BackendDevelopment #Programming #TechLearning #JavaDeveloper
To view or add a comment, sign in
-
-
🚀 Java Deep-Dive Questions That Still Make Me Think 🤯 Lately I’ve been revisiting some core Java concepts, and honestly… the deeper you go, the more questions pop up. Here are a few that sparked my curiosity 🔹 When we create an object, the left-side variable just stores a reference… but why isn’t it treated like a simple string or primitive value? 🔹 Why is Java strictly pass-by-value, even for objects? Why not pass references directly? 🔹 What exactly is a “reference data type”? And why is "String" considered one? 🔹 Variable arguments ("...") — how do they actually work under the hood? 🔹 Why can’t constructors be: - "final"? - "static"? - "abstract"? 🔹 Why don’t constructors have a return type? 🔹 Can we define constructors inside interfaces? 🔹 Why must the constructor name match the class name? These are the kinds of questions that separate just coding from truly understanding Java. Curious to hear your thoughts 👇 Which one of these tripped you up the most? #Java #Programming #SoftwareEngineering #CodingInterview #JavaDeveloper #OOP #JVM #TechLearning #Developers #CodeNewbie
To view or add a comment, sign in
-
🧱 SOLID Principles in Java – Write Code That Doesn't Come Back to Haunt You You know that feeling when touching one feature breaks three unrelated things? That's what life looks like without SOLID principles. I just published a deep-dive post covering all five principles with real Java examples: ✅ Single Responsibility – One class, one job. Stop your Invoice class from moonlighting as a printer AND a database. ✅ Open/Closed – Extend behavior without cracking open existing code. No more endless if-else chains. ✅ Liskov Substitution – Your Penguin shouldn't throw UnsupportedOperationException when asked to fly. ✅ Interface Segregation – Stop forcing Robots to implement an eat() method. ✅ Dependency Inversion – Depend on abstractions, not implementations. Your service shouldn't care if it's MySQL or PostgreSQL. 🔗 Read the full post: https://lnkd.in/gfA5g8VG #Java #SOLID #CleanCode #SoftwareEngineering #OOP #DesignPrinciples #BackendDevelopment #SpringBoot #Programming #TechBlog #100DaysOfCode
To view or add a comment, sign in
-
🚀 Day 53 – Mastering ArrayDeque in Java Today I explored one of the most efficient data structures in Java Collections – ArrayDeque 🔥 📌 Key Learnings: 🔹 ArrayDeque is a resizable array-based Deque (Double Ended Queue) 🔹 Supports insertion & deletion from both ends (front & rear) 🔹 No indexing → cannot use get/set methods 🔹 No null values allowed (throws runtime exception) 🔹 Duplicates & heterogeneous data allowed 🔹 Faster than LinkedList due to no memory overhead ⚙️ Traversal Techniques: ✔ For-each loop ✔ Iterator ✔ Descending Iterator (reverse traversal) 💡 Why ArrayDeque? 👉 O(1) performance for add/remove operations 👉 Best choice for implementing: Stack (LIFO) Queue (FIFO) Deque 🧠 Big Takeaway: ArrayDeque = Fast + Memory Efficient + Flexible (Stack/Queue/Deque in one) Consistency is the key 🔑 — learning something new every day! #Java #DataStructures #ArrayDeque #JavaCollections #CodingJourney #100DaysOfCode #LearningDaily
To view or add a comment, sign in
-
-
. Understanding ForkJoinPool in Java (Simple Concept) When working with large datasets or CPU-intensive tasks in Java, processing everything in a single thread can be slow. This is where ForkJoinPool becomes very useful. ForkJoinPool is a special thread pool introduced in Java 7 that helps execute tasks in parallel using the Divide and Conquer approach. The idea is simple: • Fork – Break a big task into smaller subtasks • Execute – Run these subtasks in parallel threads • Join – Combine the results of all subtasks into the final result One of the most powerful features of ForkJoinPool is the Work-Stealing Algorithm. If a thread finishes its task early and becomes idle, it can steal tasks from other busy threads. This keeps the CPU efficiently utilized and improves performance. Common Use Cases • Parallel data processing • Large array computations • Sorting algorithms (like Merge Sort) • Parallel streams in Java • CPU-intensive calculations Important Classes • ForkJoinPool – Manages worker threads • RecursiveTask – Used when a task returns a result • RecursiveAction – Used when a task does not return a result In fact, when we use Java Parallel Streams, internally Java often uses ForkJoinPool to process tasks in parallel. Understanding ForkJoinPool is very helpful for writing high-performance multithreaded applications in Java. #Java #ForkJoinPool #Multithreading #JavaConcurrency #BackendDevelopment #JavaDeveloper #SoftwareEngineering
To view or add a comment, sign in
-
Day 56-What I Learned In a Day (JAVA) Today I learned an important concept in Java - how to access non-static members, both within the same class and across different classes, along with the concept of code reusability. Accessing Non-Static Members within the Same Class Non-static members belong to an object, so they can be accessed directly inside non-static methods. Key point: No object creation is needed when accessing inside the same class’s non-static method. Accessing Non-Static Members from Another Class To access non-static members from a different class, we must create an object of that class. Example: ClassName obj = new ClassName(); obj.methodName(); This allows us to call methods and use variables defined in another class. Code Reusability One of the biggest advantages I understood today is code reusability. Instead of writing the same logic again: • We create a method once • Reuse it in multiple classes using objects This reduces: • Code duplication • Errors • Development time #Java #OOP #CodeReusability #Programming #LearningJourney #DeveloperLife
To view or add a comment, sign in
-
-
💻 Exploring Java Data Types & Literals While revisiting Java fundamentals, I explored how literals work with different data types. Literals are fixed values assigned directly in code, and Java provides some interesting ways to use them. 📌 Here are some useful things I learned: 🔹 Binary Literal (Base 2) We can write numbers in binary using 0b Example: int num = 0b101; // Output: 5 🔹 Hexadecimal Literal (Base 16) We can use 0x to represent hexadecimal values Example: int num2 = 0x7E; // Output: 126 🔹 Using Underscore for Readability Underscores can be used to make large numbers more readable Example: int num3 = 10_00_000; // Output: 1000000 🔹 Scientific Notation (e-notation) Used to represent large values in floating-point numbers Example: double numd = 12e10; 🔹 Character Increment Trick Characters in Java are internally stored as numbers (ASCII/Unicode), so we can increment them: Example: char c = 'a'; c++; // Output: 'b' 📌 In simple terms: These features make Java code more readable and also reveal how data is handled internally. Continuing to strengthen my Java fundamentals step by step 🚀 #Java #Programming #LearningJourney #JavaBasics #BackendDevelopment
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development