Integer對象范圍(-128-127)之間(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用

?Integer. valueOf()可以將基本類型int轉換為包裝類型Integer,或者將String轉換成Integer,String如果為Null或“”都會報錯

看下面代碼示例

取值為127時

?

?

取值為128時

?

為什么會是這樣呢?
首先,我們看一下雙等號“ == ”和equals()方法的不同之處。
雙等號“ == ”,對于基本數據類型,比較的是它們的值。
對于非基本類型,比較的是它們在內存中的存放地址,或者說是比較兩個引用是否引用內存中的同一個對象。

equals()是在Object基類中定義的方法。
這個方法的初始行為是比較對象的內存地址,但在一些類庫中,這個方法被覆蓋掉了,如String,Integer,Date等。在這些類當中equals有其自身的實現,而不再是比較類在堆內存中的存放地址了。
對于復合數據類型之間進行equals比較,在沒有覆寫equals方法的情況下,它們之間的比較還是基于他們在內存中的存放位置的地址值的,因為Object的equals方法也是用雙等號“ == ”進行比較的,所以比較后的結果跟雙等號“ == ”的結果相同。

?

?

?

看下源碼:

?

?

從下面的源碼可以看出,valueOf()在返回之前,會進行判斷,判斷當前 i的值是否在 -128到127之間。
如果存在,則直接返回引用,不再重新開辟內存空間。
如果不存在,就創建一個新的對象。
利用緩存,這樣做既能提高程序執行效率,還能節約內存。

?

在Integer類裝載入內存時,把[-128, 127]范圍內的整型數據裝包成Integer類,并將其對應的引用放入到cache數組中。

從上面的源碼可以看出,valueOf()在返回之前,會進行判斷,判斷當前 i的值是否在 -128到127之間。
如果存在,則直接返回引用,不再重新開辟內存空間。
如果不存在,就創建一個新的對象。
利用緩存,這樣做既能提高程序執行效率,還能節約內存。

Integer a1= 127; Integer a2?= 127; 因為 IntegerCache中已經存在此對象,直接返回引用,引用相等并且都指向緩存中的數據,所以這時候a1 == a2返回true。

Integer a1 = 128; Integer a2 = 128;因為a1,a2的值大于127,不在[-128, 127]范圍內,所以虛擬機會在堆中重新new一個 Integer對象來存放128,創建兩個對象就會產生兩個這樣的空間。兩個空間的地址不同,返回到棧中的引用的值也就不同,所以這時候a1 == a2返回false。
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271461.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271461.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271461.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

操作系統基礎:進程知識筆記(三)

1、死鎖概念知識 計算機中存在許多互斥資源(打印機)、軟件資源(進程表、臨界區)如果兩個進程同時調用打印機,或同時進入臨界區必然會出現問題。 死鎖:指兩個以上的進程互相要求對方已經占有的資源導致無法繼…

垂直梯形校正畫質損失多少_梯形校正功能是怎么實現的?其中可大有學問

梯形校正這個概念,想必大部分投影儀用戶早已耳熟能詳。所謂的梯形校正,指的是當我們的投影儀位置擺放不正時,投射出來的畫面會是一個梯形,這時候需要通過投影儀的梯形校正功能將畫面調整為可以正常觀看的矩形。雖然目前市場上的大…

操作系統基礎:存儲管理知識筆記(一)

1、存儲器基礎知識 存儲器管理的對象是主存或內存,存儲器是計算機系統中非常關鍵的資源,用來存放各種信息的主要場所。存 儲器管理功能主要包括:主存空間的分配和回收、提供主存利用率、擴充主存、主存信息的保護。 2、存儲器結構 存儲器結構…

asp點擊按鈕sql列求和_助你2020晉級互聯網大數據陣營(一):輕輕松松學SQL

毫不負責任的說,你和數據科學家最大的鴻溝,就差一個SQL語言:)入門后,后面的事情就簡單了為了幫大家盡快入門Hive SQL、學會提數和分析,實現在大數據領域大干一場的愿望,幫你準備好了數據,準備好…

冪等和高并發在電商系統中的使用

在Java web項目開發中,經常會聽到在做訂單系統中生成訂單的時候,要做冪等性控制和并發控制,特對此部分內容作出總結,在高并發場景下,代碼層面需要實現并發控制;但是冪等性,其實更多的是系統的接…

@transactional注解失效情況

先來了解一下Transactional注解事務的特性吧,可以更好排查問題 1、service類標簽(一般不建議在接口上)上添加Transactional,可以將整個類納入spring事務管理,在每個業務方法執行時都會開啟一個事務,不過這些事務采用相同的管理方…

計算機c盤隱藏了怎么辦,win7怎么隱藏c盤 win7c盤被隱藏了怎么解除

很多的電腦用戶擔心其他用戶在使用電腦時修改c盤中的重要文件,所以會將c盤設置為隱藏,那么大家知道在win7系統中怎么隱藏c盤嗎?方法很簡單,下面小編為大家帶來win7隱藏c盤的詳細教程,不知道怎么隱藏的朋友可以查看下面的教程學習…

