User Tools

Site Tools


Problem constructing authldap
laboratoare:static-final
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
laboratoare:static-final [2019/10/20 14:51]
Radu Matei [Exerciții]
laboratoare:static-final [2019/10/20 14:57]
Radu Matei [Cuvântul-cheie "final". Obiecte immutable]
Line 79: Line 79:
 }  ​ }  ​
 </​code>​ </​code>​
-In acest caz, numarul ​de obiecte create ​in memorie este unul foarte mare. Dintre acestea doar cel rezultat la final este util. Pentru a preveni alocarea ​nejustificata ​a obiectelor de tip String ​care reprezinta pasi intermediari ​in obtinerea sirului ​dorit putem alege sa folosim clasa StringBuilder ​creata ​special pentru a efectua ​operatii ​pe siruri ​de caractere.+În acest caz, numărul ​de obiecte create ​în memorie este unul foarte mare. Dintre acestea doar cel rezultat la final este util. Pentru a preveni alocarea ​nejustificată ​a obiectelor de tip Strîng ​care reprezintă pași intermediari ​în obținerea șirului ​dorit putem alege să folosim clasa StringBuilder ​creată ​special pentru a efectua ​operații ​pe șiruri ​de caractere.
 <code java5> <code java5>
 public static String concatenareCuClasaStringBuilder(){  ​ public static String concatenareCuClasaStringBuilder(){  ​
Line 90: Line 90:
 </​code>​ </​code>​
  
-Cuvantul ​cheie final poate fi folosit ​si in alt context ​decat cel prezentat anterior. De exemplu, aplicat unei clase impiedica ​eventuala ​derivare a acestei clase prin mostenire.+Cuvântul ​cheie final poate fi folosit ​și în alt context ​decât ​cel prezentat anterior. De exemplu, aplicat unei clase împiedică ​eventuală ​derivare a acestei clase prin moștenire.
 <code java5> <code java5>
 final class ParentClass { final class ParentClass {
Line 100: Line 100:
 </​code>​ </​code>​
  
-In mod similar, ​in cazul in care aplicam cuvantul ​cheie final unei metode, acest lucru impiedica ​eventuala ​suprascriere a acelei metode+În mod similar, ​în cazul în care aplicăm cuvântul ​cheie final unei metode, acest lucru împiedică ​eventuală ​suprascriere a acelei metode.
 <code java5> <code java5>
 class ParentClass { class ParentClass {
Line 301: Line 301:
         * și șirul format prin conversia la String a lungimii lui name + un numar intreg generat random din intervalul [0,100]         * și șirul format prin conversia la String a lungimii lui name + un numar intreg generat random din intervalul [0,100]
     * Pentru subșiruri și alte metode utile consultați documentația clasei [[http://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​String.html | String]]     * Pentru subșiruri și alte metode utile consultați documentația clasei [[http://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​String.html | String]]
-  - (**3p**) ​Modificati ​implementarea clasei PasswordMaker astfel ​incat sa respecte conceptul de **Singleton pattern** (sa permita instantierea ​unei singur obiect) +  - (**3p**) ​Modificați ​implementarea clasei PasswordMaker astfel ​încât să respecte conceptul de **Singleton pattern** (să permită instanțierea ​unei singur obiect) 
-        * Pornind de la exemplul de Singleton din textul laboratorului ​implementati ​o versiune care urmeaza ​principiul de Eager Initialization (singura ​instanta ​a clasei este creata ​la pornirea ​aplicatiei, indiferent ​daca este necesar sau nu) +        * Pornind de la exemplul de Singleton din textul laboratorului ​implementați ​o versiune care urmează ​principiul de Eager Initialization (singura ​instanța ​a clasei este creată ​la pornirea ​aplicației, indiferent ​dacă este necesar sau nu) 
-        * Implementati ​o versiune de Singleton ​in care variabila ''​instance''​ este initializata intr-un bloc static +        * Implementați ​o versiune de Singleton ​în care variabila ''​instance''​ este inițializata într-un bloc static 
-        * Adaugati ​un contor care sa numere de cate ori a fost accesata metoda ​''​getInstance()''​. E nevoie ca acest contor ​sa fie static? +        * Adăugați ​un contor care să numere de câte ori a fost accesată metodă ​''​getInstance()''​. E nevoie ca acest contor ​să fie static? 
-        * //Tema de gandire:// Ce se va intampla daca folosim conceptul de Singleton pattern ​intr-un program paralelizat,​ care ruleaza ​pe mai multe linii de executie ​(thread-uri). Ce probleme ar putea sa apara+        * //Tema de gândire:// Ce se va întâmplă dacă folosim conceptul de Singleton pattern ​într-un program paralelizat,​ care rulează ​pe mai multe linii de execuție ​(thread-uri). Ce probleme ar putea să apară
-  - (**3p**) Să se implementeze o clasă ''​MyImmutableArray''​ care sa contina+  - (**3p**) Să se implementeze o clasă ''​MyImmutableArray''​ care să conțină
-    * un field de ''​ArrayList<​Integer>​ immutableArray;''​ neinitializat ​in prima faza +    * un field de ''​ArrayList<​Integer>​ immutableArray;''​ neinitializat ​în primă ​faza 
-    * un constructor care primeste ​un ArrayList<​Integer> ​si copiaza ​toate elementele din acel array in ''​immutableArray''​ +    * un constructor care primește ​un ArrayList<​Integer> ​și copiază ​toate elementele din acel array în ''​immutableArray''​ 
-    * o metoda ​getArray ​implementata in asa fel incat field-ul ''​immutableArray'' ​sa ramana ​immutable +    * o metodă ​getArray ​implementată în așa fel încât ​field-ul ''​immutableArray'' ​să rămână ​immutable 
-  - (**1p**) ​Testati ​clasa ''​MyImmutableArray'' ​demonstrand ​faptul ​ca instantele ​acestei clase sunt imutabile+  - (**1p**) ​Testați ​clasa ''​MyImmutableArray'' ​demonstrând ​faptul ​că instanțele ​acestei clase sunt imutabile
  
laboratoare/static-final.txt · Last modified: 2019/10/23 12:19 by Radu Matei