Java資料類型沒學會?因為姿勢沒用對!
小故事
大家好,我是node哥哥,江湖人稱青哥,最近看那本很火的《Java從入門到入土》非常入迷,聽說在各大書城的銷售排行榜上穩居第一名?看來愛學習的小夥伴還是很多的呀!都說知識改變命運,Java成就人生,這麼看來我當初下定決心學習Java的選擇是多麼的正確!

不過話說回來,這本書寫的確實不錯,但畢竟我剛入門,有一些小知識點還有點疑惑,比如剛學習的資料類型,這對於零基礎的我來說還是有些難度的。
這一天,我在CSDN上正無聊閒逛,看到一篇部落格:【資料結構與演算法05 ,紅黑樹 看完包懂~ 】 。說實話看到這樣的文章我是非常不屑的,紅黑樹?是什麼樹?怎麼一半紅一半黑的?看完包包懂?萬一我懂一半呢?那不是難產了?哼!讓我來我看看你是什麼妖魔鬼怪。
小手輕輕一點,我進來了。一開始我是非常不以為然的,可是,越往下,我越吃驚……兩分鐘後,我差點跪下了!這寫的太好了吧,怎麼感覺比書裡講的還詳細的多呢(雖然沒看懂)!看看這滿滿的乾貨,這清新脫俗的文字,這滿屏幕的【知識】,我怎麼忍心錯過呢?還不讓他趕緊去我的收藏夾吃灰?看我關注、按讚、收藏,一波三連,把大佬安排的明明白白。
懷著激動的心情,我悄悄點開大佬的對話框。
我:大佬,在嗎?
過了一小會,大佬居然回信了!
武哥:在~ 有什麼事嗎?
我:(不知道怎麼組織語言)額..大佬…你很帥!太牛x了!
武哥:害!這不是公認的嗎?
我:(一腦門黑線,敢情這大佬有點自戀啊,我只是商業吹捧一下,他還挺自居?)哈哈~大佬,是這樣的,我是一個學習Java的小白白,請問可以帶我嗎?
武哥:嗯…這個…也可以,我收費的哦
我:(心想果然是大佬,還收費)大佬,我非常喜歡Java,最近還買了一本書學習,書名是《Java從入門到入土》,我覺得這本書蠻好,但我有點小疑惑,想請教下學習的小問題,你看能不能開個後門?
武哥:那…行吧。看在你這麼好學的份上,我就給你指點指點,你現在學到哪裡了?
我:我剛學到Java基礎呢,看到資料結構這地方有點小懵圈~
武哥:這好說,我當年學Java基礎可足足花了大半年呢!基礎非常紮實的哦,我可以帶著你一起過這塊的知識點。
我:真的嗎?大佬!那太感謝你了!回頭我請你吃飯!
武哥:小問題,小問題。我看你也在合肥?
我:是呀~(有點慌,悄悄點開大佬的個人資料,莫非…)
武哥:哈哈,巧了!我也在呢!
我:啊哈?這麼巧?那要不要…(看來一餐跑不掉了,我哭…)
武哥:你加我個微信,我給你發個定位,咱們細聊。
我:(這就…面基了?才幾分鐘的交流?大佬都這麼騷的嗎?雖然心裡不太願意,但是身體卻很誠實)emm…好的,我這就過去…
武哥:好,等你哦~
我打了一個激靈…內心有一絲絲的慌張!
半小時後,我照武哥給的地址,搭計程車過來了。
見到武哥,果然,不出我所料,騷氣異常!
只見武哥梳一個大背頭,還抹了點油,斜靠在車上45°仰望天空,點一根煙,帶著無盡的滄桑和寂寞。
我:(硬著頭皮上去打了個招呼)武哥?
武哥:(停下來抽煙的動作,看了我一眼,眼神帶著一絲迷離):Hello?你是node小哥哥嗎?
我:嗯…是的(悄悄後退幾步)
武哥:(大步走過來,一把摟住我的肩膀)走,我們去咖啡店裡,喝杯咖啡,聊聊Java,如何?
我:(心想你都這樣了,我還拒絕個屁啊!)好..的…
於是,武哥摟著我扭扭捏捏得去了星巴克…然後找了一個安靜的小包廂…
接下來的一幕估計你們能猜到了…
咳咳!正經點!我們是討論學習去的!
什麼?你不相信?
那你就往下看看,乾貨預警!
乾貨來了
##Java 數據類型有很多,本文主要從基本類型、包裝類型、引用類型和快取池四個面向來總結。基本資料型別
基本資料型別有byte、short、int、long、float、double、boolean、char,關於它們的分類,我畫了個圖。
基本型別
包裝資料類型
#上面提到的基本類型都有對應的包裝類型,為了方便讀者查看,我也整了一個表格。

