Sampeyan bisa uga krungu pitakonan kaya ing wawancara kanggo posisi Junior Jawa. Nanging kancaku ditakoni iki nalika wawancara kanggo posisi Technical Lead.
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
String
digunakake
String pool
kanggo 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
JPasswordField
sing ngasilake
char []
. Sampeyan uga bisa nyoba cara sing ora digunakake
getText ()
. Apa ora nuruti rekomendasi saka penulis basa?
Alesan 3. Print
Kanthi jinis
String
mesthi 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
GO TO FULL VERSION