Little Java riddle
Below you can find a piece of code written in Java. I’d like to ask you one thing: please don’t run this code before you try to answer.
Copying this code into jshell takes just a few seconds, but then the knowledge may last for a few seconds as well…
I suggest a little thought experiment, reading Javadoc, running this mentally in your mind…
19import java.util.*;
20
21public class Riddle {
22
23 public static void main(String[] args) {
24 var raz = List.of("checking!");
25 var dwa = List.copyOf(raz);
26 if (raz == dwa) {
27 System.out.println("ene");
28 } else if (raz.equals(dwa)) {
29 System.out.println("due");
30 } else {
31 System.out.println("like");
32 }
33 System.out.println(raz.getClass().getCanonicalName());
34 }
35}
Okay, now try to answer these two questions:
- What’s the minimal Java version needed to run this code?
- What will be the first line printed by this code?
ene
,due
or maybelike
? - * What’s the class of the
raz
object?
Expect the answer (and my comment on it) soon.
The code can be also found on Github.
PS. ‘Ene, due, like, fake…' is a counting-out rhyme in Polish, quite popular I guess. You may think ‘Eeny, meeny, miny, moe…' Wikipedia.