Java 程式設計實例題目分析
java
題目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>
登入後複製
題目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>
登入後複製
題目1答案:
true
false
題目2答案:
NullPointerException
解析:
題目1:
以下是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>
登入後複製
其中IntegerCache.low的是值是-128,IntegerCache.high的值是127。也就是說,Integer在自動裝箱時,如果判斷整數值的範圍在[-128,127]之間,則直接使用整數常數池中的值;如果不在此範圍,則會new 一個新的Integer() 。因此,本題f1和f2都在[-128,127]範圍內,使用的是常數池中同一個值。而f3和f4不在[-128,127]範圍內,二者的值都是new出來的,因此f3和f4不是同一個物件。
題目2:
Integer i 的預設值是null。執行 i==0 時,等號右側是數字,因此為了進行比較操作,Integer會進行自動拆箱(也就是將Integer轉為int型別)。很明顯,如果對null進行拆箱(將null轉為數字),就會報NullPointerException。
以上是Java 程式設計實例題目分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)