1. Bandhingan
Programer kudu mbandhingake variabel sing beda karo saben liyane. Nanging, kaya sing wis sampeyan deleng, kabeh ora gampang banget.
Integer gampang banget kanggo mbandhingake - sampeyan mung nggunakake ==
lan wis rampung. Kanggo mbandhingaké nomer nyata , sampeyan kudu mbandhingaké prabédan sing (utawa rodo, Nilai Absolute saka prabédan) karo sawetara nomer cilik.
Mbandhingake senar malah luwih angel. Sing paling penting, iki amarga senar minangka obyek. Apa maneh, programer kerep pengin mbandhingake string dadi beda-beda gumantung saka kahanan.
2. Carane strings sing disusun memori
Kaya sing wis sampeyan deleng, senar disimpen ing memori kanthi beda tinimbang integer lan nomer nyata:
Rong blok memori digunakake kanggo nyimpen senar: siji blok nyimpen teks dhewe (ukurane gumantung saka ukuran teks) nalika blok kapindho (4 bita) nyimpen alamat blok pertama.
Sanajan programmer sing berpengalaman bakal ngomong kaya " String
str
variabel nyimpen referensi menyang String
obyek.
3. Nemtokake referensi kanggo senar
Keuntungan saka pendekatan iki katon nalika sampeyan kudu nemtokake variabel string menyang variabel string liyane. Tuladha:
String text = "This is a very important message";
String message = text;
Lan iki minangka akibat saka memori:

Sawise operasi assignment jinis iki, String
obyek tetep ing ngendi, lan mung alamat (referensi kanggo obyek) disalin menyang variabel message
.
4. Nggarap referensi lan obyek
Nanging yen sampeyan mutusake kanggo ngowahi senar menyang huruf gedhe (huruf kapital), mesin Java nindakake kabeh kanthi bener: sampeyan bakal entuk rong String
obyek, lan variabel text
lan message
bakal nyimpen referensi, saben obyek dhewe.
Tuladha:
String text = "This is a very important message";
String message = text.toUpperCase();
Lan iki minangka akibat saka memori:
Wigati dimangerteni manawa toUpperCase()
metode kasebut ora ngganti senar sing diarani. Nanging, nggawe senar anyar (obyek anyar) lan ngasilake referensi kasebut.
Kepiye conto sing luwih menarik. Contone, sampeyan mutusake ngirim senar menyang Scanner
obyek (supaya bisa maca nilai saka senar).
Tuladha:
String text = "10 20 40 80";
Scanner console = new Scanner(text);
int a = console.nextInt();
int b = console.nextInt();
Sampeyan bisa mangerteni sing luwih lengkap babagan carane Scanner
kelas dianggo kene .
Iki carane kabeh bakal disimpen ing memori:
Ing kasus iki, obyek siji String
tetep ana ing memori kaya saiki - mung referensi sing diwarisake lan disimpen ing variabel.
5. Mbandhingake referensi kanggo String
obyek
Lan pungkasane, kita wis tekan bagian sing nyenengake: perbandingan string.
Ana rong operator sing bisa digunakake kanggo mbandhingake variabel senar: ==
(padha) lan !=
(ora padha). Sampeyan ora bisa nggunakake operator "luwih saka", "kurang saka", utawa "luwih gedhe saka utawa padha karo" - compiler ora ngidini.
Nanging ana nuansa sing menarik ing kene: apa sing bener disimpen ing variabel senar? Sing bener: alamat (referensi) kanggo obyek. Lan alamat iki sing bakal dibandhingake:
String text = "Hi";
String message = text;
String s1 = text.toUpperCase();
String s2 = text.toUpperCase();
Mangkene apa sing bakal ana ing memori:
Variabel message
lan text
nuduhake (nyimpen alamat) obyek sing padha. Nanging s1
lan s2
variabel nyimpen referensi kanggo obyek sing meh padha nanging béda.
Lan yen sampeyan mbandhingake 4 variabel kasebut ing kode kasebut, sampeyan bakal entuk asil ing ngisor iki:
Kode | Output konsol |
---|---|
|
|
GO TO FULL VERSION