⏳ 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
Java Final Keyword Explained
More Relevant Posts
-
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 remember staring at Java code wondering... Why is this variable private? Why can't I extend this class? Why does this method work without an object? Modifiers confused me for a long time. So I built the guide I wish I had back then. A complete, colorful visual guide to Java Modifiers — covering everything in one document: ACCESS MODIFIERS 🔴 private — your own class only 🟢 default — same package family 🟠 protected — package + inherited subclasses 🔵 public — accessible from everywhere NON-ACCESS MODIFIERS 🟣 static — belongs to the class, not the object 🟡 final — cannot be changed, overridden, or extended 🔵 abstract — must be completed by subclass 🔴 synchronized — one thread at a time 🌿 volatile & transient — memory + serialization control Each modifier comes with: → Clear rules (no fluff) → Real-world analogies that actually make sense → VSCode-style dark code examples → Color-coded visibility tables Whether you're a beginner trying to understand encapsulation or prepping for a Java interview — this one is for you. PDF attached — free to download and share! Save this post for your next Java revision session. #Java #JavaProgramming #OOP #AccessModifiers #LearnJava #Programming #Developer #CodeNewbie #SoftwareEngineering #TechLearning
To view or add a comment, sign in
-
📊 Java ArrayList — Everything You Need to Know in One Visual Guide ArrayList is one of the most commonly used data structures in Java, but do you really understand what's happening under the hood? 🤔 I created this visual breakdown to help developers master ArrayList fundamentals 👇 ⏱️ Time Complexity at a Glance: Access: O(1) — Lightning fast Add: O(1) / O(n) Remove: O(n) Search: O(n) 🧠 Internal Magic: ArrayList uses continuous memory locations (backed by an array), giving it: ✅ O(1) direct access ✅ Efficient dynamic resizing ✅ Fast iteration ⚠️ The Tradeoff: Resizing can be expensive for large lists — it creates a new array and copies everything over. 💡 Use ArrayList When: ✅ You need frequent read/write operations ✅ You want indexed access ✅ Order matters ❌ Avoid ArrayList When: ❌ Heavy deletions (use LinkedList) ❌ Memory-critical apps ❌ Large fixed-size collections needed 🎯 Pro Tip: Understanding these internals isn't just for interviews — it's essential for writing performant, production-grade code! What's your go-to Java collection? Drop it in the comments! 👇 Save this for later & follow for more Java deep dives! 🚀 #Java #Programming #DataStructures #ArrayList #JavaDeveloper #SoftwareEngineering #CodingTips #100DaysOfCode #TechEducation #JavaInterview
To view or add a comment, sign in
-
-
Think var in Java is just about saving keystrokes? Think again. When Java introduced var, it wasn’t just syntactic sugar — it was a shift toward cleaner, more readable code. So what is var? var allows the compiler to automatically infer the type of a local variable based on the assigned value. Instead of writing: String message = "Hello, Java!"; You can write: var message = "Hello, Java!"; The type is still strongly typed — it’s just inferred by the compiler. Why developers love var: Cleaner Code – Reduces redundancy and boilerplate Better Readability – Focus on what the variable represents, not its type Modern Java Practice – Aligns with newer coding standards But here’s the catch: Cannot be used without initialization Only for local variables (not fields, method params, etc.) Overuse can reduce readability if the type isn’t obvious Not “dynamic typing” — Java is still statically typed Pro Insight: Use var when the type is obvious from the right-hand side — avoid it when it makes the code ambiguous. Final Thought: Great developers don’t just write code — they write code that communicates clearly. var is a tool — use it wisely, and your code becomes not just shorter, but smarter. Special thanks to Syed Zabi Ulla and PW Institute of Innovation for continuous guidance and learning support. #Java #Programming
To view or add a comment, sign in
-
-
Most Java mistakes I see in code reviews come from the same 20 misunderstandings. After reviewing thousands of pull requests, these patterns keep showing up, especially from developers in their first 2 years. Here is what trips people up the most: → Using == instead of .equals() for String comparison → Mutating Date objects when LocalDate exists → Throwing checked exceptions for programming errors → Using raw types instead of generics → Concatenating Strings in loops instead of StringBuilder → Writing nested null checks instead of using Optional → Defaulting to arrays when ArrayList gives you flexibility → Wrapping everything in synchronized when ConcurrentHashMap exists → Catching Exception instead of the specific type you expect → Making utility methods static when they should be instance methods → Using new String("hello") instead of string literals → Using Integer when int would suffice → Repeating type args instead of using the diamond operator → Manual close() in finally instead of try-with-resources → Using static final int constants instead of enums → Writing verbose for-if-add loops instead of streams → Using Arrays.asList when List.of gives true immutability → Spelling out full types when var keeps code clean → Writing boilerplate classes when records do the job → Concatenating strings with \n instead of using text blocks None of these are hard to fix once you see the pattern. The real problem is that nobody points them out early enough. Save this for your next code review. #Java #SoftwareDevelopment #Programming #CleanCode #CodingTips
To view or add a comment, sign in
-
Day 11/100 – Java Practice Challenge 🚀 Continuing my #100DaysOfCode journey with another important Java concept. 🔹 Topic Covered: Compile-time vs Runtime Polymorphism 💻 Practice Code: 🔸 Compile-time Polymorphism (Method Overloading) class Calculator { int add(int a, int b) { return a + b; } int add(int a, int b, int c) { return a + b + c; } } 🔸 Runtime Polymorphism (Method Overriding) class Animal { void sound() { System.out.println("Animal sound"); } } class Cat extends Animal { @Override void sound() { System.out.println("Cat meows"); } } public class Main { public static void main(String[] args) { // Compile-time Calculator c = new Calculator(); System.out.println(c.add(10, 20)); System.out.println(c.add(10, 20, 30)); // Runtime Animal a = new Cat(); a.sound(); } } 📌 Key Learnings: ✔️ Compile-time → method decided at compile time ✔️ Runtime → method decided at runtime ✔️ Overloading vs Overriding difference 🎯 Focus: Understanding how Java resolves method calls 🔥 Interview Insight: Difference between compile-time and runtime polymorphism is one of the most frequently asked Java interview questions. #Java #100DaysOfCode #MethodOverloading #MethodOverriding #Polymorphism #JavaDeveloper #Programming #LearningInPublic
To view or add a comment, sign in
-
Java 17 Feature: Record Classes What is a Record Class? A record class is mainly used to create DTOs (Data Transfer Objects) in a simple and clean way. Why DTOs? DTOs are used to transfer data: • Between services • From backend to frontend Key Features of Record Classes: Immutable by default (data cannot be changed after creation) Less code (no need to write getters, constructors, etc.) When you create a record, Java automatically provides: Private final fields All-arguments constructor Getter methods (accessor methods) toString(), equals(), hashCode() Example: public record Customer(int customerId, String customerName, long phone) {} Usage: Customer customer = new Customer(1011, "John", 9890080012L); System.out.println(customer.customerId()); Important Points: Record class is implicitly final Cannot extend other classes Internally extends java.lang.Record Can implement interfaces (normal or sealed) Can have static methods and instance methods Cannot have extra instance variables With Sealed Interface: public sealed interface UserActivity permits CreateUser, DeleteUser { boolean confirm(); } public record CreateUser() implements UserActivity { public boolean confirm() { return true; } } Before Java 17: We used Lombok to reduce boilerplate code. After Java 17: Record classes make code: Cleaner Shorter Easier to maintain #Java #Java17 #BackendDevelopment #FullStackDeveloper #Programming #SoftwareEngineering
To view or add a comment, sign in
-
🚀 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
To view or add a comment, sign in
-
Q. Can an Interface Extend a Class in Java? This is a common confusion among developers and even I revisited this concept deeply today. - The answer is NO, an interface cannot extend a class. - It can only extend another interface. But there is something interesting: - Even though an interface doesn’t extend Object, all public methods of the Object class are implicitly available inside every interface. Methods like: • toString() • hashCode() • equals() These are treated as abstractly redeclared in every interface. ⚡ Why does Java do this? - To support upcasting and polymorphism, ensuring that any object referenced via an interface can still access these fundamental methods. ❗ Important Rule: While you can declare these methods in an interface, you cannot provide default implementations for them. interface Alpha { default String toString() { // ❌ Compile time error return "Hello"; } } Reason? Because these methods already have implementations in the Object class. Since every class implicitly extends Object, allowing default implementations of these methods in interfaces would create ambiguity during method resolution. Therefore, Java does not allow interfaces to provide default implementations for Object methods. 📌 Interfaces don’t extend Object, but its public methods are implicitly available. However, default implementations for them are not allowed. #Java #OOP #InterviewPreparation #Programming #Developers #Learning #SoftwareEngineering
To view or add a comment, sign in
-
• Why Does Java Use 2 Bytes for "char"? At first glance, this can feel confusing… =>Why does Java use 2 bytes (16 bits) for a single character, when older languages used just 1 byte? Let’s break it down : -> The Core Reason: Unicode Support Java uses the Unicode standard to represent characters. 1) Unicode is designed to support a wide range of global character sets 2) It includes scripts like Latin, Devanagari, Chinese, Arabic, and more =>To accommodate this, Java chose 16 bits (2 bytes) for "char" => What Does 2 Bytes Mean? - 1 byte = 8 bits - 2 bytes = 16 bits =>This allows representation of up to 65,536 distinct values =>Why Not 1 Byte Like C/C++? Languages like C/C++ were originally based on ASCII: • 1 byte (8 bits) → limited character range => Java, on the other hand, was designed with broader character representation in mind. • Important Insight Java uses UTF-16 encoding for "char" 1) Most commonly used characters fit within 2 bytes 2) Some characters are represented using surrogate pairs --> Conclusion Java’s choice of 2 bytes for "char" is rooted in its design around Unicode-based character representation rather than ASCII limitations. #Java #Programming #Unicode #SoftwareEngineering #BackendDevelopment #Java #CoreJava #JavaDeveloper #JVM #ProgrammingConcepts #BackendDeveloper #DevelopersOfLinkedIn #Tech #Coding
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