Rumah >Java >javaTutorial >Mengapa Kolam Malar Integer Java Berkelakuan Berbeza Di Atas 127?
Soalan: Perbezaan dalam Kelakuan Kolam Pemalar Integer Java pada 127
Pengenalan:
The Kumpulan pemalar integer ialah mekanisme dalam Java yang mengoptimumkan caching nilai integer biasa untuk meningkatkan prestasi. Walau bagaimanapun, gelagat kumpulan ini menunjukkan perubahan pada 127, menimbulkan kekeliruan dalam kalangan pembangun.
Memahami Gelagat:
Untuk integer antara -128 hingga 127 , Java menjamin rujukan yang sama untuk pembolehubah yang merujuk pemalar yang sama.
Integer i1 = 127; Integer i2 = 127; System.out.println(i1 == i2); // True
Ini kerana nilai-nilai ini dicache dalam kumpulan pemalar.
Capah pada 128:
Walau bagaimanapun, apabila nilai integer melebihi 127, tingkah laku berubah.
Integer i1 = 128; Integer i2 = 128; System.out.println(i1 == i2); // False
Ini disebabkan oleh pengoptimuman pelaksanaan. Walaupun JLS menjamin caching untuk nilai sehingga 127, di luar julat itu, pelaksanaan mungkin memilih untuk menyimpan nilai secara berbeza atau bahkan tidak sama sekali.
Pertimbangan Tambahan:
Malah dalam julat yang dijamin (-128 hingga 127), tingkah laku caching tidak selalu boleh dipercayai. Contohnya, menggunakan Integer() baharu boleh memintas kumpulan pemalar dan mencipta rujukan baharu.
Integer i1 = new Integer(127); Integer i2 = new Integer(127); System.out.println(i1 == i2); // False
Kesimpulan:
Kelakuan kumpulan pemalar Integer pada 127 berpunca daripada pengoptimuman pelaksanaan dan julat terjamin yang ditakrifkan oleh JLS. Pembangun harus sedar tentang perubahan tingkah laku ini untuk mengelakkan hasil yang tidak dijangka.
Atas ialah kandungan terperinci Mengapa Kolam Malar Integer Java Berkelakuan Berbeza Di Atas 127?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!