Java pytanie rekrutacyjne: Kolejność wykonywania operatorów

Share on facebook
Share on twitter
Share on linkedin
PYTANIE REKRUTACYJNE

Kolejność wykonywania operatorów

Jaki będzie rezultat działania poniższego programu?

package org.blog;

public class Main {

    public static void minLengthString(String s) {
        if (s != null && s.length() > 3) {
            System.out.println("Napis ma więcej niż 3 znaki.");
        }
    }

    public static void main(String[] args) {
        String strValue = null;
        minLengthString(strValue);
    }
}
  1. Zostanie rzucony wyjątek NullPointerException,
  2. Wyświetli się komunikat: „Napis ma więcej niż 3 znaki.”,
  3. Program wykona się bez widocznego efektu,
  4. Program się nie skompiluje, ponieważ zmienna strValue jest niepoprawnie zainicjalizowana.

Uwaga! Poniżej znajduje się odpowiedź na pytanie!

 

 

 

 

 

 

 

 

 

 

 

Odpowiedź

Prawidłowa odpowiedź na pytanie to odpowiedź numer 3 – program wykona się bez widocznego efektu.

Pierwsza odpowiedź jest błędna, ponieważ sprawdzanie warunku w Javie zaczyna się od lewej strony. W przypadku, gdybyśmy mieli taki kod:

public static void minLengthStringSecond(String s) {
    if (s.length() > 3 && s != null) {
        System.out.println("Napis ma więcej niż 3 znaki.");
    }
}

To niestety otrzymamy wyjątek NullPointerException.

Ze względu, że warunek w metodzie jest niespełniony to i druga odpowiedź jest nieprawidłowa. Czwarta odpowiedź jest nieprawidłowa, ponieważ każdy obiekt może być zainicjalizowany nullem.

 

Kamil Klimek

Kamil Klimek

Pierwszy kalkulator napisany w języku Pascal w podstawówce. Później miałem trochę przygód z frontendem oraz PHP, na studiach poznałem C++ oraz Jave. Obecnie prawie 3 letnie doświadczenie jako Java full stack develop. Blog jest miejscem, dzięki któremu mogę się dzielić wiedzą i pomagać innym w nauce programowania.
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x