JavaRush /Blog Jawa /Random-JV /Pitakonan: Napa luwih apik kanggo nyimpen tembung sandhi ...

Pitakonan: Napa luwih apik kanggo nyimpen tembung sandhi ing Jawa ing array karakter tinimbang String?

Diterbitake ing grup
Sampeyan bisa uga krungu pitakonan kaya ing wawancara kanggo posisi Junior Jawa. Nanging kancaku ditakoni iki nalika wawancara kanggo posisi Technical Lead.
Pitakonan: Napa luwih apik kanggo nyimpen tembung sandhi ing Jawa ing array karakter tinimbang String?  - 1
Loro-lorone String, lan array karakter bisa digunakake kanggo nyimpen data teks. Nanging kanthi sengaja milih siji utawa liyane kanggo tugas tartamtu angel yen sampeyan durung nemoni kahanan sing padha. Nanging, minangka kanca nuding metu, sembarang pitakonan related kanggo String, biasane melu properti khusus saka strings disebut immutability ( Immutable), lan njupuk kauntungan saka iki ing Interview. Dadi, ayo goleki sawetara alasan kenapa sampeyan kudu nggunakake char [], lan ora , kanggo nyimpen tembung sandhi String.

Alesan 1. String ora bisa diganti

Wiwit strings ora bisa diganti ing Jawa, tembung sandhi teks kosong sampeyan bakal kasedhiya ing memori nganti tukang sampah mbusak. Lan wiwit Stringdigunakake String poolkanggo nggunakake bola-bali, ana kemungkinan cukup dhuwur sing sandi bakal tetep ing memori kanggo dangu, kang ora aman.
Kolam Jawa String inggih menika blumbang utawi seperangkat barang (senar) ingkang mapan wonten ing papan khusus - heap. String ing Jawa minangka salah sawijining jinis data sing paling umum. Iki dudu jinis primitif, nanging obyek, amarga akeh sumber daya. Dadi, kanggo nyimpen senar saka papat karakter, sampeyan kudu nyedhiakke 56 bait memori. Mulane senar, kaya obyek liyane, disimpen ing tumpukan.
Sapa wae sing duwe akses menyang mbucal memori bisa nemokake tembung sandhi ing teks biasa, sing dadi alasan sing apik kanggo nggunakake tembung sandhi sing dienkripsi tinimbang teks biasa. Amarga senar ora bisa diganti, isine ora bisa diganti. Sembarang owah-owahan bakal nggawe baris anyar. Nanging ing kasus char [], sampeyan bisa ngganti samubarang unsur karo karakter nul utawa kosong. Mangkono, nyimpen tembung sandhi ing susunan karakter kanthi jelas nyuda risiko intersepsi tembung sandhi.

Alesan 2. Rekomendasi penulis

Jawa dhewe (uga, liwat pangripta, mesthi) nyaranake nggunakake cara getPassword ()saka kelas JPasswordFieldsing ngasilake char []. Sampeyan uga bisa nyoba cara sing ora digunakake getText (). Apa ora nuruti rekomendasi saka penulis basa?

Alesan 3. Print

Kanthi jinis Stringmesthi ana bebaya yen teks sing disimpen ing senar bakal dicithak ing file log utawa ing konsol. Ing wektu sing padha, yen sampeyan nggunakake Array, sampeyan ora bakal nyithak isi array, nanging mung lokasi ing memori. Mesthi, iki dudu alesan sing serius, nanging isih ana akal.
String strPassword = "Unknown";
char [] charPassword = new char [] {'U', 'n', 'k', 'w', 'o', 'n'};
System.out.println ("String password:" + strPassword);
System.out.println ("char password:" + charPassword);

String password: Unknown
Character password: [C@110b053
Mesthi, nggunakake char []Jawa kanggo nyimpen sandhi dhewe ora panacea. Sampeyan kudu njupuk pancegahan keamanan, kayata nggarap hash lan enkripsi sandhi tinimbang nyimpen ing teks biasa. Lan, mesthi, mbusak saka memori sanalika sawise prosedur otentikasi. Adhedhasar bahan saka Javarevisited
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION