Mała łamigłówka z Javy

softwaregarden.dev 4 lat temu

Poniżej znajdziesz trochę kodu napisanego w Javie. Mam do Ciebie prośbę: postaraj się nie uruchamiać tego kodu, tylko zastanów się “na sucho”, co się stanie.

Skopiowanie kodu do jshella zajmuje tylko kilka sekund, ale i wiedza pozyskana w ten sposób nie będzie trwała…

Sugeruję zrobić z tego ćwiczenia swoisty eksperyment myślowy, poczytać Javadoc, podumać…

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}

Teraz postaraj się odpowiedzieć na te dwa pytania:

  1. Jaka jest minimalna wersja Javy wymagana do uruchomienia tego kodu?
  2. Jaka będzie pierwsza wypisana linia przez ten kod? ene, due czy może like?
  3. * Jaka jest klasa obiektu raz?

Odpowiedzi (i mojego komentarza) spodziewaj się wkrótce.

Kod znajduje się też na Githubie.

Idź do oryginalnego materiału