🚀 Day 56: Final & Static — Establishing Rules in Java 🏗️ After exploring the flexibility of Polymorphism yesterday, today was about the "Constants" of Java. I dived into the Final and Static keywords—two tools that help us manage memory and protect our code’s logic. 🔒 1. The Final Keyword: "No Changes Allowed" The final keyword is all about restriction. I learned it can be applied in three ways: ▫️ Final Variables: Creates a constant. Once assigned, the value cannot be changed (e.g., final double PI = 3.14). ▫️ Final Methods: Prevents Method Overriding. If you don't want a subclass to change your logic, you make it final. ▫️ Final Classes: Prevents Inheritance. A final class cannot be extended (like the String class in Java!). 💾 2. The Static Keyword: "Shared by All" The static keyword shifts the focus from "Objects" to the "Class" itself. ▫️ Static Variables: These belong to the class, not the individual objects. Every object of that class shares the exact same variable, which is great for memory efficiency. ▫️ Static Methods: These can be called without creating an object of the class (like Math.sqrt()). ▫️ Static Blocks: Used for initializing static variables when the class is first loaded. Question for the Devs: Do you use final for all your local variables that don't change, or do you find that it makes the code too "noisy"? I'm curious to hear your take on Clean Code vs. Explicit Logic! 👇 #Java #CoreJava #StaticKeyword #FinalKeyword #100DaysOfCode #BackendDevelopment #CleanCode #SoftwareEngineering #LearningInPublic 10000 Coders Meghana M
Java Final and Static Keywords Explained
More Relevant Posts
-
🚀 Day 58: Decoding Interfaces — The Ultimate Contract in Java 🤝 After mastering Abstract Classes yesterday, today I moved into Interfaces. If an Abstract Class is a "partial blueprint," an Interface is the ultimate contract for what a class can do. 1. What is an Interface? In Java, an Interface is a reference type (similar to a class) that can contain only abstract methods (and constants). It is the primary way we achieve 100% Pure Abstraction and, more importantly, Multiple Inheritance—something regular classes can't do! 2. The Golden Rules of Interfaces 📜 I learned that Interfaces come with a very specific set of rules that keep our code disciplined: ▫️ Purely Abstract: Every method is automatically public and abstract (even if you don't type it!). ▫️ Constant Fields: Any variables declared are automatically public, static, and final. ▫️ No Objects: You cannot instantiate an Interface. It only exists to be "implemented" by a class. ▫️ The "Implements" Keyword: Classes don't "extend" an interface; they implement it, promising to provide logic for all its methods. ▫️ Multiple Implementation: A single class can implement multiple interfaces, allowing it to take on many different roles. 💡 My Key Takeaway: Interfaces allow us to achieve Loose Coupling. By programming to an interface rather than a specific class, we make our systems incredibly flexible and easy to update without breaking the entire codebase. To the Java Experts: With the introduction of default and static methods in newer Java versions, do you find yourselves using Abstract Classes less often, or do they still have a specific place in your design? I'd love to learn from your experience! 👇 #Java #OOPs #Interface #Abstraction #100DaysOfCode #BackendDevelopment #SoftwareArchitecture #CleanCode #LearningInPublic 10000 Coders Meghana M
To view or add a comment, sign in
-
🚀 Day 19/100: The Grammar of Java – Writing Clean & Readable Code 🏷️✨ Today’s focus was on something often underestimated but critically important in software development—writing code that humans can understand. In a professional environment, code is not just for the compiler; it’s for collaboration. Here’s what I worked on: 🔍 1. Identifiers – Naming with Purpose Identifiers are the names we assign to variables, methods, classes, interfaces, packages, and constants. Good naming is not just syntax—it’s communication. 📏 2. The 5 Golden Rules for Identifiers To ensure correctness and avoid compilation errors, I reinforced these rules: Use only letters, digits, underscores (_), and dollar signs ($) Do not start with digits Java is case-sensitive (Salary ≠ salary) Reserved keywords cannot be used as identifiers No spaces allowed in names 🏗️ 3. Professional Naming Conventions This is where code quality truly improves. I practiced industry-standard naming styles: PascalCase → Classes & Interfaces (EmployeeDetails, PaymentGateway) camelCase → Variables & Methods (calculateSalary(), userAge) lowercase → Packages (com.project.backend) UPPER_CASE → Constants (MIN_BALANCE, GST_RATE) 💡 Key Takeaway: Clean and consistent naming transforms code from functional to professional and maintainable. Well-written identifiers reduce confusion, improve collaboration, and make debugging easier. 📈 Moving forward, my focus is not just on writing code that works—but code that is clear, scalable, and team-friendly. #Day19 #100DaysOfCode #Java #CleanCode #JavaDeveloper #NamingConventions #SoftwareEngineering #CodingJourney #LearningInPublic #JavaFullStack#10000coders
To view or add a comment, sign in
-
⏳ Day 16 – 1 Minute Java Clarity – final Keyword in Java What if something should NEVER change? Use final! 🔒 📌 What is final? The final keyword restricts modification. 👉 It can be applied to variables, methods and classes. 📌 1️⃣ Final Variable: final int SPEED_LIMIT = 120; SPEED_LIMIT = 150; // ❌ Compilation Error! 👉 Once assigned, value can NEVER be changed. ✔ By convention, final variables are written in UPPER_CASE. 📌 2️⃣ Final Method: class Vehicle { final void start() { System.out.println("Engine started!"); } } 👉 Child class CANNOT override this method. ✔ Used when core behavior must stay consistent. 📌 3️⃣ Final Class: final class PaymentGateway { // Cannot be extended } 👉 No class can inherit from a final class. ✔ Example from Java itself → String class is final! 💡 Real-time Example: Think of a traffic system 🚦 Speed limit on a highway = 120 km/h No one can change that rule → that's your final variable! PI value in Math = 3.14159… It never changes → Math.PI is declared final in Java ✅ ⚠️ Interview Trap: final vs finally vs finalize — all different! 👉 final → restricts change 👉 finally → block in exception handling 👉 finalize → called by GC before object is destroyed 💡 Quick Summary ✔ final variable → value can't change ✔ final method → can't be overridden ✔ final class → can't be inherited ✔ String is a final class in Java! 🔹 Next Topic → Access Modifiers in Java Did you know String is a final class? Drop 💡 if this was new! hashtag #Java #JavaProgramming #FinalKeyword #CoreJava #JavaDeveloper #BackendDeveloper #Coding #Programming #SoftwareEngineering #LearningInPublic #100DaysOfCode #ProgrammingTips #1MinuteJavaClarity
To view or add a comment, sign in
-
-
🚦🧊 JAVA IMMUTABILITY: THE WORDS MOST DEVS MIX UP: Unmodifiable, Immutable, Shallowly/ Deeply immutable, final 🔸 TL;DR In Java, unmodifiable does not mean immutable. And final does not mean the object can’t change either. If you confuse terms like mutable, unmodifiable view, immutable, shallowly immutable, and deeply immutable, you can easily design APIs that look safe but still leak state and bugs. 👉 I put together a carousel cheat sheet to make this crystal clear. Swipe through it. 🔸 TAKEAWAYS ▪️ Mutable = state can change after creation ▪️ Unmodifiable = this reference blocks mutation, but backing data may still change ▪️ Immutable = state cannot change after construction ▪️ Shallowly immutable = outer object is fixed, inner objects may still mutate ▪️ Deeply immutable = the full reachable state is frozen ▪️ Collections.unmodifiableList(...) is not the same as List.copyOf(...) ▪️ final freezes the reference, not the object ▪️ Records are concise, but they are not automatically deeply immutable 🔸 WHY IT MATTERS A lot of Java codebases say “immutable” when they really mean “harder to mutate accidentally.” That shortcut creates confusion in code reviews, APIs, concurrency discussions, and interviews. Precise vocabulary = better design. And better design = fewer side effects, safer models, cleaner code. ☕ 🔸 SWIPE THE CAROUSEL I turned the whole taxonomy into a simple PPT carousel with: ▪️ one term per slide ▪️ code snippets ▪️ short explanations ▪️ the distinctions that actually matter in real projects 👉 Swipe the carousel and tell me: Which term do you think developers misuse the most: unmodifiable or immutable? #Java #JavaProgramming #SoftwareEngineering #CleanCode #BackendDevelopment #Programming #Developers #Architecture #CodeQuality #JavaDeveloper #TechEducation #CodingTips
To view or add a comment, sign in
-
💡 Java Tip: One Method to Remember for Type Conversion We used to rely on: Integer.parseInt(), Long.parseLong(), Double.parseDouble() → for converting String to primitives String.valueOf() → for converting values to String It works—but it can get confusing when switching between primitives, wrapper classes, and even char ↔ String conversions. 🔑 Simple takeaway: You can simplify most conversions by remembering just one method: 👉 WrapperClass.valueOf() ✅ Converts String → Wrapper (Integer, Long, Double, etc.) ✅ Works well with primitives (via autoboxing/unboxing) ✅ Keeps your code more consistent and readable Example: Integer i = Integer.valueOf("10"); Double d = Double.valueOf("10.5"); String s = String.valueOf(100); 🧠 Personal learning: Instead of memorizing multiple parsing methods, focusing on valueOf() makes type conversion easier to reason about and reduces cognitive load while coding. #Java #CleanCode #ProgrammingTips #BackendDevelopment #SoftwareEngineering #Learning
To view or add a comment, sign in
-
Hi Friends 👋 Sharing a small but tricky Java concept that often confuses developers in real projects 😅 finally block vs return — who actually wins? public class Test { public static void main(String[] args) { System.out.println(getValue()); } static int getValue() { try { return 10; } finally { return 20; } } } 👉 What would you expect? Most people say: 10 👉 But the actual output is: 20 😳 --- Why does this happen? - The try block tries to return 10 - But before the method exits, the finally block always runs - If finally also has a return, it overrides the previous return 👉 So the final result becomes 20 --- Common mistakes: - Assuming the try return is final - Writing return inside finally for cleanup or logging --- Real-world impact: - Expected vs actual result mismatch - Hard-to-debug issues - Confusing behavior in production --- Best Practice: - Never use return inside a finally block ❌ - Use finally only for cleanup (like closing resources) --- Final Thought: In Java, small concepts can create big bugs. Understanding execution flow is what makes a real developer 🚀 Did you know this before? 🤔 #Java #BackendDevelopment #CodingMistakes #Learning #Developers
To view or add a comment, sign in
-
Ever wondered why changing one variable sometimes changes everything in Java? Today I finally understood a concept that used to confuse me a lot — Pass by Value vs Pass by Reference (memory perspective). At first, it felt tricky… but once I visualized how memory works, everything started making sense. What I learned: [1] Pass by Value (Definition): A copy of the actual value is passed to another variable. 👉 Both variables work independently. Example: int x = 10; int y = x; // copy y = 20; System.out.println(x); // 10 System.out.println(y); // 20 ➡️ Changing y does NOT affect x [2] Pass by Reference (Concept in Java objects): Actually, Java is always pass by value… BUT for objects, the value being passed is the reference (address). 👉 So multiple variables can point to the same object in memory. Example: Car a = new Car(); a.name = "Maruti"; Car b = a; // reference copy b.name = "Kia"; System.out.println(a.name); // Kia ➡️ Changing b also changes a because both point to the same object. 💡 Real-life analogy: It’s like one person having multiple names — Parents call you one name, friends call you another… but it’s still YOU. Same in Java: Different references ➝ Same object ➝ Same changes. 🔑 Key Takeaways: Java is always pass by value For objects, the value = reference (address) Multiple references can point to the same object Changing via one reference affects all This concept really changed how I look at Java objects and memory. Still learning, still improving… one concept at a time #Java #Programming #LearningJourney #Coding #JavaDeveloper #BeginnerDeveloper #SoftwareDevelopment #100DaysOfCode
To view or add a comment, sign in
-
-
I used == for Strings when I first started learning Java… and got the wrong result 😅 That small mistake led me to understand one of the most important Java concepts: Heap Memory + String Constant Pool (SCP) Example 1 👇 String str1 = "Zayyni"; String str2 = "zayyni"; System.out.println(str1 == str2); // false System.out.println(str1.equals(str2)); // false System.out.println(str1.equalsIgnoreCase(str2)); // true Here: == → compares memory reference (same object or not) .equals() → compares actual content .equalsIgnoreCase() → compares content while ignoring case sensitivity Now the interesting part 👇 String str1 = new String("Zayyni"); String str2 = new String("Zayyni"; System.out.println(str1 == str2); // false System.out.println(str1.equals(str2)); // true Why? Because new String() creates a new object in Heap Memory every single time. Even if the value is the same, Java creates separate objects. But when we write: String str1 = "Zayyni"; String str2 = "Zayyni"; Java uses the String Constant Pool (SCP) where duplicate string literals are not created again. This saves memory and improves performance. That’s also one of the major reasons why String is immutable in Java — it makes pooling safe, efficient, and reliable. Sometimes the smallest Java concepts teach the biggest lessons. This topic is simple… but it appears in interviews more than people expect 👀 What Java concept confused you the most when you started? 👇 #Java #JavaDeveloper #SpringBoot #BackendDevelopment #Programming #SoftwareEngineering #Coding #Developers #JavaProgramming #JVM #StringPool #HeapMemory #InterviewPreparation #DeveloperLife #TechLearning #CleanCode #CodingJourney #LinkedInLearning #SoftwareDeveloper
To view or add a comment, sign in
-
-
Generics in Java always felt simple… until wildcards came in. Recently spent some time understanding how ?, ? extends, and ? super actually work. It looks small, but it completely changes how you design flexible and type-safe code. So I made a short PPT to break it down in a way that’s easier to understand. No heavy theory, just trying to make the concept clear. This is one of those topics that feels confusing at first, but once it clicks, it actually makes a lot of sense. Still exploring Java deeper, one concept at a time… let’s see where it goes. #Java #Generics
To view or add a comment, sign in
-
I just wanted to share something that really changed my life recently while I was coding in Java. As someone who has been working with this language for a long time, I always hated how we had to handle long Strings, like SQL queries or JSONs. It was a mess of \n and + everywhere, right? But then I started using Java Text Blocks (which came out in Java 15), and wow... it’s so much better! Here is why I think they are awesome: No more + signs: You just use three double quotes """ and write your text normally. It looks exactly like the final result. Easy to read: Since you don't have all those concatenation symbols, your code stays clean. My eyes are very happy now! Smart spaces: Java is smart enough to manage the indentation, so your code stays aligned but the String doesn't get a bunch of unnecessary spaces at the beginning. Check out this quick example of how I'm writing my SQL now: If you are still using the old way, please do yourself a favor and try Text Blocks. It makes the developer's life much easier and the code way more clean. #Java #Backend #CodingTips #CleanCode #SoftwareEngineering
To view or add a comment, sign in
-
Explore related topics
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