Nowość - Zagadki Java! Zagadka #1

Na stronę będę od czasu do czasu dodawał zagadki dla programistów Java. Będą one zawierały różnego rodzaju niuanse języka i „podchwytliwe” fragmenty kodu. Każda następna zagadka będzie zawierała odpowiedź i wyjaśnienie do poprzedniej. Lista wszystkich zagadek

Jeżeli znasz odpowiedź, podziel się nią w komentarzu!

Zagadka Java #1

Jaki, oraz dlaczego, będzie wynik kompilacji i uruchomienia każdej z poniższych klas?

public class AssignmentOperator {
  public static void main(String[] args) {
    int x = 5;
    long y = 10;

    x = x + y;

    System.out.println(x);
  }
}
public class CompoundAssignmentOperator {
  public static void main(String[] args) {
    int x = 5;
    long y = 10;

    x += y;

    System.out.println(x);
  }
}

Komentarze (2):

  1. W pierwszym przykładzie otrzymamy błąd ponieważ przypisujemy zmiennej int x nową wartość, która jest sumą int x i long y czyli rzutujemy long na int co może się przyczynić utratą danych.
    W drugim przykładzie wykonujemy operację dodawania co w najgorszym przypadku przekręci nam licznik int'a i wynikiem będzie liczba ujemna -2147483644.

    Dobry strzał? 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.