Cauta pe Blog
Colaboratori
  • AAparut.Ro – Revista pentru femei
  • ClickMe.Ro – Socializare online
  • eTester.Ro – The Blog Director
  • Reclama Online
Legaturi
Sondaje

Sunteti de acord cu legalizarea homosexualitatii?

Vezi Rezultatul

Loading ... Loading ...

Articole din ianuarie, 2009

Intrebari si raspunsuri pentru interviuri Java

Intrebari pe care le pun la interviurile de Java si raspunsurile mele. Nu ma pretind un cunoscator al adevarului absolut deci, daca imi dati alte raspunsuri le voi evalua ca atare. Daca am strecurat greseli pe undeva va rog sa-mi semnalati.

Este un interviu care contine intrebari pentru toate nivelele, de la junior la senior.

J2SE / OOP
Intrebare: Defineste conceptul de polimorfism.
Raspuns: Acelasi nume se poate referi la metode diferite. Este de 2 feluri: overloading si overriding.
Overriding – metoda cu acceasi semnatura cu o alta din clasa parinte
Overriding – doua sau mai multe metode in aceeasi clasa cu acelasi nume dar semnaturi diferite.
Atentie! Semnatura unei metode nu include tipul returnat.

Intrebare: Ce inseamna incapsulare?
Raspuns: Calitatea obiectelor de a avea proprietati si metode (actiuni)
Intrebarea asta n-o pun la seniori pentru ca se uita.

Intrebare: Ce inseamna mostenire? Ce fel de mostenire avem in Java?
Raspuns: Calitatea unei clase de a contine proprietatile si metodele altei clase (fara a le mai defini o data). In Java avem doar mostenire simpla, o clasa nu poate extinde mai multe clase.
Intrebare doar pentru juniori.

Intrebare: Ce este o clasa abstracta?
Raspuns: O clasa care nu poate fi instantiata. Acest raspuns il consider corect si complet pentru ca restul proprietatilor deriva de aici.
Atentie! Multi imi dau o definitie incorecta: “O clasa care are cel putin o metoda abstracta!” Fals! poate sa nu aiba nici una!
Inca o definitie corecta: “O clasa care se defineste folosind cuvantul cheie abstract!”. Restul proprietatilor deriva de aici! si acum sa vedem proprietatile:
- Poate contine si metode abstracte
- Nu poate fi instantiata
- Clasele neabstracte care extind clasele abstracte trebuie sa le implementeze metodele abstracte
- Clasele abstracte pot sa nu implementeze toate metodele interfetelor pe care le implementeaza
….
mai sunt cateva dar nu-mi vin acum in minte :)

Intrebare: Ce este o interfata? Ce modificatori de acces au metodele? dar proprietatile?
Raspuns: Interfetele sunt sabloane ale claselor, entitati care definesc unele proprietati si metode ale claselor care le implementeaza.
Metodele sunt numai publice!
Proprietatile sunt constante: publice, statice si finale!
In Java o clasa poate implementa mai multe interfete. Interfetele evident nu pot fi instantiate!
Pe juniori ii mai intreb care sunt modificatorii de acces in java si ce vizibilitate confera ei.
Raspuns: public – peste tot, protected – pachet si subclase din afara, package – pachet, private – doar in clasa.

Cam atat cu OOP. Acum J2SE:

Intrebare: Ce aduce nou java 1.5?
Raspuns: Tipuri generice, foreach, autoboxing/unboxing (conversia automata de la tipuri de baza la wrapper corespondente), Varargs (ca-n C++), static import, annotations, typesafe enums.
Consider raspuns corect enumerarea a 3 diferente cu explicatii. Mai sunt si alte diferente, legate de masina virtuala spre exemplu. Le consider corecte.

Intrebare: Defineste conceptul de serializare. Cum se implementeaza in Java.
Raspuns: Transformarea unui obiect in sir de biti! Orice obiect care are aceasta proprietate poate fi trimis pe fir sau salvat pe disc. In general scopul serializarii este persistenta.
In Java obiectele serializabile trebuie sa implementeze Serializable. Simpla implementare ii “spune” masinii virtuale ca obiectul poate fi pus pe fir. In cazul in care dorim sa definim un mecanism de serializare diferit de cel al masinii virtuale (de exemplu salvarea unui obiect in format XML) trebuie implementata interfata Externalizable. Campurile transiente nu se serializeaza!
Metodele din Serializable care pot fi folosite sunt readObject si writeObject!

Intrebare: Colectii: care este diferenta intre set si list.
Raspuns: In set elementele sunt unice.

