sciaga egzam rok temu z forum

1.- jak wygląda deklaracja tablicy String
String tablica[]={“Jan Kowalski”,”Michał Nowak”,”Marian Iksiński”,”Człowieczek BezNazwiska”};

2.- case... co po kolei się wyświetli (dziedziczenie też)
Switch (wyrażenie) {

Case wartość1: Instrukcje1; Break;

Case wartość2: Instrukcje2; Break;

Case wartość3: Instrukcje3; Break;

Default: Instrukcje4; }

3.- finalize()
Mimo ze Java nie wymaga destruktorów, istnieje możliwość deklaracji specjalnej metody finalize

(zdefiniowanej w klasie java.lang.Object ), która będzie wykonywana przed usunięciem obiektu z

pamięci. Deklaracja takiej metody ma zastosowanie, gdy nasz obiekt np.: ma referencje do

urządzeń wejścia-wyjścia i przed usunięciem obiektu należy je zamknąć.

Usuwanie obiektów - finalizacja

class OtwórzPlik {

FileInputStream m_plik = null;

OtwórzPlik(String nazwaPliku)

{ //Otwarcie pliku

try

{ m_plik = new FileInputStream(nazwaPliku); }

//Obsługa wyjatku

catch (java.io.FileNotFoundException e)

{ System.err.println("Nie moge otworzyc pliku" + nazwaPliku);}

}

protected void finalize () throws Throwable

{

if (m_plik != null)

{

m_plik.close();

m_plik = null;

}

}

}

4.- co to throw (czy jakoś tak)
37. Generacja sytuacji wyjątkowych

Wyrazenie throw przekazuje sterowanie do skojarzonego z nim bloku catch (łap, blok obsługujacy

wystapienie sytuacji wyjatkowej).

Jesli nie ma bloku catch w biezacej metodzie, sterowanie natychmiastowo, bez zwracania wartosci,

przekazywane jest do metody, która wywołała biezaca funkcje. W tej metodzie szukany jest blok

catch.

Jesli blok catch nie zostanie znaleziony, przekazuje sterowanie do metody, która wywołała te

metode. Sterowanie przekazywane jest zatem zgodnie z łancuchem wywołan metod, az do

momentu znalezienia bloku catch odpowiedzialnego za obsługe wyjatku.

Jesli wyjatek nie moze byc przechwycony, nalezy go zabezpieczyc (przy pomocy throws).

public class WywolajWyjatek

{ static public void main(String args[]) throws Exception

{ Liczba liczba = new Liczba();

liczba.dziel(1);

}

}

class Liczba

{ int m_i = 10;

int dziel(float i) throws Exception

{ if (i/2 != 0)

throw new Exception("Liczba nieparzysta!");

if (i == 0)

throw new Exception("Dzielenie przez zero!");

return (int)(m_i/i);

}

}

………..

java.lang.Exception: Liczba nieparzysta!

