Questions tagged [java]
Java is a popular high-level programming language. Use this tag when you're having problems using or understanding the language itself. This tag is rarely used alone and is most often used in conjunction with [spring], [spring-boot], [jakarta-ee], [android], [javafx], [gradle] and [maven].
1,705,385
questions
24729
votes
26answers
1.5m views
Why is processing a sorted array faster than processing an unsorted array?
Here is a piece of C++ code that shows some very peculiar behavior. For some strange reason, sorting the data miraculously makes the code almost six times faster:
#include <algorithm>
#include &...
6896
votes
10answers
663k views
Why is subtracting these two times (in 1927) giving a strange result?
If I run the following program, which parses two date strings referencing times 1 second apart and compares them:
public static void main(String[] args) throws ParseException {
SimpleDateFormat sf ...
6679
votes
89answers
2.0m views
Is Java “pass-by-reference” or “pass-by-value”?
I always thought Java uses pass-by-reference.
However, I've seen a couple of blog posts (for example, this blog) that claim that it isn't (the blog post says that Java uses pass-by-value).
I don't ...
4125
votes
59answers
2.1m views
How do I read / convert an InputStream into a String in Java?
If you have a java.io.InputStream object, how should you process that object and produce a String?
Suppose I have an InputStream that contains text data, and I want to convert it to a String, so for ...
4052
votes
62answers
1.3m views
How to avoid null checking in Java?
I use object != null a lot to avoid NullPointerException.
Is there a good alternative to this?
For example I often use:
if (someobject != null) {
someobject.doCalc();
}
This checks for a ...
3787
votes
35answers
1.6m views
What are the differences between a HashMap and a Hashtable in Java?
What are the differences between a HashMap and a Hashtable in Java?
Which is more efficient for non-threaded applications?
3661
votes
11answers
314k views
Proper use cases for Android UserManager.isUserAGoat()?
I was looking at the new APIs introduced in Android 4.2.
While looking at the UserManager class I came across the following method:
public boolean isUserAGoat()
Used to determine whether the ...
3657
votes
11answers
291k views
Why don't Java's +=, -=, *=, /= compound assignment operators require casting?
Until today, I thought that for example:
i += j;
Was just a shortcut for:
i = i + j;
But if we try this:
int i = 5;
long j = 8;
Then i = i + j; will not compile but i += j; will compile fine.
...
3635
votes
37answers
1.5m views
Create ArrayList from array
I have an array that is initialized like:
Element[] array = {new Element(1), new Element(2), new Element(3)};
I would like to convert this array into an object of the ArrayList class.
ArrayList<...
3556
votes
66answers
4.1m views
How do I generate random integers within a specific range in Java?
How do I generate a random int value in a specific range?
I have tried the following, but those do not work:
Attempt 1:
randomNum = minimum + (int)(Math.random() * maximum);
// Bug: `randomNum` can ...
3464
votes
17answers
405k views
Why is char[] preferred over String for passwords?
In Swing, the password field has a getPassword() (returns char[]) method instead of the usual getText() (returns String) method. Similarly, I have come across a suggestion not to use String to handle ...
3401
votes
7answers
3.8m views
3357
votes
43answers
2.5m views
How do I efficiently iterate over each entry in a Java Map?
If I have an object implementing the Map interface in Java and I wish to iterate over every pair contained within it, what is the most efficient way of going through the map?
Will the ordering of ...
3265
votes
58answers
645k views
How to create a memory leak in Java?
I just had an interview, and I was asked to create a memory leak with Java.
Needless to say, I felt pretty dumb having no clue on how to even start creating one.
What would an example be?
3213
votes
28answers
2.2m views
What is the difference between public, protected, package-private and private in Java?
In Java, are there clear rules on when to use each of access modifiers, namely the default (package private), public, protected and private, while making class and interface and dealing with ...
3149
votes
33answers
1.1m views
When to use LinkedList over ArrayList in Java?
I've always been one to simply use:
List<String> names = new ArrayList<>();
I use the interface as the type name for portability, so that when I ask questions such as these I can rework ...
3070
votes
44answers
6.0m views
How do I convert a String to an int in Java?
How can I convert a String to an int in Java?
My String contains only numbers, and I want to return the number it represents.
For example, given the string "1234" the result should be the number ...
3034
votes
26answers
919k views
What is a serialVersionUID and why should I use it?
Eclipse issues warnings when a serialVersionUID is missing.
The serializable class Foo does not declare a static final
serialVersionUID field of type long
What is serialVersionUID and why is ...
2805
votes
31answers
3.0m views
Initialization of an ArrayList in one line
I wanted to create a list of options for testing purposes. At first, I did this:
ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
...
2767
votes
55answers
898k views
How do I test a private function or a class that has private methods, fields or inner classes?
How do I unit test (using xUnit) a class that has internal private methods, fields or nested classes? Or a function that is made private by having internal linkage (static in C/C++) or is in a private ...
2766
votes
3answers
237k views
Why is printing “B” dramatically slower than printing “#”?
I generated two matrices of 1000 x 1000:
First Matrix: O and #.
Second Matrix: O and B.
Using the following code, the first matrix took 8.52 seconds to complete:
Random r = new Random();
for (int i ...
2438
votes
31answers
1.4m views
How can I create an executable JAR with dependencies using Maven?
I want to package my project in a single executable JAR for distribution.
How can I make a Maven project package all dependency JARs into my output JAR?
2429
votes
59answers
1.2m views
How to fix 'android.os.NetworkOnMainThreadException'?
I got an error while running my Android project for RssReader.
Code:
URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory....
2405
votes
49answers
509k views
Does a finally block always get executed in Java?
Considering this code, can I be absolutely sure that the finally block always executes, no matter what something() is?
try {
something();
return success;
}
catch (Exception e) {
...
2312
votes
29answers
2.0m views
How do I determine whether an array contains a particular value in Java?
I have a String[] with values like so:
public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};
Given String s, is there a good way of testing whether VALUES contains s?
2290
votes
21answers
880k views
How do I call one constructor from another in Java?
Is it possible to call a constructor from another (within the same class, not from a subclass)? If yes how? And what could be the best way to call another constructor (if there are several ways to do ...
2162
votes
21answers
893k views
What is reflection and why is it useful?
What is reflection, and why is it useful?
I'm particularly interested in Java, but I assume the principles are the same in any language.
2145
votes
29answers
912k views
What's the difference between @Component, @Repository & @Service annotations in Spring?
Can @Component, @Repository and @Service annotations be used interchangeably in Spring or do they provide any particular functionality besides acting as a notation device?
In other words, if I have a ...
2145
votes
42answers
692k views
“implements Runnable” vs “extends Thread” in Java
From what time I've spent with threads in Java, I've found these two ways to write threads:
With implements Runnable:
public class MyRunnable implements Runnable {
public void run() {
//...
2092
votes
28answers
4.6m views
2029
votes
34answers
1.3m views
How do you assert that a certain exception is thrown in JUnit 4 tests?
How can I use JUnit4 idiomatically to test that some code throws an exception?
While I can certainly do something like this:
@Test
public void testFooThrowsIndexOutOfBoundsException() {
boolean ...
2011
votes
27answers
1.2m views
How to get an enum value from a string value in Java?
Say I have an enum which is just
public enum Blah {
A, B, C, D
}
and I would like to find the enum value of a string, for example "A" which would be Blah.A. How would it be possible to do this?
...
1976
votes
31answers
2.3m views
What's the simplest way to print a Java array?
In Java, arrays don't override toString(), so if you try to print one directly, you get the className + '@' + the hex of the hashCode of the array, as defined by Object.toString():
int[] intArray = ...
1962
votes
11answers
1.0m views
How to use java.net.URLConnection to fire and handle HTTP requests?
Use of java.net.URLConnection is asked about pretty often here, and the Oracle tutorial is too concise about it.
That tutorial basically only shows how to fire a GET request and read the response. ...
1836
votes
35answers
1.2m views
How do I break out of nested loops in Java?
I've got a nested loop construct like this:
for (Type type : types) {
for (Type t : types2) {
if (some condition) {
// Do something and break...
break; // ...
1834
votes
18answers
576k views
What is a JavaBean exactly?
I understood, I think, that a "Bean" is a Java class with properties and getters/setters. As much as I understand, it is the equivalent of a C struct. Is that true?
Also, is there a real syntactic ...
1787
votes
27answers
739k views
Java inner class and static nested class
What is the main difference between an inner class and a static nested class in Java? Does design / implementation play a role in choosing one of these?
1781
votes
15answers
199k views
Why does this code using random strings print “hello world”?
The following print statement would print "hello world".
Could anyone explain this?
System.out.println(randomString(-229985452) + " " + randomString(-147909649));
And randomString() looks like this:
...
1765
votes
42answers
1.4m views
How to generate a random alpha-numeric string?
I've been looking for a simple Java algorithm to generate a pseudo-random alpha-numeric string. In my situation it would be used as a unique session/key identifier that would "likely" be unique over ...
1764
votes
14answers
685k views
Comparing Java enum members: == or equals()?
I know that Java enums are compiled to classes with private constructors and a bunch of public static members. When comparing two members of a given enum, I've always used .equals(), e.g.
public ...
1691
votes
24answers
1.3m views
Does Java support default parameter values?
I came across some Java code that had the following structure:
public MyParameterizedFunction(String param1, int param2)
{
this(param1, param2, false);
}
public MyParameterizedFunction(String ...
1687
votes
30answers
289k views
How to avoid Java code in JSP files?
I'm new to Java EE and I know that something like the following three lines
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
is an old school way of coding and in ...
1663
votes
35answers
3.9m views
How to split a string in Java
I have a string, "004-034556", that I want to split into two strings:
string1="004";
string2="034556";
That means the first string will contain the characters before '-', and the second string will ...
1653
votes
57answers
1.4m views
Sort a Map<Key, Value> by values
I am relatively new to Java, and often find that I need to sort a Map<Key, Value> on the values.
Since the values are not unique, I find myself converting the keySet into an array, and sorting ...
1597
votes
33answers
808k views
Difference between StringBuilder and StringBuffer
What is the main difference between StringBuffer and StringBuilder?
Is there any performance issues when deciding on any one of these?
1584
votes
51answers
1.9m views
How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
I am trying to use Notepad++ as my all-in-one tool edit, run, compile, etc.
I have JRE installed, and I have setup my path variable to the .../bin directory.
When I run my "Hello world" in Notepad++,...
1562
votes
38answers
401k views
Why use getters and setters/accessors?
What's the advantage of using getters and setters - that only get and set - instead of simply using public fields for those variables?
If getters and setters are ever doing more than just the simple ...
1535
votes
32answers
1.4m views
How do I create a Java string from the contents of a file?
I've been using the idiom below for some time now. And it seems to be the most wide-spread, at least on the sites I've visited.
Is there a better/different way to read a file into a string in Java?
...
1520
votes
31answers
613k views
How can I convert a stack trace to a string?
What is the easiest way to convert the result of Throwable.getStackTrace() to a string that depicts the stacktrace?
1511
votes
27answers
2.6m views
How does the Java 'for each' loop work?
Consider:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
What ...