1. Integerkelas
Integeruga apik ing iku kelas, kang tegese iku bisa duwe lapangan lan cara. Lan, mesthi, duwe wong-wong mau. A akèh wong - Welasan wong. Ing kene kita bakal nimbang sing paling dhasar.
Kelas kasebut Integernduweni rong kolom sing ngemot nilai maksimum lan minimal saka intjinis kasebut:
| lapangan | Katrangan |
|---|---|
|
Nilai maksimum bisa saka intjinis |
|
Nilai paling minimal saka intjinis kasebut |
Kadhangkala sampeyan pengin nemtokake intnilai sing paling cilik utawa paling gedhe menyang variabel. Kanggo ngindhari kode sampeyan kanthi konstanta sing ora bisa dingerteni, sampeyan bisa nulis iki kanthi cetha kaya ing ngisor iki:
| Kode | Katrangan |
|---|---|
|
|
Kelas Integeruga duwe sawetara cara sing menarik. Punika:
| Metode | Katrangan |
|---|---|
|
Ngasilake string sing minangka perwakilan heksadesimal saka nomer kasebut |
|
Ngasilake string sing minangka perwakilan binar saka nomer kasebut |
|
Ngasilake senar sing minangka perwakilan octal saka nomer kasebut |
|
Wraps liwat inting Integerobyek |
|
Ngasilake nomer sing dipikolehi saka senar liwati |
Sampeyan sadurunge nemoni cara statis Integer.parseInt(). Ayo kelingan cara kerjane:
int name = Integer.parseInt(string);
Yen senar sing ngemot nomer (mung digit) diterusake menyang parseInt()metode kasebut, bakal ngurai senar kasebut lan ngasilake nomer kasebut.
Liyane saka cara uga migunani. Contone, sawetara bisa ngowahi nomer liwati menyang senar ngemot perwakilan binar, octal utawa heksadesimal saka nomer.
2. Doublekelas
Umumé, Doublekelas padha karo Integerkelas, mung mbungkus a doubletinimbang int. Uga duwe lapangan lan cara sing bakal dadi kapentingan kanggo kita. Coba sawetara:
Kelas kasebut Doublenduweni enem lapangan sing menarik:
| lapangan | Katrangan |
|---|---|
|
Negatif tanpa wates |
|
Positif tanpa wates |
|
Eksponen minimal (2 x ) |
|
Eksponen maksimal (2 x ) |
|
Nilai paling minimal saka doublejinis kasebut |
|
Nilai maksimum bisa saka doublejinis |
tanpa wates
Yen sampeyan dibagi -1.0dening 0.0, sampeyan entuk infinity negatif. Yen sampeyan dibagi 1.0dening 0.0, sampeyan entuk infinity positif. Ora mung bisa dibagi doublekaro nul, nanging sampeyan uga bisa nggunakake nyimpen asil operasi iki.
Eksponen saka adouble
Ngerteni eksponen iku gampang. Sacara internal, dobel kasusun saka mantissa lan eksponen. Nanging ing kene regane eksponen ora , nanging . Mangkono, yen eksponen mundhak dening , Nilai total nomer bakal pindho.10x2x1
MIN_EXPONENT == -1024, kang tegese , kang kira-kira padha karo2-102410-308
Lan mesthi, Doublekelas kasebut duwe cara sing menarik:
| Metode | Katrangan |
|---|---|
|
Ngasilake string sing minangka perwakilan heksadesimal saka nomer kasebut |
|
Priksa manawa nomer liwati iku tanpa wates. |
|
Priksa manawa nomer liwati ikuNaN |
|
Wraps liwat doubleing Doubleobyek |
|
Ngasilake nomer sing dipikolehi saka senar liwati |
Apike, ana isInfinite()cara sing bali trueyen nomer liwati positif utawa negatif tanpa wates.
Cara kasebut isNaN()padha - mriksa manawa nomer sing dilewati yaiku NaN( Not-a-Number , konstanta khusus sing nuduhake nilai sing ora ditemtokake).
3. Characterkelas
Kelas kasebut Charactermenarik utamane amarga akeh metode sarana statis sing ngidini sampeyan mriksa apa karakter kalebu macem-macem kategori.
Tuladha
| Metode | Katrangan |
|---|---|
|
Priksa manawa karakter kasebut minangka karakter alfabet |
|
Priksa manawa karakter kasebut minangka huruf |
|
Priksa manawa karakter kasebut minangka digit |
|
Priksa manawa karakter kasebut minangka spasi, baris, utawa break kaca (kode: 12, 13, 14) |
|
Priksa manawa karakter kasebut minangka spasi putih: spasi, tab, lsp. |
|
Priksa manawa karakter kasebut huruf cilik |
|
Priksa manawa karakter kasebut huruf gedhe |
|
Ngonversi karakter dadi huruf cilik |
|
Ngonversi karakter dadi huruf gedhe |
Fitur saka metode iki yaiku bisa digunakake karo kabeh aksara sing dikenal: Angka Arab diklasifikasikake minangka digit, lsp.
4. Booleankelas
Jinis kasebut Booleanmeh padha karo booleanjinis. Bentenipun minimal.
Ing ngisor iki kita nuduhake versi kelas sing disederhanakake Boolean:
| Kode | Katrangan |
|---|---|
|
Konstanta: TRUEи Konstruktor kelas FALSE variabel Cara ngasilake nilai variabel internal Cara statis iki diowahi dadi lan menyang . BooleantrueTRUEfalseFALSE |
Jinis kasebut Booleanduwe rong konstanta (loro kolom):
| Konstanta kelas | Counterpart kanggo jinis boolean | Katrangan |
|---|---|---|
|
|
bener |
|
|
palsu |
Sampeyan bisa nggarap dheweke kanthi cara sing padha karo jinis boolean:
| Kode | Cathetan |
|---|---|
|
Kelas Booleaniku mung kelas sing bisa ditulis ing sawijining kondisi |
|
Kabeh telung variabel padha karo true/TRUE |
|
Konstanta bisa dibandhingake nggunakake loro equalslan == Iki uga bakal bisa. |
Autoboxing kerjane apik ing kene. Tegese sampeyan bisa nggunakake jinis iki kanthi cara sing padha karo jinis boolean- ora ana pitfalls sing kudu diwaspadai.
| Kepiye carane ditulis | Cara kerjane |
|---|---|
|
|
Lan ing kene perbandingan booleanlan Booleanjinis:
boolean a = true;
Boolean b = true; // b will be equal to Boolean.TRUE
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // true (compared by reference, but they point to the same object)
Yen sampeyan pancene mbutuhake Booleanobyek independen, mula sampeyan kudu nggawe kanthi jelas:
boolean a = true;
Boolean b = new Boolean(true); // New Boolean object
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // false (compared by reference, and they point to different objects)
Conto liyane, ing ngendi kita bakal nggunakake ing Booleannjero if:
| Kode | Cathetan |
|---|---|
|
Iki bakal ngumpulake lan bisa |
Iki bakal ngumpulake, nanging ora bisa!
| Kode | Cathetan |
|---|---|
|
Kesalahan . Baris iki bakal mbuwang pangecualian |
5. Nilai cache sajrone autoboxing
Ana sawetara pitfalls related kanggo jinis pambungkus integer.
Kaya sing wis dingerteni, yen mbandhingake an intlan Integer, Integerdiowahi dadi int:
| Kepiye carane ditulis | Cara kerjane |
|---|---|
|
|
Yen sampeyan mbandhingake rong Integerobyek, ora diowahi dadi ints:
| Kode | Output konsol |
|---|---|
|
|
a == clan , nanging , amarga nalika kita mbandhingaké lan kita mbandhingaké referensi. Kang ateges apa kita bakal nyana.b == ca != bab
Kaget
Nanging yen kita ngganti 500karo 100, banjur kita entuk asil sing beda banget:
| Kode | Output konsol |
|---|---|
|
|
Masalah ing kene yaiku obyek anyar ora mesthi digawe sajrone autoboxingInteger . Obyek di-cache kanggo nilai -128liwat 127inklusif.
Kelas kasebut Integernduweni array sing didhelikake sing nyimpen obyek: Integer(-128), Integer(-127), ... Integer(126),Integer(127)
Yen sampeyan nulis Integer x = 128, banjur proses autoboxing nggawe obyek anyar, nanging yen sampeyan nulis Integer x = 127, banjur proses autoboxing njupuk obyek sing wis ana saka cache (saka array).
Yen sampeyan ora pengin Integerobyek kasebut teka saka cache, sampeyan kudu nggawe kanthi jelas kanthi nulis:Integer x = new Integer(127);
Kabeh jinis pambungkus duwe cache kayata: Integer, Long, Byte, Short, Boolean. Kanggo Booleanjinis, TRUElan FALSEnilai-nilai kasebut minangka konstanta, mula uga ana cache.
GO TO FULL VERSION