引用型別
在Java中,引用型別的變數非常類似 C/C 的指標。引用類型指向一個對象,指向對象的變數是引用變數。這些變數在宣告時被指定為一個特定的類型,例如 Student、Dog 等。變數一旦宣告後,類型就不能被改變了。
物件、陣列都是引用資料型別。所有引用類型的預設值都是null。一個引用變數可以用來引用任何與之相容的類型。例如:
Dog dog = new Dog("旺财")。資料型別轉換
包裝型別和基本型別之間如何轉換呢?
Integer x = 2; // 装箱 调用了 Integer.valueOf(2) int y = x; // 拆箱 调用了 X.intValue()
基本型別之間如何轉換呢?有兩個點:
把大容量的型別轉換成小容量的型別時必須使用強制型別轉換。
把小容量的型別轉換成大容量的型別可以自動轉換。
例如:
int i =128; byte b = (byte)i; long c = i;
#快取池
大家思考一個問題:new Integer(123) 與Integer.valueOf(123) 有什麼不同?
有些人可能知道,有些人可能不知道。其實他們的差別很大。
new Integer(123) 每次都会新建一个对象;
Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。
我写个demo大家就知道了
Integer x = new Integer(123); Integer y = new Integer(123); System.out.println(x == y); // false Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k); // true
编译器会在自动装箱过程调用valueOf()方法,因此多个值相同且值在缓存池范围内的 Integer 实例使用自动装箱来创建,那么就会引用相同的对象。如:
Integer m = 123; Integer n = 123; System.out.println(m == n); // true
valueOf()方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。我们看下源码就知道。
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}根据数据类型的不一样,这个缓存池的上下限也不同,比如这个 Integer,就是 -128~127。不过这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax=
参考自StackOverflow:
https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123
OK,关于Java数据类型的小知识就分享到这了,虽然我还有点意犹未尽…
Java 的数据类型虽然简单,但是里面还是有很多小细节值得我们玩味的,希望这篇文章能给大家带来一些帮助。
以上是Java資料類型沒學會?因為姿勢沒用對!的詳細內容。更多資訊請關注PHP中文網其他相關文章!
熱AI工具
Undress AI Tool
免費脫衣圖片
Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片
AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。
Clothoff.io
AI脫衣器
Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!
熱門文章
熱工具
記事本++7.3.1
好用且免費的程式碼編輯器
SublimeText3漢化版
中文版,非常好用
禪工作室 13.0.1
強大的PHP整合開發環境
Dreamweaver CS6
視覺化網頁開發工具
SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
撰寫PHP評論的提示
Jul 18, 2025 am 04:51 AM
寫好PHP註釋的關鍵在於明確目的與規範,註釋應解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強調邏輯背後的原因,如說明為何需手動輸出JS跳轉;3.在復雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便於後續追踪與協作。好的註釋能降低溝通成本,提升代碼維護效率。
通過評論提高可讀性
Jul 18, 2025 am 04:46 AM
寫好註釋的關鍵在於說明“為什麼”而非僅“做了什麼”,提升代碼可讀性。 1.註釋應解釋邏輯原因,例如值選擇或處理方式背後的考量;2.對複雜邏輯使用段落式註釋,概括函數或算法的整體思路;3.定期維護註釋確保與代碼一致,避免誤導,必要時刪除過時內容;4.在審查代碼時同步檢查註釋,並通過文檔記錄公共邏輯以減少代碼註釋負擔。
編寫有效的PHP評論
Jul 18, 2025 am 04:44 AM
註釋不能馬虎是因為它要解釋代碼存在的原因而非功能,例如兼容老接口或第三方限制,否則看代碼的人只能靠猜。必須加註釋的地方包括複雜的條件判斷、特殊的錯誤處理邏輯、臨時繞過的限制。寫註釋更實用的方法是根據場景選擇單行註釋或塊註釋,函數、類、文件開頭用文檔塊註釋說明參數與返回值,並保持註釋更新,對複雜邏輯可在前面加一行概括整體意圖,同時不要用註釋封存代碼而應使用版本控制工具。
PHP開發環境設置
Jul 18, 2025 am 04:55 AM
第一步選擇集成環境包XAMPP或MAMP搭建本地服務器;第二步根據項目需求選擇合適的PHP版本並配置多版本切換;第三步選用VSCode或PhpStorm作為編輯器並搭配Xdebug進行調試;此外還需安裝Composer、PHP_CodeSniffer、PHPUnit等工具輔助開發。
PHP比較操作員
Jul 18, 2025 am 04:57 AM
PHP比較運算符需注意類型轉換問題。 1.使用==僅比較值,會進行類型轉換,如1=="1"為true;2.使用===需值與類型均相同,如1==="1"為false;3.大小比較可作用於數值和字符串,如"apple"
PHP評論語法
Jul 18, 2025 am 04:56 AM
PHP註釋有三種常用方式:單行註釋適合簡要說明代碼邏輯,如//或#用於當前行解釋;多行註釋/*...*/適合詳細描述函數或類的作用;文檔註釋DocBlock以/**開頭,為IDE提供提示信息。使用時應避免廢話、保持同步更新,並勿長期用註釋屏蔽代碼。
有效的PHP評論
Jul 18, 2025 am 04:33 AM
寫好PHP註釋的關鍵在於清晰、有用且簡潔。 1.註釋應說明代碼背後的意圖而非僅描述代碼本身,如解釋複雜條件判斷的邏輯目的;2.在魔術值、舊代碼兼容、API接口等關鍵場景添加註釋以提升可讀性;3.避免重複代碼內容,保持簡潔具體,並使用標準格式如PHPDoc;4.註釋需與代碼同步更新,確保准確性。好的註釋應站在他人角度思考,降低理解成本,成為代碼的理解導航儀。
團隊的PHP評論
Jul 18, 2025 am 04:28 AM
寫好PHP註釋的關鍵在於解釋“為什麼”而非“做什麼”,統一團隊註釋風格,避免重複代碼式註釋,合理使用TODO和FIXME標記。 1.註釋應重點說明代碼背後的邏輯原因,如性能優化、算法選擇等;2.團隊需統一註釋規範,如單行註釋用//,函數類用docblock格式,並包含@author、@since等標籤;3.避免僅複述代碼內容的無意義註釋,應補充業務含義;4.使用TODO和FIXME標記待辦事項,並可配合工具追踪,確保註釋與代碼同步更新,提升項目可維護性。


