1. Dhaptar jinis primitif
Basa Jawa nduweni 8 jinis primitif dhasar. Disebut primitif amarga nilai-nilai saka jinis kasebut dudu obyek lan disimpen langsung ing variabel.
Mangkene tabel kanthi sawetara informasi ringkes babagan jinis iki:
Jinis | Ukuran ing bita |
Range nilai | Nilai standar | Katrangan |
---|---|---|---|---|
byte |
1 | -128 .. 127 | 0 |
Jinis integer paling cilik yaiku bait tunggal |
short |
2 | -32.768 .. 32.767 | 0 |
Integer cendhak, rong bita |
int |
4 | -2*10 9 .. 2*10 9 | 0 |
Integer, 4 bita |
long |
8 | -9*10 18 .. 9*10 18 | 0L |
Integer dawa, 8 bita |
float |
4 | -10 38 .. 10 38 | 0.0f |
Nomer floating-point, 4 bita |
double |
8 | -10 308 .. 10 308 | 0.0d |
Nomer floating point presisi kaping pindho, 8 bita |
boolean |
1 | true ,false |
false |
Tipe Boolean (mung true lan false ) |
char |
2 | 0 .. 65.535 | '\u0000' |
Karakter, 2 bita, kabeh luwih saka 0 |
Miturut cara, ing kene ana nuansa penting. Yen sampeyan ngumumake variabel conto (lapangan) utawa variabel kelas statis lan ora langsung nemtokake nilai kasebut, mula diinisialisasi kanthi nilai standar . Tabel nampilake dhaptar nilai kasebut.
Variabel lokal ing sawijining metode ora duwe nilai standar. Yen sampeyan ora nemtokake nilai kanggo variabel kasebut, dheweke dianggep ora dikawruhi lan ora bisa digunakake.
Nanging ayo bali menyang jinis primitif lan deleng kanthi luwih rinci.
2. Jinis integer
Jawa nduweni 4 jinis integer: byte
, short
, int
lan long
. Padha beda-beda ing ukuran lan sawetara nilai sing bisa disimpen.
int
jinis
Sing paling umum digunakake yaiku int
jinis. Jeneng kasebut asale saka tembung int eger (wilangan wutuh). Kabeh integer literals (wilangan wutuh) ing kode ints
(yen padha ora mungkasi ing L
, F
, utawa D
).
Variabel saka jinis iki bisa njupuk nilai saka -2,147,483,648
kanggo +2,147,483,647
.
Sing akeh lan cukup kanggo meh kabeh kesempatan. Meh saben fungsi sing ngasilake nomer ngasilake int
.
Tuladha:
Kode | Panjelasan |
---|---|
|
Cara kasebut length() ngasilake dawa senar |
|
Lapangan length ngemot dawa array. |
short
jinis
Jinis kasebut short
entuk jenenge saka short int
. Iki uga asring disebut integer cendhak . Ora kaya int
jinis, dawane mung rong bita lan sawetara nilai sing bisa ditindakake yaiku saka -32,768
nganti +32,767
.
Tegese sampeyan ora bisa nyimpen nomer siji yuta ing. Utawa malah 50.000. Iki minangka jinis integer sing paling jarang digunakake ing Jawa. Motivasi utama kanggo nggunakake iku kanggo ngreksa memori.
Upamane sampeyan duwe kahanan sing ngerti sadurunge sampeyan bakal nggarap nilai sing ora bakal ngluwihi 30.000, lan bakal ana jutaan nilai kasebut.
Contone, umpamane sampeyan nulis aplikasi sing ngolah gambar definisi ultra-dhuwur sing nggunakake 10
-bit saben warna. Lan sampeyan duwe yuta piksel ing gambar sampeyan. Iki minangka skenario ing ngendi keputusan kanggo nggunakake int
utawa short
penting.
long
jinis
Jinis iki entuk jeneng saka long int
lan uga disebut integer dawa . Boten kados int
jinis, iku wis sawetara fabulously gedhe tenan saka nilai: saka kanggo .-9*1018
+9*1018
Napa dudu jinis integer dhasar?
Amarga Jawa muncul ing pertengahan 90s, nalika paling komputer 32-bit. Tegese kabeh pemroses wis dioptimalake kanggo nggarap angka sing dumadi saka 32 bit. Prosesor bisa digunakake kanthi wilangan bulat 64-bit, nanging operasi kasebut luwih alon.
Akibaté, programer cukup mutusake kanggo nggawe int
jinis integer standar, lan nggunakake long
jinis kasebut mung yen perlu.
byte
jinis
Iki minangka jinis integer paling cilik ing Jawa, nanging adoh saka sing paling ora digunakake. Jenenge, byte
, uga tembung kanggo blok memori paling cilik sing bisa dialamatake ing Jawa.
Ora ana akeh nilai sing bener kanggo byte
jinis kasebut: saka -128
nganti +127
. Nanging dudu kekuwatane. Jinis iki byte
paling kerep digunakake nalika sampeyan kudu nyimpen data gumpalan gedhe ing memori. Uploaded byte
s becik kanggo maksud iki.
Upaminipun sampeyan kudu nyalin file nang endi wae.
Sampeyan ora perlu ngolah isi file: sampeyan mung pengin nggawe area memori (buffer), nyalin isi file kasebut, banjur tulis data kasebut saka buffer menyang file liyane. A byte
larik apa sing perlu kanggo iki.
Elinga yen variabel array mung nyimpen referensi menyang area memori. Nalika variabel liwati kanggo sawetara cara, mung alamat memori liwati. Blok memori dhewe ora disalin.
byte[] buffer = new byte[1024*1024];
FileInputStream sourceFile = new FileInputStream("c:\\data.txt");
FileOutputStream destFile = new FileOutputStream("c:\\output.txt");
while (true)
{
int size = sourceFile.read(buffer); // Read data from a file into a buffer
destFile.write(buffer, 0, size); // Write data from the buffer to a file
// Stop copying if the buffer is not full
if (size < buffer.length) break;
}
sourceFile.close();
destFile.close();
3. Jinis nyata
Jinis primitif kalebu rong jinis kanggo nomer nyata. Sanajan ora sakabehe akurat nggunakake istilah kasebut. Nalika komputer nangani nomer nyata, kita nelpon nomer floating-point . Jeneng kasebut asalé saka standar kanggo makili nomer, ing ngendi bagéan integer lan pecahan saka nomer dipisahake karo titik (titik, dudu koma).
Saben negara duwe standar dhewe kanggo nulis nomer (kaget!).
Akeh wong sing biasa nggunakake titik kanggo misahake ewu lan koma minangka pemisah desimal: contone, dheweke bakal nulis one million ones and 153 thousandths
minangka 1.000.000,153
. Nanging ing Amerika Serikat, ing ngendi para pangripta Jawa manggon, standar sing beda diadopsi:1000000.153
Jawa nduweni rong jinis primitif floating-point: double
lan float
.
Kaya sing wis dakkandhakake sadurunge, jinis kasebut duwe susunan internal sing spesifik: nyatane, ing saben variabel jinis kasebut ora ana siji nomer, nanging loro:
Contone, angka floating-point 987654.321
bisa dituduhake minangka . Banjur ing memori bakal dituduhake minangka rong nomer ( mantissa , yaiku bagean penting saka nomer) lan ( eksponen , yaiku daya sepuluh)0.987654321*106
987654321
6
float
jinis
Jeneng float
jinis kasebut asale saka nomer float ing-point . Ukuran jinis iki cukup cilik - mung 4 bita (32 bit) - nanging bisa nyimpen nilai saka nganti . 24 bit dialokasikan kanggo makili mantissa, lan 8 bit kanggo eksponen. Jinis iki mung bisa nyimpen 8 digit penting.-3.4*1038
3.4*1038
Pendekatan iki ndadekake iku bisa kanggo nyimpen nomer luwih gedhe tinimbang int
, nalika nggunakake padha 4 bait. Nanging kanggo nindakake, kita kurban akurasi. Amarga bagéan saka memori nyimpen mantissa, nyimpen variabel iki mung 6-7 panggonan desimal nalika liyane dibuwak.
Tuladha:
Kode | Nilai |
---|---|
|
123.45679 |
|
12346.0 |
|
-1.2345679 |
Nalika sampeyan bisa ndeleng, drawback utama jinis iki nomer banget cilik saka angka pinunjul, lan mundhut saka tliti sanalika digit kawolu. Mulane float
jinis iki ora populer banget ing kalangan programer Java.
double
jinis
Jinis kasebut double
minangka jinis floating-point standar. Jeneng kasebut asale saka nomer floating-point presisi ganda . Kabeh literals nyata double
minangka standar.
Jinis iki njupuk 8 bita memori (64 bit) lan bisa nyimpen nilai saka kanggo . Sing penting kanggo ngerti yaiku 53 bit diparengake kanggo mantissa, dene 11 sing isih ana kanggo eksponen.-1.7*10308
1.7*10308
Iki ngidini 15-17 digit penting kanggo disimpen.
Tuladha:
Kode | Nilai |
---|---|
|
1234567890.1234567 |
|
1234567890.1234512 |
|
1234567890.1357913 |
Presisi iki, utamane yen dibandhingake karo float
jinis kasebut, nemtokake: 99% kabeh operasi kanthi nomer nyata ditindakake kanthi nggunakake double
jinis kasebut.
11
bit diparengake kanggo exponent, kang tegese sampeyan bisa nyimpen kakuwasan saka sepuluh saka -323
kanggo +308
(sing daya saka loro saka -1024
kanggo +1023
). Jinis kasebut double
bisa gampang nyimpen nomer kanthi atusan nol sawise titik desimal:
Kode | Nilai |
---|---|
|
600.0 |
4. Tanpa wates
Nomer floating-point duwe fitur liyane sing menarik: bisa nyimpen nilai khusus sing ora ana watese . Lan sampeyan bisa makili tanpa wates positif lan tanpa wates negatif .
Tuladha:
Kode | Cathetan |
---|---|
|
|
|
|
|
|
Yen tanpa wates dikalikake karo nomer, sampeyan bakal entuk tanpa wates. Yen sampeyan nambahake nomer menyang tanpa wates, sampeyan bakal entuk tanpa wates. Sing super trep.
Ora nomer ( NaN
)
Sembarang operasi sing nglibatake infinity ngasilake infinity. Inggih, paling nanging ora kabeh.
Nomer floating-point bisa nyimpen nilai khusus liyane NaN
:. Iku cendhak kanggo N ot a N nomer (dudu nomer).
Ing matématika, yen dibagi tanpa wates karo tanpa wates, asil ora ditemtokake.
Nanging, ing Jawa, yen dibagi tanpa wates karo tanpa wates, asile NaN
.
Tuladha:
Kode | Cathetan |
---|---|
|
|
|
|
|
|
Sembarang operasi kanthi NaN
ngasilake NaN
.
5. char
jinis
Ing antarane jinis primitif Jawa , siji kudu diwenehi perhatian khusus: jinis char
. Jeneng kasebut asale saka tembung char acter , lan jinis kasebut digunakake kanggo nyimpen karakter.
Karakter yaiku apa sing digawe senar, ta? String minangka susunan karakter.
Nanging sing luwih menarik yaiku kasunyatan manawa char
jinis kasebut uga jinis numerik ! Iku jinis dual-tujuan, supaya bisa ngomong.
Kasunyatane yaiku char
jinis kasebut dudu karakter. Nanging, nyimpen kode karakter saka enkoding Unicode. Saben karakter cocog karo nomer: kode angka karakter.
Saben char
variabel manggoni rong bait ing memori (padha karo short
jinis). Nanging ora kaya short
jinis, char
jinis integer ora ditandatangani lan bisa nyimpen nilai saka 0
nganti 65,535
.
Jinis kasebut char
minangka jinis hibrida. Nilai kasebut bisa diinterpretasikake minangka angka (contone, bisa ditambah lan dikalikan) lan minangka karakter. Iki ditindakake amarga sanajan karakter minangka representasi visual, kanggo komputer, iku mung nomer. Lan luwih trep kanggo nggarap dheweke minangka nomer.
Unicode
Unicode minangka tabel khusus (encoding) sing ngemot kabeh karakter ing jagad iki. Lan saben karakter duwe nomer dhewe. Iku katon kira-kira kaya iki:
Ana macem-macem cara kanggo nemtokake nilai menyang char
variabel.
Kode | Katrangan |
---|---|
|
Variabel kasebut a bakal ngemot huruf Latin A . |
|
Variabel kasebut a bakal ngemot huruf Latin A . Kodene yaiku 65 . |
|
Variabel kasebut a bakal ngemot huruf Latin A . Kode kasebut yaiku 65 , sing padha 41 karo sistem heksadesimal. |
|
Variabel kasebut a bakal ngemot huruf Latin A . Kode kasebut yaiku 65 , sing padha 41 karo sistem heksadesimal. Loro nul ekstra ora ngganti apa-apa. |
|
Variabel kasebut a bakal ngemot huruf Latin A . Cara liya kanggo nemtokake karakter kanthi kode. |
Paling asring, wong mung nuduhake karakter ing tandha petik (kaya ing baris pisanan saka tabel). Sing jarene, cara sing terakhir uga populer. Kauntungane yaiku bisa digunakake ing senar.
Lan kaya sing wis dakkandhakake, char
jinis kasebut uga minangka jinis integer, supaya sampeyan bisa nulis kaya iki:
Kode | Output konsol |
---|---|
|
Huruf Latin B bakal ditampilake ing layar. Amarga : A --- 65 B _66 C 67 |
Nggarap char
s
Saben char
nomer pisanan nomer (kode karakter), lan banjur karakter. Yen sampeyan ngerti kode karakter, sampeyan bisa tansah njaluk karakter ing program. Tuladha:
Kode | Output konsol |
---|---|
|
|
Kode standar
Ing ngisor iki kode karakter sing paling misuwur:
aksara | Kode |
---|---|
0 ,,, ... 1 _2 9 |
48 ,,, ... 49 _50 57 |
a ,,, ... b _c z |
97 ,,, ... 98 _99 122 |
A ,,, ... B _C Z |
65 ,,, ... 66 _67 90 |
6. boolean
jinis
Lan jinis primitif pungkasan yaiku boolean
.
Nalika sampeyan wis ngerti, iku mung bisa njupuk rong nilai: true
lan false
.
Lan kanthi mangkono, sampeyan wis ngerti kabeh sing kudu dingerteni babagan jinis iki.
GO TO FULL VERSION