Rumah > Java > javaTutorial > Mengapa Nilai Integer Di Luar Julat -128 hingga 127 Berkelakuan Berbeza dalam Kolam Malar Java?

Mengapa Nilai Integer Di Luar Julat -128 hingga 127 Berkelakuan Berbeza dalam Kolam Malar Java?

Barbara Streisand
Lepaskan: 2024-11-07 04:16:03
asal
473 orang telah melayarinya

Why Do Integer Values Outside the Range -128 to 127 Behave Differently in Java's Constant Pool?

Mengapa Gelagat Kolam Malar Integer Berbeza Selepas 127

Kolam malar untuk nombor dalam Java berbeza daripada rentetan. Walaupun hanya pemalar masa kompilasi yang dimasukkan untuk rentetan, sebarang operasi tinju melibatkan kumpulan untuk jenis pembungkus integer.

Sebagai contoh:

int x = 10;
int y = x + 1;
Integer z = y; // Not a compile-time constant
Integer constant = 11;
System.out.println(z == constant); // true
Salin selepas log masuk

JLS menjamin julat kecil nilai terkumpul , dengan pelaksanaan mempunyai pilihan untuk menggunakan julat yang lebih besar.

Secara praktiknya, kebanyakan pelaksanaan menggunakan Integer.valueOf untuk operasi tinju, yang membawa kepada tingkah laku berikut:

Integer x = Integer.valueOf(100);
Integer y = Integer.valueOf(100);
System.out.println(x == y); // true
Salin selepas log masuk

Menurut bahagian JLS 5.1.7:

Nilai antara -128 dan 127 akan sentiasa menghasilkan rujukan yang sama apabila dikotak. Ini ialah kompromi praktikal yang memastikan nilai biasa sentiasa tidak dapat dibezakan.

Walau bagaimanapun, tingkah laku berubah untuk nilai di luar julat ini. Atas sebab kecekapan, pelaksanaan mungkin tidak menganggap rujukan dikongsi untuk nilai ini.

Ini memastikan tingkah laku yang diingini dalam kebanyakan situasi tanpa menjejaskan prestasi dengan ketara. Pelaksanaan terhad memori boleh melanjutkan caching untuk merangkumi julat nilai yang lebih luas.

Atas ialah kandungan terperinci Mengapa Nilai Integer Di Luar Julat -128 hingga 127 Berkelakuan Berbeza dalam Kolam Malar Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan