日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包...

發布時間:2025/3/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中數據類型有兩類

基本數據類型

引用類型

基本數據類型

整數型

byte - 8bit

short - 16bit

int - 32bit

long - 64bit 【賦值時一般在數字后加上** L**(大小寫都可以,建議大寫與數字1或字母i大寫區分開)】

浮點型

float - 32bit 【直接賦值時必須在數字后加上 F(大小寫都可以)】

double - 64bit【d/D】

字符型

char - 16bit

布爾型

boolean - 1byte/4byte【只有true或false值,有人疑問為什么boolean類型有兩個不同的字節,下方會講解到】

《Java虛擬機規范》一書中的描述:“雖然定義了boolean這種數據類型,但是只對它提供了非常有限的支持。在Java虛擬機中沒有任何供boolean值專用的字節碼指令,Java語言表達式所操作的boolean值,在編譯之后都使用Java虛擬機中的int數據類型來代替,而boolean數組將會被編碼成Java虛擬機的byte數組,每個元素boolean元素占8位”。這樣我們可以得出boolean類型占了單獨使用是4個字節,在數組中又是1個字節。

虛擬機為什么要用int來代替boolean呢?為什么不用byte或short,這樣不是更節省內存空間嗎。大多數人都會很自然的這樣去想,我同樣也有這個疑問,經過查閱資料發現,使用int的原因是,對于當下32位的處理器來說,一次處理數據是32位(這里不是指的是32/64位系統,而是指CPU硬件層面),具有高效存取的特點。

根據http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html官方文檔的描述:

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.

布爾類型:布爾數據類型只有兩個可能的值:真和假。使用此數據類型為跟蹤真/假條件的簡單標記。這種數據類型就表示這一點信息,但是它的“大小”并不是精確定義的。

可以看出,boolean類型沒有給出精確的定義,《Java虛擬機規范》給出了4個字節,和boolean數組1個字節的定義,具體還要看虛擬機實現是否按照規范來,所以1個字節、4個字節都是有可能的。這其實是運算效率和存儲空間之間的博弈,兩者都非常的重要。

基本數據類型和引用類型的區別

概念層次

基本類型:變量名指向具體值

引用類型:變量名指向存數據對象的內存地址

內存層次

基本類型:變量在聲明后,jvm會立即給它分配內存空間

引用類型:變量在聲明后不會立即分配內存空間,只儲存一個內存地址(類似于C的指針)

判斷是否相等

基本類型:使用時需要賦值具體值,使用==判斷

應用類型:使用時可以賦值null,判斷一般使用equals方法

包裝類,裝箱、拆箱

Java為每一種基本數據類型都提供了對應的包裝類

Byte => bye

Short => short

Integer => int

Long => long

Float => float

Double => double

Character => char

Boolean =>boolean

引入包裝類的目的就是:提供一種機制,使得基本數據類型可以與引用類型互相轉換。

裝箱【將基本數據類型轉化為引用類型】

裝箱過程是通過調用包裝類的 valueOf 方法實現的。

拆箱【將引用類型轉化為基本數據類型】

拆箱過程是通過調用包裝類的 xxxValue 方法實現的(xxx 代表對應的基本數據類型)。

自動裝箱、自動拆箱

基本數據(Primitive)型的自動裝箱(boxing)拆箱(unboxing)自 JDK 5 開始提供的功能。

自動裝箱與拆箱的機制可以讓我們在 Java 的變量賦值或者是方法調用等情況下使用原始類型或者對象類型更加簡單直接。

因為自動裝箱會隱式地創建對象,如果在一個循環體中,會創建無用的中間對象,這樣會增加 GC 壓力,拉低程序的性能。所以在寫循環時一定要注意代碼,避免引入不必要的自動裝箱操作。

Integer num = 10; // 自動裝箱,沒有通過new的方式創建對象

Integer num2 = new Integer(10) // 非自動裝箱