at Liczba.dziel(Wywolaj`Wyjatek.java:16)

at WywolajWyjatek.main(WywolajWyjatek.java:6)

Exception in thread "main"
38. Słowo kluczowe throws

Jezeli metoda jest zdolna generowac wyjatek którego sama nie przechwytuje, nalezy to zaznaczyc

w tekscie programu, aby metody ja wywołujące mogły sie przed nim zabezpieczyc. Liste

wszystkich wyjatków generowanych przez dana metode tworzy sie za pomoca słowa kluczowego

throws.

Próba skompilowania poprzedniego programu bez uzycia throws zakonczyłaby sie wyswieteleniem

komunikatu:

Unhandled exception type Exception

public class WywolajWyjatek {

static public void main(String args[])

{ Liczba liczba = new Liczba();

try {

liczba.dziel(1);

}

catch(Exception e){System.out.println("wyjatek");}

// wyłapuje wyjatek "wyrzucany" poprzez funkcje dziel

}

} class Liczba {

int m_i = 10;

int dziel(float i) throws Exception

//Exception "załatwia" wszystkie podklasy

{ if (i/2 != 0)

throw new Exception("Liczba nieparzysta!");

if (i == 0)

throw new Exception("Dzielenie przez zero!");

return (int)(m_i/i); }

} ....

wyjatek

5.- czy wartości bolean true i false odpowiadają 1 i 0
NIE, nie konwertują się niejawnie do wartości typu int

6.- czy kod się skompiluje, co się wyświetli
Może tak może nie, kto to wie!

7.- z jakich protokołów korzysta...(coś socket?)
Wtyczki (obiekty klasy java.net.Socket) korzystają z protokołu TCP/IP. W celu nawiązania połączenia z serwerem (za pośrednictwem wtyczki) wystarczy wywołać konstruktor klasy Socket:

Jeśli nie powiedzie się nawiązanie połączenia generowany jest wyjątek.

Datagramy (obiekty klasy java.net.DatagramSocket) korzystają z protokołu UDP. Protokół ten jest szybszy niż TCP/IP.

8. powtórzone

9. Deklaracja kolekcji (wybrać poprawną) (in. „kontener”)

Służą one do przechowania wielu obiektów. Zobaczmy poniższy przykład.

import java.util.*;

public class ListExample {

public static void main(String args[]) {

List list = new ArrayList();

list.add("Bernadine");

list.add("Elizabeth");

list.add("Gene");

list.add("Elizabeth");

list.add("Clara");

System.out.println(list);

System.out.println("2: " + list.get(2));

System.out.println("0: " + list.get(0));

LinkedList queue = new LinkedList();

queue.addFirst("Bernadine");

queue.addFirst("Elizabeth");

queue.addFirst("Gene");

queue.addFirst("Elizabeth");

queue.addFirst("Clara");

System.out.println(queue);

queue.removeLast();

queue.removeLast();

System.out.println(queue);

}

}

Mamy w nim podane przykłady użycia listy i kolejki.

Kolekcje w Java dają programiście pewien standardowy sposób

radzenia sobie z przetwarzaniem grup obiektów. Implementacja

kolekcji w Java składa się z następujących składowych:

- Interfejsów: definiujących abstrakcyjne właściwości i operacje

kolekcji, w oderwaniu od konkretnych implementacji

- Implementacji: klasy będące implementacjami odpowiednich

interfejsów

- Algorytmów: metod pozwalających na efektywne przetwarzanie

kolekcji; np.: wyszukiwanie czy sortowanie. Algorytmy te zwykle są

polimorficzne, tj. są zdefiniowane dla pewnego rodzaju kolekcji a nie

tylko dla wybranej klasy

Podstawowe cechy kolekcji to: wysoka efektywność kodu oraz to, że

kolekcje różnych typów posiadają podobną i prostą obsługę.

Kolekcje implementują także interfejs Iterator, ułatwiający i

standaryzujący dostęp do kolejnych elementów kolekcji.

10.powtórzone

11.Czy możliwe jest utworzenie obiektu interfacu.
Nie?
Interfejs obiektu i jego implementacja W pierwszej kolejności należy utworzyć interfejs zdalnego obiektu. Interfejs jest abstrakcją obiektu dostępną dla klienta. Rzeczywisty obiekt będący realizacją interfejsu znajduje się w serwerze i klient nie ma do niego dostępu. Interfejs zawiera specyfikacje zdalnie dostępnych dla klienta metod. Każda z metod deklarowanych w interfejsie powinna zgłaszać wyjątek typu java.rmi.RemoteException. Aby obiekt mógł być zdalnie dostępny, jego interfejs musi dziedziczyć z interfejsu Remote. Od klasy implementującej interfejs wymaga się zaś, by dziedziczyła z klasy java.rmi.server.UnicastRemoteObject.
http://osilek.mimuw.edu.pl/index.php?title=Sr-05-lab-1.0

12.Klasa ServerSocket na TCP.
- Program serwera wykonywany na konkretnej maszynie ma przypisane do pewnego numeru portu gniazdo (typu ServerSocket), poprzez które "nasłuchuje" za pomocą metody accept klasy ServerSocket ewentualnego żądania nawiązania łączności przez klienta (gniazdo typu Socket). Jest to możliwe, jeśli klient (program klienta) zna adres komputera sieciowego, na którym jest wykonywany serwer oraz numer portu, do którego serwer jest dołączony i utworzy odpowiednie gniazdo typu Socket (związane z numerem portu i adresem serwera), poprzez które może prowadzić komunikację z serwerem. Serwer akceptuje połączenie, a następnie tworzy dla klienta nowe gniazdo (typu Socket) ze zmiennymi wskazującymi na obiekty klas typu InputStream i OutputStream.
- W pakiecie java.net klasy Socket i ServerSocket służą do komunikacji w oparciu o protokół połączeniowy TCP

13.Byte a=2 Byte b=4/a; Print(b) jaki będzie wynik.
8. Rzutowanie typów

• Jeżeli zakres i wartość zmiennej docelowej są na tyle duże, ze można w niej zapisać wartość

źródłowa bez utraty informacji, to kompilator dokonuje automatycznej konwersji typów co nazywa

sie poszerzaniem (np. byte → int).

• W przypadku przeciwnym (zawężania), konieczne jest jawne rzutowanie typu (np. int → byte).

• Gdy jest prawdopodobne ze wynik operacji na danym typie (np. mnożenie liczb typu byte)

przekroczy dopuszczalny zakres typu, kompilator Javy automatycznie przekształca go do typu

wyniku. Typ każdego wyrażenia jest zawsze automatycznie przekształcany do najszerszego

typu występujących w nim zmiennych i literałów.

Przykład:

class Rzutowanie {

public static void main (String args[])
{ byte b=42; 1. f * b → float * byte → float

char c=’a’; 2. i/c → int/char → int

short s=1024; 3. d * s → double * short → double

int i=50000; 4. (1)+(2) → float+int → float

float f=5.67f; 5. (4) − (3) → float − double → double

double d=.1234;

double rezultat=(f*b)+(i/c)-(d*s); } }

Błędy:

byte b=50;

b=b*2;

^ Incompatible type for =.

Explicit cast needed to convert int to byte.

Bład wynika z faktu, ze liczba 2 jest traktowana jako wartosc typu int, w zwiazku z czym

wyrazenie b*2 równiez. Próba przypisania wymaga zatem jawnego operatora konwersji, mimo ze

liczba 100 miesci sie w dziedzinie typu byte.

14.if(new String("ala")==new String("ala") ) czyli if(true)

15.Bolean a; . Jaką wartość przyjmuje domyślnie.
FALSE

16.Jaki ciąg znaków zostanie wywołany. Static, Konstruktor i funkcja.

17.Składnia Foreach dla for(Object o: costam)

Odpowiedzi:

Object o=new Object();

Object o=new String();

np 17... kto to wymyślił ?

tam było coś z collection e = new (jakiś typ kolekcji chyba SortArray)();

i tylko ta jedna była prawidłowa

- w 17 było o tym która deklaracja będzie poprawna dla tamtej pętli foreach ;)

18. BRAK

19.coś o InputStream i OutputStream
Do jakiej klasy strumieni należą. Odpowiedz Strumienie binarne.

Writer i Reader Tekstowe.

20.Czy boolean true i false to to samo co 1 i 0
(odp.NIE)

21. Czy przy zmiennych prymitywnych operujemy na kopiach
(odp.TAK)

22.coś o addWIndowListener
(..)Rejestruje w obiekcie typu Window (na przykład Frame) klasę nasłuchującą, czyli implementującą interfejs WindowListener (ewentualnie dziedziczącą po klasie WindowAdapter).

23. Która własność pola danych daje możliwość modyfikacji przez wątków
(mysle,ze chodzi o volatile, ale nie jestem pewna na 100%)

24.Ile funkcji abstrakcyjnych może mieć klasa abstrakcyjna?

zero lub więcej

25.Czy deklaracja Serializable s = new Serializable (); jest poprawna?
Nie, nie można tworzyć interfejsów w taki sposób. Interfejsy w ogóle nie posiadają konstruktorów, to na dobrą sprawę klasy abstrakcyjne - definiując jakiś własny interfejs nie wolno podać ciał funkcji. Jedynym wyjątkiem od tej zasady jest stworzenie klasy anonimowej - w powyższym przypadku oznacza to dodanie klamry na końcu, Serializable s = new Serializable(){};

26.Mamy kod...

for (Object o : x) {

System.out.println(o.toString());

}

Która z deklaracji obiektu x przed tą pętlą jest poprawna?

a) Object x = new Object();

b) Object x = new String();

c) Collection x = new ArrayList();

d) ArrayList x = new Collection();

Odpowiedź c. Po pierwsze, obiekt x musi implementować interfejs Iterable, żeby konstrukcja for(Typ a : x) miała sens. Interfejs Collection jest rozszerzeniem interfejsu Iterable, więc nam to pasuje. Konstrukcja z d) jest bez sensu, bo kolekcje nie mają konstruktorów - zostaje więc c).

27.

Była klasa jakaś tam, były w niej różne metody (z rożnymi modyfikatorami), metody te miały za zadanie wyświetlić literkę i trzeba było odgadnąć w jakiej kolejności te metody zostaną użyte tzn. w jakiej kolejności wyświetlą sie literki.

ABC, BCA etc etc.

public class hello {

{

System.out.println("Zwykla inicjalizacja");

}

static {

System.out.println("Statyczna inicjalizacja");

}

hello(){

System.out.println("Konstruktor");

}

public static void main(String[] args) {

System.out.println(" -------- ");

hello h = new hello();

}

}

Ten kod, po wykonaniu wyświetla coś takiego:

Kod:

Statyczna inicjalizacja

--------

Zwykła inicjalizacja

Konstruktor

Co to oznacza? To, że kolejność inicjalizatorów jest taka:

1. Najpierw, jak tylko stworzymy klasę (nie trzeba jeszcze tworzyć żadnych obiektów) wykonuje się inicjalizator statyczny - static {}.

2. Potem, dopóki nie stworzymy konkretnego niestatycznego obiektu klasy, nie dzieje się nic.

3. W momencie tworzenia konkretnego obiektu (operatorem new) najpierw wywołuje się inicjalizator zwykły, a dopiero potem...

4. Konstruktor.

28. Co się wypisze na ekranie:

byte a =2;

byte b=a+2;

System.out.println(b);

Warianty:

a) Wypiszę się 2;

b) Wypiszę się 4;

c) Błąd kompilacji;
Odpowiedź to c) ponieważ 2 traktowana jest jako int i dochodzi tu do zwężenia zakresu i trzeba wykonać jawne rzutowanie. Może dać właśnie w drugą stronę na poprawie więc:

byte a =2;

byte b=(byte)(a+2);

System.out.println(b);

Zadziała poprawnie

29. Z jakiego protokołu korzystają klasy Socket i ServerSocket

a) ssl

b) http

c) tcp

d) udp

30. Który zapis jest poprawny

package cos;

Import java.util.*;

public class nazwa {

}
i taka ma być kolejność a inne warianty to była mieszanka tego

1) (poprzedzać ja może tylko komentarz) definicja paczki

2) import

3) dalej co popadnie

Deklaracje klas - modyfikatory właściwości

Abstract –oznacza że nie można tworzyć obiektów danej klasy (jest ona abstrakcyjna)

final oznacza że nie można z niej wyprowadzać podklas

public - oznaczażemożnawykorzystaćklasęwdowolnymmiejscu

(domyślnieklasajestdostępnatylkowewnątrzpakietuwktórym

zostałazdefiniowana)

Modyfikatory właściwości pól danych

static oznacza pole danych klasy, a nie obiektu

final definiuje stałą, którą można przypisać tylko przy inicjalizacji obiektu

transient pola tego typu nie są trwałą częścią obiektu i nie zostają zachowane przy archiwizacji obiektu. Stosowane są do zaznaczania pól niepodlegających szeregowaniu (objectserialization) czyli zapisywaniu i odczytywaniu obiektów bajt po bajcie w komunikacji szeregowej

volatile - oznacza, że pole może być modyfikowane asynchronicznie, przez konkurencyjne wątki w programach wielowątkowych.

Modyfikatory właściwości metod

static oznaczametodęklasy,któramożeoperowaćtylkonazmiennych statycznych

final definiuje metodę, której nie można przedefiniować w podklasie

abstract metoda nie posiadająca implementacji i będąca członkiem klasy abstrakcyjnej,

native oznacza metodę zaimplementowaną w innym języku niż Java i dołączoną za pomocą JavaNativeInterface,

synchronized oznacza metodą będącą sekcją krytyczną (segmentkodu

w programie, w którym następuje dostęp do tej samej danej z różnych wątków


Wyszukiwarka

Podobne podstrony:
2 pnz egzam rok temu
tppp sciaga egzam, uniwersytet warmińsko-mazurski, inżynieria chemiczna i procesowa, rok III semestr
sciaga egzam ULA, Studia, Konstrukcje metalowe I, Egzamin
Pytania które były rok temu
ROZGRANICZENIE NIERUCHOMOSCI-ściąga, studia, rok II, EGiB, od Ani
AP - Bydło - Ściąga 2, weterynaria 3 rok WROC, semestr 6, Apy 2 sem
budownictwo sciaga egzam, Leśnictwo
Lasy SCIAGA, studia, rok IV, SZOW, koło
cellmer rok temu
Administracja sciaga, SGSP, Rok II, Postępowanie administracyjne
wyklady prawo pracy sciaga , IV rok, prawo pracy
ubezpieczenia rok temu

więcej podobnych podstron