Lista de întrebări și răspunsuri pentru sobsedovaniya de Java pe tema „Lucrul cu Strings.“
1. Care sunt clasele de „string“ știi?
2. Care sunt proprietățile de bază ale „șirul“ de clase (caracteristicile lor)?
3. Este posibil să moștenească un tip șir de caractere, de ce?
4. Se permite definirea concatenare de siruri de caractere.
5. Cum se convertesc un șir de caractere la un număr?
6. Cum comparați valoarea celor două linii?
7. Cum de a transforma un șir de caractere?
8. Cum comparația dintre cele două linii?
9. Cum să tăiați spații trailing?
10. Cum se schimbă caracterul în șirul?
11. Cum pot obține o bucată de sfoară?
12. Dă definiția „string internau.“
13. Ce metodă vă permite să selectați un subșir într-un șir de caractere?
14. Cum să împartă un șir de șir pentru un anumit separator?
15. Ce metodă se numește de a converti o variabilă într-un șir de caractere?
16. Cum știu valoarea caracterului specific al liniei, cunoscând numărul de serie în șir?
17. Cum de a găsi caracterul dorit în șirul?
18. Este posibil să se sincronizeze accesul la linia?
19. Ce metoda intern ()?
20. Care este diferența și ceea ce este comun în clasele String, StringBuffer și StringBuilder?
21. Cum se compara valorile string a două obiecte diferite de tipul String si StringBuffer?
22. De ce a făcut șir constant și finalizat în Java?
23. De ce este o matrice de caractere preferat linie pentru stocarea parola?
24. De ce este o cheie linie de populare într-un HashMap în Java?
25. Scrie o metodă pentru a elimina acest personaj dintr-un șir de caractere.
1. Care sunt clasele de „string“ știi?
- Public String clasa finală pune în aplicare java.io.Serializable, Comparabil
, CharSequence - clasa finală publică StringBuffer se extinde AbstractStringBuilder implementează java.io.Serializable, CharSequence
- StringBuilder publice clasa finală se extinde AbstractStringBuilder implementează java.io.Serializable, CharSequence
2. Care sunt proprietățile de bază ale „șirul“ de clase (caracteristicile lor)?
Toate clasele string - finală (astfel încât acestea nu pot fi moștenite).
String.
Rând - un obiect care reprezintă o secvență de caractere. Pentru crearea si manipularea siruri de caractere platforma Java ofera un final (nu poate avea subclase) clasa java.lang.String publice. Această clasă este imuabilă (neschimbătoare) - a creat un obiect String nu poate fi modificat.
StringBuffer
Strings sunt imuabile, atât de des modificarea lor duce la crearea de noi facilități, care, la rândul său, consumă memoria prețioase. Pentru a rezolva această problemă a fost creată clasa java.lang.StringBuffer. ceea ce permite o mai mare eficienta de lucru de modificare on-line. Clasa este mutabil. adică variabilă - l utilizați, dacă doriți să modificați conținutul șirului. StringBuffer poate fi utilizat în medii multi-thread, deoarece toate metodele necesare sunt sincronizate.
StringBuilder
StringBuilder - o clasă care este secvența de caractere mutabil. Clasa a fost introdusă în Java 5 și este complet identic cu API StringBuffer. Singura diferență - StringBuilder este nesincronizate. Acest lucru înseamnă că utilizarea sa în medii multithread de dorit. Prin urmare, dacă sunteți de lucru cu multi-threading, în mod ideal vă podhoditStringBuffer. în caz contrar, utilizați StringBuilder. care este mult mai rapid în cele mai multe implementari.
3. Este posibil să moștenească un tip șir de caractere, de ce?
Clasele sunt declarate finale, astfel încât să nu funcționeze moștenit.
4. Se permite definirea concatenare de siruri de caractere.
Concatenarea - șir operațiune concatenare care returnează un nou șir care este rezultatul combinării a doua linie cu primul capăt. operații concatenare poate fi efectuată după cum urmează:
12. Dă definiția „string internau.“
Liniile Pool - este un set de siruri de caractere care sunt stocate în memoria heap Java. Știm că String este o clasă specială în Java, și putem crea obiecte ale acestei clase cu ajutorul noului operator, în același mod ca și pentru a crea obiecte, oferind o valoare șir în ghilimele duble.
Diagrama de mai jos explică modul în care internau șir se află în memoria heap Java, și ce se întâmplă atunci când vom folosi o varietate de moduri de a crea linii.
Mai jos este un exemplu care arată funcționarea pool rânduri.
21. Cum se compara valorile string a două obiecte diferite de tipul String si StringBuffer?
Aduceți-le la același tip și comparare.
22. De ce a făcut șir constant și finalizat în Java?
Există mai multe avantaje în imutabilitatea siruri de caractere:
23. De ce este o matrice de caractere preferat linie pentru stocarea parola?
String imuabil în Java și stocate într-un bazin de siruri de caractere. De atunci, s-a stabilit, acesta rămâne în piscina până când este îndepărtat prin colectorul de gunoi, așa că atunci când ne gândim am terminat cu parola, este încă disponibilă în memoria de ceva timp, și nu există nici o modalitate de a evita. Acesta este un risc de securitate, deoarece oricine are acces la o imagine de memorie pot găsi parola în text clar.
Dacă vom folosi o serie de caractere pentru a stoca parola, putem curăța după ce ați terminat cu el. Astfel, putem controla cât timp este în memorie, evitându-se astfel riscul de securitate inerente într-un rând.
24. De ce este o cheie linie de populare într-un HashMap în Java?
Deoarece linia imuabil heshkod stocate în memoria cache lor la momentul creației, și nu necesită recalculare. Acest lucru un candidat excelent pentru o cheie de linie din Harta face, și ele sunt procesate mai repede decât alte chei obiecte HashMap. Acesta este motivul pentru care liniile sunt utilizate în principal ca chei HashMap.
25. Scrie o metodă pentru a elimina acest personaj dintr-un șir de caractere.
Putem folosi metoda replaceAll pentru a înlocui toate aparițiile unui șir cu un alt șir. Rețineți că metoda primește un șir de caractere ca argument, așa că vom folosi clasa de caractere pentru a crea un șir de caractere, și să-l utilizați pentru a înlocui toate caracterele cu un șir gol.