Kurs Java Podstawy - rozszerzony

JavaTraps 001

Pomyślałem, że fajnie byłoby zacząć dział Efektywne programowanie od elementu z którego nie każdy zdaje sobie sprawę, a czasami sprawia problemy. W serii JavaTraps będę prezentował różne ciekawe pułapki jakie zastawili na nas twórcy języka. Przyda się to zarówno początkującym, aby od razu się jakichś błędów wystrzegać, a także potencjalnym osobom chcącym podejść do SCJP.

Przykłady będę czerpał zarówno z licznych źródeł z sieci jak i książek poświęconych programowanium polecam tutaj szczególnie Effective Programming i Java Traps autorstwa Joshuy Blocha.

W pierwszym odcinku przedstawiam wam prostą zagadkę dotyczącą porównywania Stringów. Jeśli ktoś uczył się z tego kursu, to nie powinien mieć wielkich problemów z odpowiedzią, aczkolwiek trzeba sobie co nieco przypomnieć.

No więc zadeklarujmy kilka Stringów, a następnie wyświetlmy wynik ich porównywania za pomocą operatora ==, a także metody equals() klasy String.

Pytanie brzmi, co zobaczymy na ekranie po wykonaniu poniższego kodu?

public class Test {
	public static void main(String args[]){
		String s1 = "Ala";
		String s2 = "Ala";
		System.out.println(s1==s2);
		System.out.println(s1.equals(s2));

		String s3 = s1;
		String s4 = new String("Ala");
		System.out.println(s3==s4);
		System.out.println(s3.equals(s4));
	}
}

Dostępne odpowiedzi to:

A) true true true true

B) false true false true

C) true true false true

D) false false false false

Sprawdź odpowiedź.

Komentarze