I started learning Java this week and honestly? It's been a great ride so far. Coming from a JavaScript background, some concepts clicked faster than I expected — but then came arrays. 👀 Yes, the thing most people run from. Here's what I've learned about arrays in Java that actually makes them less scary: → An array is simply a fixed-size container that holds multiple values of the same type → Unlike JavaScript, Java arrays don't grow dynamically — you define the size upfront → Each item has an index starting from 0 int[] numbers = {1, 2, 3, 4, 5}; System.out.println(numbers[0]); // prints 1 The part that trips most people up? Trying to add more items than the array size allows. That's where ArrayIndexOutOfBoundsException comes in — Java's way of saying "you went too far." Once you understand that arrays are strict about size, everything else starts to make sense. Day 4 of Java and I'm genuinely enjoying the process. The fundamentals matter more than people think. #Java #100DaysOfCode #LearningInPublic #SoftwareDevelopment
Java Arrays Simplified: Understanding Size and Indexing
More Relevant Posts
-
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
-
-
🚀 Java 8 changed everything — and this is one of the biggest reasons why. While deepening my understanding of Java internals, I spent time breaking down Anonymous Inner Classes, Functional Interfaces, and Lambda Expressions — three concepts that completely change how you write Java. At first, it feels like just syntax. But when you look closer, it’s really about how Java represents and handles behavior. 🔹 Anonymous Inner Class Allows us to declare and instantiate a class at the same time—without giving it a name. Useful when the implementation is needed only once. Greeting greeting = new Greeting() { public void greet(String name) { System.out.println("Welcome " + name); } }; ⚠️ Cons: -> Code is bulky -> Can only access effectively final variables -> Harder for the JVM to optimize 🔹 Functional Interface An interface with exactly one abstract method. Can still have multiple default and static methods. @FunctionalInterface public interface Greeting { void greet(String name); } 🔹 Lambda Expression (Java 8+) A more compact way to represent behavior — like an anonymous method. name -> System.out.println("Welcome " + name); 💡 What stood out to me: ⚙️ Anonymous Class → multiple lines ⚙️ Lambda Expression → one line Same logic, less noise — that’s where modern Java stands out.” #Java #LambdaExpressions #FunctionalInterface #BackendDevelopment #CleanCode #Java8 #SoftwareEngineering
To view or add a comment, sign in
-
Most Java developers use int and Integer without thinking twice. But these two are not the same thing, and not knowing the difference can cause real bugs in your code. Primitive types like string, int, double, and boolean are simple and fast. They store values directly in memory and cannot be null. Wrapper classes like Integer, Double, and Boolean are full objects. They can be null, they work inside collections like lists and maps, and they come with useful built-in methods. The four key differences every Java developer should know are nullability, collection support, utility methods, and performance. Primitives win on speed and memory. Wrapper classes win on flexibility. Java also does something called autoboxing and unboxing. Autoboxing is when Java automatically converts a primitive into its wrapper class. Unboxing is the opposite, converting a wrapper class back into a primitive. This sounds helpful, and most of the time it is. But when a wrapper class is null and Java tries to unbox it, your program will crash with a NullPointerException. This is one of the most common and confusing bugs that Java beginners and even experienced developers run into. The golden rule is simple. Use primitives by default. Switch to wrapper classes only when you need null support, collections, or utility methods. I wrote a full breakdown covering all of this in detail, with examples. https://lnkd.in/gnX6ZEMw #Java #JavaDeveloper #Programming #SoftwareDevelopment #Backend #CodingTips #CleanCode #100DaysOfCode
To view or add a comment, sign in
-
-
Hello Connections, Post 18 — Java Fundamentals A-Z This one makes your code 10x cleaner. Most developers avoid it. 😱 Can you spot the difference? 👇 // ❌ Before Java 8 — verbose and painful! List<String> names = Arrays.asList( "Charlie", "Alice", "Bob" ); Collections.sort(names, new Comparator<String>() { @Override public int compare(String a, String b) { return a.compareTo(b); } }); 8 lines. Just to sort a list. 😬 // ✅ With Lambda — clean and powerful! Collections.sort(names, (a, b) -> a.compareTo(b)); // ✅ Done! // Even cleaner with method reference! names.sort(String::compareTo); // ✅ One liner! // Real example! transactions.stream() .filter(t -> t.getAmount() > 10000) // Lambda! .forEach(t -> System.out.println(t)); // Lambda! Lambda = anonymous function // Structure of a Lambda (parameters) -> expression // Examples () -> System.out.println("Hello") // No params (n) -> n * 2 // One param (a, b) -> a + b // Two params (a, b) -> { // Block body int sum = a + b; return sum; } Post 18 Summary: 🔴 Unlearned → Writing verbose anonymous classes for simple operations 🟢 Relearned → Lambda = concise anonymous function — write less do more! 🤯 Biggest surprise → Replaced 50 lines of transaction processing code with 5 lines using Lambdas! Have you started using Lambdas? Drop a λ below! #Java #JavaFundamentals #BackendDevelopment #LearningInPublic #SDE2 Follow along for more! 👇
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
-
-
Java Devs, let's talk about a core concept that makes our code cleaner and more flexible: "Method Overloading"! Ever wanted to perform similar operations with different inputs without creating a bunch of uniquely named methods? That's where Method Overloading shines! It's a fantastic example of compile-time polymorphism (aka static polymorphism or early binding) that allows a class to have multiple methods with the "same name", as long as their parameter lists are different. Key takeaways: * Same method name, different parameters = ✅ * Cannot overload by return type alone (parameters *must* differ) ⚠️ * The compiler is smart! It picks the most specific match. 🧠 Check out this quick example: ```java class Product { public int multiply(int a, int b) { // Multiplies two numbers return a * b; } public int multiply(int a, int b, int c) { // Multiplies three numbers return a * b * c; } } // Output: // Product of the two integer value: 2 // Product of the three integer value: 6 ``` See how elegant that is? One `multiply` method, multiple functionalities! What are your favorite use cases for Method Overloading in your Java projects? Share in the comments! 👇 #Java #JavaDevelopment #Programming #SoftwareDevelopment #BeginnerProgramming
To view or add a comment, sign in
-
-
“Java is too hard to write.” Every developer at some point. But are we talking about Java then or Java now? Old Java: You had to write a lot to do something small. Modern Java: Here I did it fast. You’re welcome. The truth is. Java has changed a lot. It has streams, records and more… it’s not the same language people like to complain about. And here’s something cool. I found a site that shows new Java code side, by side: https://lnkd.in/g7n9VhMD (https://lnkd.in/g7n9VhMD) It’s like watching Java go through a glow-up. So next time someone says "Java is too hard to write" Just ask them: Which Java are you talking about? Java didn’t stay hard to write. We just didn’t keep up with Java. #Java #JDK #Features #Software #Engineering
To view or add a comment, sign in
-
-
Stopping "The Red Lines": 5 Java Mistakes Every Beginner Makes ☕️🚫 Java is a powerhouse language, but it’s a strict one. When you’re first starting out, it feels like the compiler is constantly judging your life choices. If you want to write cleaner code and save hours of debugging, watch out for these five common traps: 1. The == Trap for Strings In Java, == checks if two objects occupy the same spot in memory. To check if two Strings actually contain the same words, you MUST use .equals(). ❌ if (input == "Yes") ✅ if (input.equals("Yes")) 2. The "Final Boss": NullPointerException Trying to call a method on a variable that hasn't been initialized is the fastest way to crash your app. Always initialize your objects or use a null-check before diving in. 3. Static vs. Instance Confusion The main method is static, meaning it exists without an instance of your class. Beginners often try to call "regular" methods directly from main and get hit with a "non-static method cannot be referenced" error. Either make the method static or create an object first! 4. Case-Sensitivity Struggles Java is unapologetically picky. MyVariable and myvariable are strangers to the compiler. Stick to camelCase for variables and PascalCase for classes to keep your sanity intact. 5. Off-by-One Array Errors Remember: Java starts counting at 0. If your array has a length of 10, the last index is 9. Using i <= array.length in a loop is a guaranteed ticket to ArrayIndexOutOfBoundsException. Building a foundation in Java isn't about avoiding mistakes—it's about learning to recognize them faster. Which of these gave you the most trouble when you started? Let’s hear your "horror stories" in the comments! 👇 #Java #CodingTips #SoftwareDevelopment #ProgrammingBeginner #CleanCode
To view or add a comment, sign in
-
-
Java’s "Diamond Problem" evolved. Here is how you solve it. 💎⚔️ Think interfaces solved all our multiple inheritance problems? Not quite. Since Java 8, we’ve had Default Methods. They are great for backward compatibility, but they introduced a major headache:Method Collision. The Nightmare Scenario: You have two interfaces, Camera and Phone. Both have a default void start() method. Now, you create a SmartPhone class that implements both. Java looks at your code and asks: "Which 'start' should I run? The lens opening or the screen lighting up?" 🤔 Java’s Golden Rule: No Guessing Allowed. 🚫 The compiler won’t even let you run the code. It forces YOU to be the judge. 👨⚖️ How to "Pick a Winner" (The Syntax): You must override the conflicting method in your class. You can write new logic, or explicitly call the parent you prefer using the super keyword: @Override public void start() { Camera.super.start(); // This picks the Camera's version! } Why this matters: This is Java’s philosophy in action: Explicit is always better than Implicit. By forcing you to choose, Java eliminates the "hidden bugs" that plague languages like C++. It’s not just a restriction; it’s a safeguard for your architecture. 🛡️ Have you ever run into a default method conflict in a large project? How did you handle it? Let's discuss below! 👇 #Java #SoftwareEngineering #CodingTips #BackendDevelopment #CleanCode #Java8 #ProgrammingLogic #TechCommunity
To view or add a comment, sign in
-
Day 03 — Also learned something in Java today that I never even heard of before. Tokens. Yeah. Tokens. Let me explain it simply because when I first saw the word I thought it was something complicated. It's actually pretty cool. What is a Token in Java? A Token is the smallest unit in a Java program. Like when you write a sentence — the smallest unit is a word, right? In Java, when the compiler reads your code — it breaks everything down into small pieces called Tokens. There are 5 types of Tokens in Java: 1. Keywords — Reserved words Java already knows Example: `int`, `class`, `if`, `return` 2. Identifiers— Names YOU give to variables, methods, classes Example: `myName`, `totalMarks` 3. Literals— Actual values written in code Example: `10`, `"Hello"`, `true` 4. Operators— Symbols that perform operations Example: `+`, `-`, `=`, `>` **5. Separators** — Punctuation that structures code Example: `{ }`, `( )`, `;` So when you write even one simple line like: `int age = 21;` The compiler sees — a keyword, an identifier, an operator, a literal, and a separator. That one line has 5 tokens. Honestly these small concepts are building my foundation and I am not rushing it anymore. Are you also learning Java? Let me know where you are #Day11 #JavaLearning #JavaBasics #Tokens #QAJourney #ManualTesting #LearningInPublic #BeginnersInTech #SoftwareTesting
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