操作系統基礎:存儲管理知識筆記(二)

一、分頁存儲管理 1、分頁存儲管理介紹 1.1 分頁原理 頁:將一個進程的地址空間劃分為若干個大小相等的區域稱為頁。 塊、頁框:主存空間劃分成與頁相同的若干個物理塊。 1.2 地址結構 分頁系統地址結構:前一部分為頁號;后一部分為頁…

人工智能 信道估計 深度學習_DEMO演示|基于IVP02D 人工智能工作站的深度學習引擎,實現人群熱力估計...

近年來,隨著深度學習在計算機視覺領域獲得廣泛應用,算法框架也日漸成熟,例如基于深度神經網絡的人群密度分析,通過自動學習能獲得更有效的人群特征,相較于傳統方法取得了一定的提高。AI小知識人群密度分析(…

SPSS學習中涉及的統計知識

1、獨立性檢驗 2、方差分析中方差齊性檢驗 3、非參數檢驗 4、p-p圖 5、卡方檢驗:研究分類因變量與分類自變量的關系。獨立性檢驗 6、t檢驗:研究連續因變量與分類自變量的關系。 7、啞變量 總結: 因變量連續,自變量連續&#xff0c…

vscode kite插件_微軟發布 VS Code Python 插件 7 月更新

微軟發布了 7 月的 Visual Studio Code Python 擴展更新,此版本總共修復了 51 個問題,其中包括:支持新的語言服務器:PylanceGather 擴展將 Notebook 導出為 HTML 和 PDF調試器的反向連接支持新的語言服務器:PylancePyl…

360瀏覽器打不開微信的連接服務器,上午還能打開,下午360瀏覽器打不開微信公 – 手機愛問...

2011-08-27ie,搜狗,谷歌瀏覽器都打不開,說打不開ipad說服務器超時是新浪在更新設備嗎?一般你能進入愛問就可以進入郵箱,下面的方法看看(如果你是鐵通的可能是鐵通的問題)。可能是服務器故障引起的,請不要著…

域名還能綁定動態IP?看完又漲知識了!!

點擊上方藍色“冰河技術”,關注并選擇“設為星標”持之以恒,貴在堅持,每天進步一點點!作者個人研發的在高并發場景下,提供的簡單、穩定、可擴展的延遲消息隊列框架,具有精準的定時任務和延遲隊列處理功能。…

java 及時釋放內存_JMM(一):初識Java內存模型

在并發編程中,線程之間的通信是一個很關鍵的問題,而該問題解決方案主要可分為兩大類:消息傳遞、共享內存。前者有以Erlang語言為代表的Actor模型,而后者中典型的則是Java語言。對于消息傳遞機制而言,線程之間必須通過發…

php 復習

對所學知識的依次基礎的總結 <?php一.php基礎語法 1.輸出語句&#xff1a;**echo(可以輸出多個字符串); print&#xff08;輸出一個字符串&#xff09;; print_r&#xff08;輸出數組&#xff09;; **var_dump()&#xff08;具體 的數據 還有它的類型&#xff09;;2.php是弱…

mac新建文件夾快捷鍵

mac新建文件夾快捷鍵 COMMAND SHIFT N

python382怎么用_用python做UDP連接

寫個客戶端 #!/usr/bin/env python from socket import * HOST 10.2.167.115 PORT 20001 BUFSIZE 1024 ADDR (HOST, PORT) udpClientSock socket(AF_INET, SOCK_DGRAM) while True: data raw_input(Enter the message you want to send >) if not data: break udpClie…

更新系統后魔獸世界無法連接至服務器,《魔獸世界:熊貓人之謎》5.0launcher更新無法連接服務器解決方法...

早上launcher一半的時候&#xff0c;出現無法鏈接服務器&#xff0c;并且自動關閉。測試多種辦法&#xff0c;已經解決。1、打開目錄x:/world of warcraft/temp2、運行目錄下&#xff1a;wow-4.3-5.0.15890-zhcn-downloader.exe (一個英文下載器)3、報錯could not connect to t…

電腦維修知識:電腦常見故障維修大全及解決方法

電腦已經成為我們學習生活娛樂必不可少的設備了&#xff0c;用得時間久了難免會遇到小故障&#xff0c;今天我們一起來看下遇到常見的電腦方面的小故障&#xff0c;我們應該如何去自己檢測和維修吧。電腦檢測故障我們還是要從電腦的幾大硬件開始檢查起。1、CPU打開機箱查看CPU風…

工程圖樣中粗實線的用途_圖紙天天畫,粗實線和細實線的線寬比例是多少?2:1還是3:1?...

點擊上方頭條號“機械設計一點通”關注我們&#xff0c;每天學習一個機械設計相關知識點我們知道&#xff1a;機械制圖中為了表示不同內容&#xff0c;并能分清主次&#xff0c;必須使用不同線型。圖線的線型由線寬和線素長度等構成&#xff0c;機械制圖中各種線型都有相應寬度…