- apa kelas pambungkus;
- autopacking / unpacking saka primitif;
- operasi saka kelas Integer, cara lan konstanta.
Kelas Wrapper saka jinis primitif
Kaya sing wis dingerteni, Jawa duwe macem-macem jinis data, sing bisa dipérang dadi rong blok:- primitif;
- referensi.
- wilangan bulat - byte, cendhak, int, dawa;
- angka floating point (nyata) - float, pindho;
- jinis data logis - boolean;
- jinis data karakter - char.
Tipe primitif | Kelas pambungkus |
---|---|
bait | Byte |
cendhak | Singkat |
int | Ongko |
dawa | dawa |
ngambang | ngambang |
pindho | pindho |
boolean | Boolean |
char | Watak |
Integer _
Kelas Integer minangka kelas bungkus saka jinis primitif int. Kelas iki ngemot lapangan siji saka jinis int. Minangka kelas pambungkus, Integer nyedhiyakake macem-macem cara kanggo nggarap ints, uga sawetara cara kanggo ngowahi int dadi String lan String dadi int. Ing ngisor iki kita bakal ndeleng macem-macem conto nggarap kelas. Ayo dadi miwiti karo nggawe. Sing paling umum digunakake (lan paling gampang digunakake) yaiku pilihan nggawe ing ngisor iki:
Integer a = 3;
Yaiku, initialization saka variabel Integer ing kasus iki padha karo initialization saka variabel int. Kajaba iku, variabel Integer bisa diinisialisasi kanthi nilai variabel int:
int i = 5;
Integer x = i;
System.out.println(x); // 5
Ing kasus ing ndhuwur, autopacking dumadi sacara implisit. Kita bakal ngomong luwih akeh babagan ing ngisor iki. Saliyane opsi inisialisasi ing ndhuwur, variabel Integer bisa digawe kaya obyek liyane, nggunakake konstruktor lan tembung kunci anyar:
Integer x = new Integer(25);
System.out.println(x);
Nanging, butuh wektu luwih suwe kanggo nulis lan luwih suwe kanggo maca, mula pilihan iki paling ora umum. Sampeyan bisa nindakake kabeh karo variabel Integer sing bisa ditindakake karo variabel int. Padha bisa dadi:
Lempitan |
|
Ngurangi |
|
Multiply |
|
dibagi |
|
Tambah |
|
Ngurangi |
|
Integer a = null;
Integer b = a + 1; // Здесь мы упадем с "Exception in thread "main" java.lang.NullPointerException"
System.out.println(b);
Umume operasi perbandingan ditindakake kanthi cara sing padha karo jinis primitif int:
Integer a = 1;
Integer b = 2;
System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a < b);
System.out.println(a <= b);
Output:
false
false
true
true
Operasi mbandhingake rong variabel Integer stands out. Lan titik ing kene yaiku Integer minangka jinis data referensi, lan variabel kasebut nyimpen referensi kanggo nilai, lan dudu nilai kasebut (obyek). Manifestasi kasunyatan iki bisa diamati nalika nglakokake fragmen kode ing ngisor iki:
Integer a = 1;
Integer b = 1;
Integer c = new Integer(1);
System.out.println(a == b); // true
System.out.println(a == c); // false
Asil saka podo pisanan bakal bener, lan kaloro bakal palsu. Iki kedadeyan amarga ing kasus pertama kita mbandhingake rong variabel ("a" lan "b") sing nyimpen referensi menyang obyek sing padha. Lan ing kasus kapindho, kita mbandhingake rong variabel sing nuduhake rong obyek sing beda (nalika nggawe variabel "c" kita nggawe obyek anyar). Ayo menehi conto liyane sing menarik:
Integer a = 1;
Integer b = 1;
Integer x = 2020;
Integer y = 2020;
System.out.println(a == b); // true
System.out.println(x == y); // false
Kaya sing bisa dideleng, asil perbandingan sing pertama bener, lan asil sing nomer loro salah. Iku kabeh babagan cache. Kabeh integer ing kisaran saka -128 nganti 127 kalebu (nilai kasebut bisa disesuaikan) di-cache. Dadi nalika nggawe variabel anyar lan menehi nilai integer antarane -128 lan 127, kita ora nggawe obyek anyar, nanging menehi referensi kanggo obyek sing wis digawe ing cache. Saiki, ngerti kasunyatan iki, conto ing ndhuwur ora katon banget mistis. Variabel a lan b nuduhake obyek sing padha - obyek saka cache. Lan sak initialization saka variabel x lan y, kita nggawe obyek anyar saben wektu, lan variabel iki disimpen referensi kanggo obyek beda. Lan sampeyan ngerti, operator == mbandhingake nilai-nilai variabel, lan nilai-nilai variabel referensi minangka referensi. Kanggo mriksa kesetaraan ing antarane rong variabel Integer kanthi akurat, sampeyan kudu nggunakake (ora ketompo carane ora pati penting bisa diarani) metode sing padha. Ayo nulis maneh conto ing ndhuwur:
Integer a = 1;
Integer b = 1;
Integer x = 2020;
Integer y = 2020;
System.out.println(a.equals(b)); // true
System.out.println(x.equals(y)); // true
Autopacking lan unpacking Integer
Apa auto packing lan unpacking? Nalika nggawe variabel Integer anyar, kita nggunakake konstruksi ing ngisor iki:Integer a = 2020;
Kanthi cara iki kita nggawe obyek anyar tanpa nggunakake operator tombol anyar. Iki bisa amarga mekanisme autopacking saka jinis primitif int. Prosedur mbalikke dumadi nalika nemtokake variabel int primitif menyang nilai variabel referensi Integer:
Integer a = 2020;
int x = a;
Ing kasus iki, kita katon wis menehi referensi (yaiku referensi kanggo obyek yaiku nilai variabel "a") menyang variabel primitif. Nanging nyatane, amarga mekanisme unpacking otomatis, nilai 2020 ditulis ing variabel "x". Auto-packing / unpacking minangka fenomena sing umum banget ing Jawa. Asring kedadeyan dhewe, kadhangkala tanpa kawruh programer. Nanging sampeyan isih kudu ngerti babagan fenomena iki. Kita duwe artikel menarik babagan topik iki ing Javarush .
Konstanta kelas integer
Kelas Integer nyedhiyakake macem-macem konstanta lan cara kanggo nggarap integer. Ing bagean iki kita bakal nliti sawetara ing laku. Ayo dadi miwiti karo konstanta. Tabel ing ngisor iki nuduhake kabeh konstanta kelas:Costanta | Katrangan |
---|---|
UKURAN | Jumlah bit ing sistem nomer rong digit dikuwasani dening jinis int |
BYTES | Jumlah bita ing sistem nomer rong digit dikuwasani dening jinis int |
MAX_VALUE | Nilai maksimum sing bisa ditahan jinis int |
MIN_VALUE | Nilai minimal sing bisa ditahan jinis int |
JENIS | Ngasilake obyek saka jinis Kelas saka jinis int |
public static void main(String[] args) {
System.out.println(Integer.SIZE);
System.out.println(Integer.BYTES);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.TYPE);
}
Akibaté, kita entuk output ing ngisor iki:
32
4
2147483647
-2147483648
int
Metode saka kelas Integer
Saiki ayo goleki kanthi cepet cara sing paling akeh digunakake ing kelas Integer. Dadi, sing "ndhuwur" dipimpin kanthi cara kanggo ngowahi nomer saka senar, utawa ngonversi senar saka nomer. Ayo dadi miwiti karo Ngonversi string menyang nomer. Cara parseInt digunakake kanggo tujuan kasebut , tandha tangan ing ngisor iki:-
static int parseInt(String s)
int i = Integer.parseInt("10");
System.out.println(i); // 10
Yen konversi ora bisa - contone, kita ngirim tembung menyang metode parseInt - NumberFormatException bakal dibuwang. Metode parseInt(String s) duwe sedulur sing kakehan:
-
static int parseInt(String s, int radix)
System.out.println(Integer.parseInt("0011", 2)); // 3
System.out.println(Integer.parseInt("10", 8)); // 8
System.out.println(Integer.parseInt("F", 16)); // 15
Metode parseInt ngasilake jinis data primitif int. Cara kasebut duwe analog - metode valueOf . Sawetara variasi saka cara iki mung nelpon parseInt internal. Bentenane saka parseInt yaiku asil saka valueOf bakal dadi Integer, dudu int. Ayo goleki kabeh opsi kanggo metode iki lan conto cara kerjane ing ngisor iki:
- statis Integer valueOf (int i) - ngasilake Integer kang nilai i;
- statis Integer valueOf (String s) - padha karo parseInt (String s), nanging asil bakal Integer;
- statis Integer valueOf(String s, int radix) - padha karo parseInt (String s, int radix), nanging asil bakal Integer.
int a = 5;
Integer x = Integer.valueOf(a);
Integer y = Integer.valueOf("20");
Integer z = Integer.valueOf("20", 8);
System.out.println(x); // 5
System.out.println(y); // 20
System.out.println(z); // 16
Kita ndeleng cara sing ngidini sampeyan ngowahi String dadi int/Integer. Prosedur mbalikke ditindakake kanthi nggunakake metode toString . Sampeyan bisa nelpon metode toString ing sembarang obyek Integer lan entuk perwakilan string:
Integer x = 5;
System.out.println(x.toString()); // 5
Nanging, amarga kasunyatan manawa metode toString asring diarani sacara implisit ing obyek (contone, nalika ngirim obyek menyang console kanggo dicithak), metode iki jarang digunakake kanthi tegas dening pangembang. Ana uga cara statis toString, sing njupuk parameter int lan ngowahi dadi perwakilan senar. Tuladhane:
System.out.println(Integer.toString(5)); // 5
Nanging, kaya metode toString non-statis, nggunakake metode statis kanthi eksplisit arang banget. Sing luwih menarik yaiku metode statis toString, sing njupuk 2 parameter integer:
- String statis toString (int i, int radix) - bakal ngowahi i dadi perwakilan string ing sistem nomer radix.
System.out.println(Integer.toString(5, 2)); // 101
Kelas Integer duwe sawetara cara kanggo nemokake maksimum / minimal rong nomer:
- statis int max (int a, int b) bakal ngasilake nilai paling gedhe ing antarane variabel sing dilewati;
- static int min(int a, int b) bakal ngasilake nilai paling cilik ing antarane variabel sing dilewati.
int x = 4;
int y = 40;
System.out.println(Integer.max(x,y)); // 40
System.out.println(Integer.min(x,y)); // 4
Kesimpulan
Ing artikel iki kita ndeleng kelas Integer. Kita ngomong babagan kelas apa iki lan kelas bungkus apa. Kita nyawang kelas saka sudut pandang praktis. Kita ndeleng conto operasi aritmetika, kalebu operasi perbandingan. We njupuk dipikir ing intricacies mbandingaken loro variabel Integer, lan sinaoni konsep obyek cached. Kita uga nyebutake fenomena packing otomatis / unpacking jinis data primitif. Kajaba iku, kita bisa ndeleng sawetara cara saka kelas Integer, uga sawetara konstanta. Dheweke menehi conto ngonversi nomer saka siji sistem nomer menyang liyane.Peer
-
Sinau apa metode kelas Integer liyane (sampeyan bisa sinau ing situs web kanthi dokumentasi resmi ), tulis ing komentar babagan metode sing wis sampeyan sinau (ora kalebu sing diwenehake ing artikel kasebut) sing paling migunani kanggo sampeyan ( bakal digunakake sampeyan paling kerep). Lan uga menehi alasan kanggo pendapat sampeyan.
PS Ora ana jawaban sing bener ing kene, nanging kegiatan iki bakal ngidini sampeyan sinau kelas kanthi luwih apik.
-
Ngatasi masalah prasaja cilik kanggo nggabungake materi.
Kita duwe rong nomer:
1100001001 - ing sistem angka biner
33332 - ing sistem angka kuinerSampeyan perlu, nggunakake mung cara saka kelas Integer, kanggo nemtokake maksimum antarane rong nomer diwenehi, lan banjur nuduhake prabédan antarane nilai maksimum lan minimal ing sistem nomer ternary.
-
Ngonversi nilai Integer maksimal menyang sistem angka octal lan nampilake nomer digit ing nomer asil (ngetung nomer kanthi program).
GO TO FULL VERSION