Rumah >Java >javaTutorial >Analisis Soalan Contoh Pengaturcaraan Java
Soalan 1:
<code>public static void demo01() {<br> Integer f1 = 100, f2 = 100, f3 = 200, f4 = 200;<br> System.out.println(f1 == f2);<br> System.out.println(f3 == f4);<br>}</code>
Soalan 2:
<code>private static Integer i;<br>public static void demo02() {<br> if (i == 0) {<br> System.out.println("A");<br> } else {<br> System.out.println("B");<br> }<br>}</code>
Jawapan Soalan 1:
benar
salah
Jawapan Soalan 2:
NullPointerException
Analisis:
Soalan 1:
Berikut ialah kod sumber "autoboxing" dalam kelas Integer:
<code>public static Integer valueOf(int i) {<br> if (i >= IntegerCache.low && i <= IntegerCache.high)<br> return IntegerCache.cache[i + (-IntegerCache.low)];<br> return new Integer(i);<br>}<br></code>Nilai IntegerCache.low ialah -128, dan nilai IntegerCache.high ialah 127. Dalam erti kata lain, apabila Integer dikotak secara automatik, jika julat nilai integer dinilai antara [-128,127], nilai dalam kumpulan pemalar integer akan digunakan secara langsung jika ia tidak berada dalam julat ini, Integer baharu () akan diwujudkan. Oleh itu, f1 dan f2 dalam soalan ini kedua-duanya berada dalam julat [-128,127] dan menggunakan nilai yang sama dalam kolam malar. Walau bagaimanapun, f3 dan f4 tidak berada dalam julat [-128,127], dan nilainya adalah kedua-duanya baharu, jadi f3 dan f4 bukan objek yang sama.
Soalan 2:
Atas ialah kandungan terperinci Analisis Soalan Contoh Pengaturcaraan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!