The URL equals() method compares IP addresses, uses a network connection and is a blocking operation!
From the javadocs:
Two hosts are considered equivalent if both host names can be resolved into the same IP addresses; else if either host name can't be resolved, the host names must be equal without regard to case; or both host names equal to null.
Since hosts comparison requires name resolution, this operation is a blocking operation.
Note: The defined behavior for equals is known to be inconsistent with virtual hosting in HTTP.
Use URI instead.
One well-known problem with the Calendar class is that months are numbered 0 to 11 instead of 1 to 12. It's very easy to make a mistake like this:
Calendar cal = Calendar.getInstance();
// Set date to August 18, 2009? WRONG! Sets the date to September 18, 2009!
cal.set(2009, 8, 18);
The right way to do it is by using constants for the months:
cal.set(2009, Calendar.AUGUST, 18);
But the method makes it much too easy to make the mistake of using the normal month numbers 1 to 12.
I regard this as a mistake in the design of the Calendar class.
Just got this one from here, regarding the add
and remove
methods of List
(when parameterized with Integer
). For instance:
List<Integer> l = new ArrayList<Integer>();
l.add(20);
l.remove(20); // throws ArrayIndexOutOfBoundsException, because it will try to access index 20
l.remove(new Integer(20)); // this works
String.getBytes()
often the cause of lots of stupid character encoding problems in applications because it uses the underlying platform character encoding.
Just found out about the methods isInterrupted
and interrupted
of class Thread
. From javadoc
:
static boolean interrupted()
// Tests whether the current thread has been interrupted.
boolean isInterrupted()
// Tests whether this thread has been interrupted.
The problem is that interrupted
actually clears the interrupted status besides doing the test, while isInterrupted
just tests the status.
It's probably not the worst method, but I never liked this one:
Suppose x is a list known to contain only strings. The following code can be used to dump the list into a newly allocated array of String:
String[] y = x.toArray(new String[0]);
Passing an String array of the size 0 to the method just seems crazy and unintuitive to me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With