Intrebare: Stringuri. Cum se aloca, cum se compara valorile. Proprietati ale clasei String.
Raspuns: Se aloca cu new sau cu =”string”. In primul caz obiectul va fi alocat in memorie in al doilea in String Pool. Compararea valorilor se face cu equals in primul caz, cu equals sau == in cazul alocarii pe Pool. Clasa String (nu poate fi extinsa) e finala si imutabila (schimbarea valorii conduce automat la schimbarea referintei). In plus operatorul + e suprascris pentru aceasta clasa.

Intrebare: Cum se transmit parametrii la metode in Java, prin valoare sau referinta?
Raspuns: Exclusiv prin valoare!
Explicatii: tipurile de baza se transmit prin valoare.
Tipurile Obiect (Referinta): referintele in sine se transmit prin valoare. Valorile continute de acestea se transmit prin referinta (i.e. daca isi schimba valorile in cadrul unei metode modificarile valorilor vor fi vizibile din afara; schimbarea referintei insa nu va fi vizibila)!

Intrebare: Care este superclasa clasei Exception? Cate tipuri de exceptii exista in Java? Diferente.
Raspuns: Throwable care are 2 subclase: Exception si Error. In Java exista exceptii checked si unchecked. Unchecked – erori in program, nu trebuiesc prinse, apar la runtime. Erori care trebuiesc tratate in mod obligatoriu chiar din timpul scrierii codului (try/catch, throws).
Aici uneori mai insist cu intrebari!

Intrebare: Multithreading: cum functioneaza? Ce face synchronized? ce face wait?
Raspuns: Mecanism de acces concurent la o resursa. Primul thread care apeleaza o metoda sincronizata obtine lockul obiectului. Urmatoarele threaduri care apeleaza metode synchronizate vor astepta eliberarea lockului. Un thread elibereaza lockul unui obiect cand termina executia metodei synchronizate sau cand apeleaza wait.
Wait intrerupe executia unui thread care in acest fel este adaugat in thred poolul obiectului, sau clasei daca metoda ce apeleaza wait este statica. Un thread iese din thread pool cand un alt thread apeleaza notify sau notifyAll. Metodele nesynchronizate pot fi apelate de threaduri care nu au lockul obiectului.
Alte consideratii: un thread care apeleaza o metoda synchronizata si nu poate obtine lockul obiectului NU este suspendat (nu ajunge in thread pool). El va astepta eliberarea lockului pentru a executa metoda respectiva. Threadurile din thread pool nu isi vor continua executia chiar daca lockul obiectului va fi eliberat.

Aici e o paine buna de mancat, dar nu am loc mai mult aici ca sa dezvolt. Oricum, daca ai inteles ce scrie mai sus e mai mult sau mai putin de ajuns.

JDBC

Intrebare: Care sunt pasii necesari pentru realizarea unui query?
Raspuns: Connection, Statemet, Exec.

Intrebare: Care sunt tipurile de Statement? Care sunt diferentele?
Raspuns: Statement, PreparedStatement. PreparedStatement este precompilat si permite folosirea caracterelor escape (? poate fi inlocuit cu valori de parametrii)

Intrebare:Cum se apeleaza o metoda stocata?
Raspuns: Callable Statement!

Swing:
Intrebare:Ce este un LayoutManager?
Raspuns: Un mecanism care defineste asezarea componentelor intr-un container (i.e. butoane in ferestre). Exemple: FlowLayout, BorderLayout, GridBagLayout etc.

Intrebare:Mecanismul de tratare a evenimentelor?
Raspuns: Exista 3 concepte: Observable – obiect care poate produce evenimente, Observer (Listener) -obiect care trateaza evenimentele produse pe un obiect observable pe care il “observa” (“asculta”) si eveniment – un obiect creat in anumite conditii. Aici te mai intreb cum se adauga un listener pentru un obiect si cateva detalii de implementare.

Nu trebuie sa le stii pe toate. Cam atat reusesc eu sa acopar in interviu pe partea de Java client. In general discut si alte lucruri pe care le stie lumea dar nu sunt aici.

Voi reveni cu finalul partii de client, partea de server si cea de modelare si analiza.

Poezie

Giuseppe Ungaretti – Soldati

Si sta come
d’autunno
sugli alberi
le foglie

Despre Obama

Ce pana mea… pe toate blogurile scrie numai despre Obama… s-au gasit toti un cor de cantatori si catareti intrecandu-se in aprecieri care mai de care mai departe de realitate. Pai sa va spun eu ca in perioada alegerilor tocmai ma parasise muherul si bantuiam ca stafiile noaptea prin casa, dupa ora americana. Obama e [...]

Pisici vorbitoare

Niste pisicute simpaticute:

Vesuri de dragoste

Va vad interesati de subiect, si din pacate pe PixMe.Org nimeriti cam aiurea. Sectiunea e destul de cautata din cate observ asa ca revin cu niste chestii care pot suna mai bine intr-un anumit context: