SCJP troche kruczków

0

przygotowuje się do SCJP więc mam trochę ciekawostek do przedyskutowania, taka inteligentna wymiana zdań :D

Pytanko pierwsze dlaczego nie można dziedziczyć po klasie Integer. Klasa Integer ma publiczny konstruktor??

A teraz trochę kodu.

Co się wyświetli na konsoli?

class Foo {
	String name;
}

class Start {

	public Start() {
		Foo f = new Foo();
		System.out.println(f.name);
		funkcja(f);
		System.out.println(f.name);
	}
	
	public void funkcja(Foo f){
		f.name="aaaa";
		f = null;
	}
	
	public static void main(String [] args) {
		Start s = new Start();
	}
}

A teraz trochę trudniejsze

class Start {

	public Start() {
		int i = 100;
		System.out.println(i);
		funkcja(i);
		System.out.println(i);
	}
	
	public void funkcja(int i){
		i = i + 1;
	}
	
	public static void main(String [] args) {
		Start s = new Start();
	}
}

I najtrudniejsze :) podobnie co się wyświetli

class Start {

	public Start() {
		Integer i = 100;
		System.out.println(i);
		funkcja(i);
		System.out.println(i);
	}
	
	public void funkcja(Integer i){
		i = i + 1;
	}
	
	public static void main(String [] args) {
		Start s = new Start();
	}
}
0
  1. Bo klasa Integer jest final.
    Pozostałe: skompiluj i sprawdź.
0

nie pytam o odpowiedzi :) ja je znam, bawcie się

0
  1. Integer jest final
  2. null aaaa
  3. 100 100
  4. 100 100

Do dyskusji o SCJP moge polecic: http://www.coderanch.com/forums/f-24/Programmer-Certification-SCJP.

1 użytkowników online, w tym zalogowanych: 0, gości: 1