🚨 Java Mystery That Breaks Your Brain 🧠💥 What will be the output of this code? public class Mystery { public static void main(String[] args) { Integer a = 100; Integer b = 100; Integer c = 200; Integer d = 200; System.out.println(a == b); System.out.println(c == d); } } Think carefully… it’s not as simple as it looks 👀 👇 👇 👇 Output: true false Wait… what? Same values but different results😵💫? Here’s the catch 👇 Java caches Integer values only in the range -128 to 127. So when you write: Integer a = 100; Integer b = 100; Both variables actually point to the same object in memory → that’s why it returns true. But when you write: Integer c = 200; Integer d = 200; These values are outside the cache range, so Java creates two different objects → that’s why it returns false. The real trap here is: 👉 == compares references (memory location) 👉 .equals() compares actual values This small difference can easily confuse you in interviews or even in real projects. Pro tip: Avoid using == with wrapper classes unless you clearly understand what’s happening behind the scenes. Did you get it right? Be honest 👇 And share this with someone preparing for Java interviews 😉 #Java #CodingChallenge #InterviewPrep #Developers #Programming #Tech
Java Integer Caching Gotcha: == vs equals()
More Relevant Posts
-
☕ Java Core Concepts – Interview Question 📌 How is String creation using new() different from a literal? In Java, Strings can be created in two ways, and they behave differently in memory: 🔹 String Literal ("abc") • Stored in the String Pool (inside Heap) • JVM checks if the value already exists • If yes → returns reference of existing object • If no → creates a new object in the pool ✅ Memory efficient (reuses objects) 🔹 Using new Keyword (new String("abc")) • Always creates a new object in Heap memory • Does NOT reuse objects from String Pool ❌ Less memory efficient (creates duplicate objects) 🔹 Example: String s1 = "hello"; String s2 = "hello"; // reuses same object String s3 = new String("hello"); // new object in heap 🔹 Key Difference: ✔ Literal → Reuses existing objects (String Pool) ✔ new → Always creates a new object 💡 In Short: String literals save memory using the String Pool, while new always creates a fresh object, even if the value already exists. 👉For Java Course Details Visit : https://lnkd.in/gwBnvJPR . #Java #CoreJava #String #JavaInterview #Programming #Coding #TechSkills#Ashokit
To view or add a comment, sign in
-
-
🚀 Java Basic That Many Ignore: What is String[] args in main()? 🤔 We write this every day: public static void main(String[] args) { System.out.println("Hello"); } 👉 But what exactly is args? 💡 args = Command Line Arguments It is an array of Strings passed when running your program 👉 Example: public class Test { public static void main(String[] args) { System.out.println(args[0]); } } Run this: java Test Hello 👉 Output: Hello 🤯 Important Points: args is just a variable name (you can change it) It is always an array of String It can be empty (no arguments passed) 🔥 Fun Fact: public static void main(String[] xyz) 👉 This also works! 😄 ⚠️ Be careful: System.out.println(args[0]); ❌ If no argument → ArrayIndexOutOfBoundsException 💡 Safe way: if (args.length > 0) { System.out.println(args[0]); } Small concept… but important for interviews & real-world usage 💪 #Java #Programming #Coding #JavaDeveloper #InterviewPrep #Developers
To view or add a comment, sign in
-
Java Coding Question What will be the output of the following code? public class Test { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; for (int i = 0; i < arr.length; i++) { arr[i] = arr[i] + 1; } for (int num : arr) { System.out.print(num + " "); } } } Options: A) 1 2 3 4 5 B) 2 3 4 5 6 C) 1 3 5 7 9 D) Compile-time error 👉 Comment your answer before running the code. #Java #JavaProgramming #CodingChallenge #RalithonTechnologies #JavaInterview #ProblemSolving #Developers #LinkedInPost
To view or add a comment, sign in
-
Java Coding Question What will be the output of the following code? public class Test { public static void main(String[] args) { try { int a = 10 / 0; System.out.print("A "); } catch (ArithmeticException e) { System.out.print("B "); } finally { System.out.print("C "); } System.out.print("D "); } } Options: A) A B C D B) B C D C) C D D) Compile-time error 👉 Comment your answer before running the code. #Java #JavaProgramming #ExceptionHandling #JavaInterview #RalithonTechnologies #CodingChallenge #Developers #TechCommunity #LinkedInPost
To view or add a comment, sign in
-
Day 4 One of the questions from my recent interview was to reverse each word in a string. It’s a small problem, but it really makes you think about string manipulation and iteration. Simple problem, but good test of core concepts ================================================= // Online Java Compiler // Use this editor to write, compile and run your Java code online class Main { public static void main(String[] args) { String s="Hello world from java language"; String [] words=s.split(" "); String revString=""; for(String w:words) { String reverseWord=""; for(int i=w.length()-1; i>=0;i--) { reverseWord=reverseWord+w.charAt(i); } revString=revString+reverseWord+" "; } System.out.println(revString); } } Output :olleH dlrow morf avaj egaugnal #Java #InterviewQuestion #CodingPractice #Learning #Developers
To view or add a comment, sign in
-
-
🚀 Java Trap: Why "finally" Doesn’t Change the Returned Value 👇 👉 Primitive vs Object Behavior in "finally" 🤔 Looks tricky… but very important to understand. --- 👉 Example 1 (Primitive): public static int test() { int x = 10; try { return x; } finally { x = 20; } } 👉 Output: 10 😲 Why not 20? 💡 Java stores return value before executing "finally" - "x = 10" stored - "finally" runs → changes "x" to 20 - But already stored value (10) is returned --- 👉 Example 2 (Object): public static StringBuilder test() { StringBuilder sb = new StringBuilder("Hello"); try { return sb; } finally { sb.append(" World"); } } 👉 Output: Hello World 😲 Why changed here? 💡 Object reference is returned - Same object is modified in "finally" - So changes are visible --- 🔥 Rule to remember: - Primitive → value copied → no change - Object → reference returned → changes visible --- 💭 Subtle concept… very common interview question. #Java #Programming #Coding #Developers #JavaTips #InterviewPrep 🚀
To view or add a comment, sign in
-
🔥 Day 8: equals() vs == in Java (Very Important Interview Topic) This is one of the most commonly asked Java interview questions — and also one of the most misunderstood! 👇 🔹 == (Double Equals) Compares memory/reference location Checks if two objects point to the same memory String a = new String("Java"); String b = new String("Java"); System.out.println(a == b); // false ❌ 🔹 equals() Method Compares actual content (values) Defined inside Object class (can be overridden) String a = new String("Java"); String b = new String("Java"); System.out.println(a.equals(b)); // true ✅ 🔹 String Special Case (String Pool) String x = "Hello"; String y = "Hello"; System.out.println(x == y); // true ✅ 👉 Because both refer to same object in String Pool 💡 Pro Tip: Always use equals() for comparing object values — especially Strings! 📌 Final Thought: "== checks if objects are the same, equals() checks if values are the same." #Java #Programming #Coding #JavaDeveloper #InterviewPrep #Tech #Learning #Day8 #JavaBasics
To view or add a comment, sign in
-
-
🚨 Java Myth Buster: “Finally block always executes” — Really? 🤔 Most developers confidently say: 👉 “Yes, finally always runs!” ❌ Let’s break that myth with a real example 👇 --- 💻 Code Example: public class Test { public static void main(String[] args) { try { System.out.println("Inside try"); System.exit(1); } finally { System.out.println("Inside finally"); } } } --- 📌 Output: Inside try 😳 Wait… where is the "finally" block? --- 💡 Explanation (Simple & Clear): When "System.exit(1)" is executed: - 🚫 JVM shuts down immediately - 🚫 No further code executes - 🚫 "finally" block is completely skipped --- 🔢 Understanding Exit Codes: - "System.exit(0)" → Normal termination ✅ - "System.exit(1)" → Abnormal termination ❌ 👉 But important point: Both will skip the "finally" block! --- ⚠️ So when does finally NOT execute? ✔️ When JVM is forcefully terminated ✔️ Using "System.exit()" ✔️ JVM crash / system failure ✔️ Infinite loop (control never reaches finally) --- 🧠 Interview Takeaway: 👉 “Finally block executes in almost all cases, except when JVM terminates abruptly like with System.exit().” --- 🔥 This is one of the most asked tricky Java interview questions! 💬 Did you know this before? #Java #JavaDeveloper #CodingInterview #Programming #TechTips #Developers #InterviewQuestions #JavaBasics
To view or add a comment, sign in
-
Interview Question: What is the Diamond Problem in Java? The Diamond Problem arises in languages that support multiple inheritance, where a class inherits from two classes that both derive from a common superclass. This creates ambiguity when both parent classes define the same method. The question becomes: which method should be used? Java avoids this issue by not supporting multiple inheritance with classes. However, with interfaces and default methods, a similar situation can occur. Example: interface A { default void show() { System.out.println("A"); } } interface B { default void show() { System.out.println("B"); } } class Test implements A, B { public static void main(String[] args){ Test t = new Test(); t.show(); // Compilation error! } } Since both interfaces provide the same method, Java forces the class to override it explicitly. Solution with Specific Interface Call: class Test implements A, B { public void show() { A.super.show(); // calling method from interface A B.super.show(); // calling method from interface B } } 👉 This way, we can explicitly choose or combine behavior from both interfaces. #Java #OOP #InterviewQuestions #BackendDevelopment #Programming
To view or add a comment, sign in
-
-
🚀 𝐅𝐚𝐢𝐥-𝐅𝐚𝐬𝐭 𝐯𝐬 𝐅𝐚𝐢𝐥-𝐒𝐚𝐟𝐞 𝐈𝐭𝐞𝐫𝐚𝐭𝐨𝐫𝐬 𝐢𝐧 𝐉𝐚𝐯𝐚 If you're preparing for Java interviews, this is an important concept to understand. When iterating over collections in Java, two types of iterator behaviors exist. 🔴 Fail-Fast Iterator If the collection is modified while iterating, it immediately throws a Concurrent Modification Exception. Example collections: • ArrayList • HashMap • HashSet Example: List<String> list = new ArrayList<>(); list.add("Java"); list.add("Spring"); for (String s : list) { list.add("Docker"); // throws ConcurrentModificationException } These iterators detect structural modifications during iteration and fail immediately. 🟢 Fail-Safe Iterator Fail-Safe iterators work on a copy of the collection, so modifications during iteration do not throw exceptions. Example collections: • ConcurrentHashMap • CopyOnWriteArrayList Example: CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>(); list.add("Java"); for (String s : list) { list.add("Spring"); // no exception } 📌 Key Difference Fail-Fast → Throws exception if collection is modified during iteration Fail-Safe → Works on a copy, so no exception occurs Understanding this concept is important when working with multithreading and concurrent collections. Follow for more Java internals explained simply. #Java #JavaDeveloper #Programming #CodingInterview #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
Its just roles of java that each datatype hold different size of bits , the more bits the more you store values inside that , for the example you give , use wrapper class Integer which is autoboxing of primitive int , and == in java check values inside two data members . To find values is equal or not you can use .equals() , == mainly use for primitive type , .equals need reference type to work because it is predfine method in java