I had this interview question some years ago but I haven't found the answer yet.
What should be x and y to make a infinite loop?
while (x <= y&& x >= y && x != y) { } We tried with Nan,infinity+/-,null
float vs int.
You need two variables which are comparable, have the same value, but represent different instances, for example:
Integer x = new Integer(0); Integer y = new Integer(0); x <= y and y <= x are both true because the Integer are unboxed, however the instance equality x == y is false.
Note that it works with Float, Long and Double too, and any value (not just 0) works.
You can also play with the intricacies of your JVM - they generally cache integer up to 127 only, so this would work too:
Integer x = 128; Integer y = 128; (but it would not with 127).
Or more simply, since Doubles are generally not cached at all:
Double x = 0d; Double y = 0d;
you have to create two Integer Objects, for example:
Integer x = new Integer(2); Integer y = new Integer(2); Because x and y are Objects and no ordinal types, you get an infinite loop.
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