裝箱、拆箱的應用

一種最普通的場景是:調用一個含類型為 Object 參數的方法,該 Object 可支持任意類型(因為 Object 是所有類的父類),以便通用。當你需要將一個值類型(如 int)傳入時,需要使用 Integer 裝箱。

另一種用法是:一個非泛型的容器,同樣是為了保證通用,而將元素類型定義為 Object。于是,要將值類型數據加入容器時,需要裝箱。

當 == 運算符的兩個操作,一個操作數是包裝類,另一個操作數是表達式(即包含算術運算)則比較的是數值(即會觸發自動拆箱的過程)。

裝箱、拆箱的注意點

裝箱操作會創建對象,頻繁的裝箱操作會造成不必要的內存消耗,影響性能。所以應該_盡量避免裝箱_。

基礎數據類型的比較操作使用 ==,包裝類的比較操作使用 equals 方法

總結

以上是生活随笔為你收集整理的java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av在线地址| 伊人888| 男人天堂一区二区 | 一色道久久88加勒比一 | 一级a性色生活片久久无 | 久久99精品国产.久久久久 | 国产porn | 毛片在线视频 | 欧美激情视频网站 | 素人fc2av清纯18岁 | 你懂的视频在线播放 | 中文字幕天堂网 | 亚洲国产欧美在线 | 日韩欧美高清一区 | 中文字幕在线乱 | 色网站免费在线观看 | 欧美国产在线视频 | 天天碰天天摸 | 成人69视频 | 精品久久久久久一区二区里番 | youjizz国产| 性生交大片免费看l | 天堂网在线播放 | 在线成人免费视频 | 狼干综合| 成年人免费在线观看 | 国自产拍偷拍精品啪啪一区二区 | 视频一区 中文字幕 | 国产无遮挡免费 | 毛利兰被扒开腿做同人漫画 | avtt2015 | 成人看| 少妇一级淫免费放 | avwww| 久久永久视频 | 日韩欧美大片 | 狠狠干中文字幕 | av小说在线 | 成人夜晚视频 | 99r精品视频 | 女女综合网 | 草草在线影院 | jizz俄罗斯 | 99视频在线免费观看 | 双性皇帝高h喷汁呻吟 | 苍井空浴缸大战猛男120分钟 | 自拍视频啪| aaaa一级片 | 日韩视频在线观看视频 | 国产亚州av | 五月婷婷激情综合网 | 涩涩涩涩涩涩涩涩涩 | 哈利波特3在线观看免费版英文版 | 免费看黄网站在线观看 | 国产做爰xxxⅹ高潮视频12p | 香港三级日本三级 | caoporn视频在线观看 | 国产精品美女久久久久av爽 | 人人爱人人草 | 久久久老司机 | 成人在线视频网 | 羞羞影院体验区 | 看全色黄大色黄女片18 | 波多野结衣av在线免费观看 | 亚洲vs天堂 | 色七七在线 | 天堂在线官网 | 日韩午夜在线观看 | 2025av在线播放 | 色就是色网站 | 天天躁狠狠躁 | 深夜视频在线播放 | 日韩视频一区在线 | av三级在线播放 | 亚洲每日在线 | 8x国产一区二区三区精品推荐 | 国产+高潮+白浆+无码 | 欧美熟妇精品久久久久久 | 免费av大全 | 天天色综 | 91视频免费网站 | 神马午夜伦理影院 | 国产黄色在线 | 灌满闺乖女h高h调教尿h | 一级黄色大片免费看 | 国产福利小视频 | 美女久久精品 | 热玖玖| 久操视频在线播放 | a v视频在线观看 | 久久久视频在线 | 日韩av高清 | 在线电影一区二区三区 | 亚洲一卡二卡在线观看 | 污视频在线免费观看 | 国产l精品国产亚洲区久久 午夜青青草 | 成人在线观看免费 | 久久青青草原亚洲av无码麻豆 | www.三区 |