Here are some of the most common Java coding mistakes developers make, along with examples and explanations:
1. Null Pointer Exceptions
Mistake: Not checking for null before accessing an object’s methods or properties.
public class NullExample {
public static void main(String[] args) {
String str = null;
System.out.println(str.length()); // Throws NullPointerException
}
}
Fix: Always check for null or use Optional in Java 8+.
if (str != null) {
System.out.println(str.length());
}
2. Forgetting to Override equals() and hashCode()
Mistake: Using objects as keys in HashMap without proper equals() and hashCode().
class Person {
String name;
Person(String name) { this.name = name; }
}
public static void main(String[] args) {
Map<Person, String> map = new HashMap<>();
map.put(new Person("John"), "John");
System.out.println(map.get(new Person("John"))); // Returns null
}
Fix: Override both methods:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
3. Memory Leaks
Mistake: Not closing resources or holding object references unnecessarily.
public class MemoryLeak {
private static List<Double> list = new ArrayList<>();
public void populateList() {
for (int i = 0; i < 10000000; i++) {
list.add(Math.random());
}
}
}
Fix: Use try-with-resources for closable objects and avoid static collections.
try (FileInputStream fis = new FileInputStream("file.txt")) {
// use the stream
}
4. Concurrency Issues
Mistake: Not synchronizing access to shared resources.
class Counter {
private int count = 0;
public void increment() { count++; }
public int getCount() { return count; }
}
// When used by multiple threads, count may not be accurate
Fix: Use synchronization or atomic variables.
class Counter {
private AtomicInteger count = new AtomicInteger(0);
public void increment() { count.incrementAndGet(); }
public int getCount() { return count.get(); }
}
5. Using == Instead of equals()
Mistake: Comparing objects with == instead of equals().
String str1 = new String("Hello");
String str2 = new String("Hello");
if (str1 == str2) { // false
System.out.println("Equal");
}
Fix: Use equals() for object comparison.
if (str1.equals(str2)) { // true
System.out.println("Equal");
}
6. Ignoring Exceptions
Mistake: Empty catch blocks or too broad exception handling.
try {
// some code
} catch (Exception e) {
// empty or just e.printStackTrace();
}
Fix: Handle exceptions properly.
try {
// some code
} catch (SpecificException e) {
log.error("Error occurred", e);
// recovery or rethrow
}
7. String Concatenation in Loops
Mistake: Using + operator for string concatenation in loops.
String result = "";
for (int i = 0; i < 1000; i++) {
result += i; // Creates many intermediate String objects
}
Fix: Use StringBuilder for multiple concatenations.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append(i);
}
String result = sb.toString();
References
- Oracle Java Code Conventions
- Effective Java by Joshua Bloch
- Common Java Pitfalls – Baeldung
- Java Programming Mistakes – DZone
Visual Summary
Remember that many of these mistakes can be caught early by:
- Using static code analysis tools (SonarQube, FindBugs)
- Writing unit tests
- Conducting code reviews
- Using modern IDEs with code inspection features
Awesome https://lc.cx/xjXBQT
Awesome
Awesome
Good
Awesome
Good
Very good
Awesome
Very good
Very good
Good
Awesome https://is.gd/N1ikS2
Very good
Very good
Very good
Very good
Awesome
Get paid for every referral—sign up for our affiliate program now! https://shorturl.fm/rAqjl
Become our partner now and start turning referrals into revenue! https://shorturl.fm/DBijO
Professional maintenance cleaning, maintains our home beautifully. Our home has never looked better. Excellent service always.
Dry Cleaning in New York city by Sparkly Maid NYC
We pay $10 for a google review and We are looking for partnerships with other businesses for Google Review Exchange. Please contact us for more information!
Business Name: Sparkly Maid NYC Cleaning Services
Address: 447 Broadway 2nd floor #523, New York, NY 10013, United States
Phone Number: +1 646-585-3515
Website: https://sparklymaidnyc.com
We pay $10 for a google review and We are looking for partnerships with other businesses for Google Review Exchange. Please contact us for more information!
Business Name: Sparkly Maid NYC Cleaning Services
Address: 447 Broadway 2nd floor #523, New York, NY 10013, United States
Phone Number: +1 646-585-3515
Website: https://sparklymaidnyc.com
We pay $10 for a google review and We are looking for partnerships with other businesses for Google Review Exchange. Please contact us for more information!
Business Name: Sparkly Maid NYC Cleaning Services
Address: 447 Broadway 2nd floor #523, New York, NY 10013, United States
Phone Number: +1 646-585-3515
Website: https://sparklymaidnyc.com
We pay $10 for a google review and We are looking for partnerships with other businesses for Google Review Exchange. Please contact us for more information!
Business Name: Sparkly Maid NYC Cleaning Services
Address: 447 Broadway 2nd floor #523, New York, NY 10013, United States
Phone Number: +1 646-585-3515
Website: https://maps.app.goo.gl/u9iJ9RnactaMEEie8
We pay $10 for a google review and We are looking for partnerships with other businesses for Google Review Exchange. Please contact us for more information!
Business Name: Sparkly Maid NYC Cleaning Services
Address: 47 Broadway 2nd floor #523, New York, NY 10013, United States
Phone Number: +1 646-585-3515
Website: https://maps.app.goo.gl/u9iJ9RnactaMEEie8
The way this post is written makes the whole discussion feel very smooth and easy to follow, while also keeping enough substance in the topic to make readers interested in sharing their own opinions and continuing the conversation further.