最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?八種基本數(shù)據(jù)類型最新整理

 更新時間:2025年06月05日 10:20:04   作者:冬天vs不冷  
這篇文章給大家分享Java八種基本數(shù)據(jù)類型,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一、比特(bit)和字節(jié)(Byte)

1、定義與換算關(guān)系

  • 比特(bit)是計(jì)算機(jī)中最小的數(shù)據(jù)單位,表示二進(jìn)制的一位,只能取01。其英文縮寫為小寫字母b(如100b)
  • 字節(jié)(Byte)是計(jì)算機(jī)中基本的數(shù)據(jù)存儲單位,1字節(jié)由8個比特組成,即1 Byte = 8 bit。其縮寫為大寫字母B(如100B)
單位縮寫大小
1 字節(jié)1 Byte (B)8 bit (b)
1 千字節(jié)1 KB1024 Bytes
1 兆字節(jié)1 MB1024 KB
1 吉字節(jié)1 GB1024 MB
1 太字節(jié)1 TB1024 GB

2、應(yīng)用場景差異

  • 比特通常用于衡量網(wǎng)絡(luò)傳輸速率(如帶寬)
    • 例如100Mbps(兆比特每秒)表示每秒傳輸?shù)谋忍財(cái)?shù),1兆 = 1,000,000(百萬)
    • 日常十進(jìn)制換算:100Mbps寬帶的理論最高下載速度為100 ÷ 8 = 12.5 MB/s 100 ÷ 8 = 12.5 \text{MB/s}100÷8=12.5MB/s
  • 使用二進(jìn)制換算:100Mbps寬帶為100 , 000 , 000 ÷ 1024 ÷ 1024 ÷ 8 ≈ 11.92 MB/s 100,000,000 ÷ 1024 ÷ 1024 ÷ 8 ≈ 11.92 \text{MB/s}100,000,000÷1024÷1024÷8≈11.92MB/s
    • 字節(jié)則用于表示數(shù)據(jù)存儲容量或傳輸量
    • 例如文件大小(如10MB)、內(nèi)存容量等
    • 下載速度也常用kB/s或MB/s表示

二、各類型詳解

1、整數(shù)類型:byte、short、int、long

  • 整數(shù)字面量默認(rèn)類型為int
  • 定義long類型常量須后加‘l’或‘L’后綴
    • 必須加L/l:當(dāng)數(shù)值超出int范圍時
    • 建議加L:即使數(shù)值在int范圍內(nèi),也推薦添加大寫L以提高代碼可讀性
    • 避免使用l:防止與數(shù)字1混淆
  • byte占用8個bit位,共28=256個表達(dá)方式,負(fù)數(shù)(128個):-1~-128;正數(shù)(128個):0~127
  • byte和short常用于節(jié)省內(nèi)存的場景,如處理文件或網(wǎng)絡(luò)數(shù)據(jù)流
類型位數(shù)取值范圍默認(rèn)值包裝類
byte8-27 ~ 27-1(-128~1270Byte
short16-215 ~ 215-1(-32768 ~ 32767)0Short
int32-231 ~ 231-1(約21億多0Integer
long64-263 ~ 263-1(-9223372036854775808 ~ 9223372036854775807)0LLong

不同整數(shù)類型的存儲空間和表示數(shù)值的范圍:

不同整數(shù)類型的存儲空間和表示數(shù)值的范圍

2、浮點(diǎn)類型:float、double

關(guān)于精度舉例說明:

float f = 0.123456789f;
double d = 0.123456789123456789;
System.out.println(f);  // 輸出:0.12345679(只有前 7 位是可靠的)
System.out.println(d);  // 輸出:0.12345678912345678(保留了更多有效數(shù)字)

關(guān)于浮點(diǎn)型精度的說明:

  • 并不是所有的小數(shù)都能可以精確的用二進(jìn)制浮點(diǎn)數(shù)表示
  • 二進(jìn)制浮點(diǎn)數(shù)不能精確的表示0.1、0.01、0.001這樣10的負(fù)次冪

3、字符類型:char

  • Java中的char類型是固定長度的2字節(jié),即使是中文、英文或其他字符
  • 常用漢字:在Java內(nèi)存中用一個char表示,占2個字節(jié)
  • 擴(kuò)展?jié)h字(生僻字):超出char表示范圍,用兩個char表示,占4個字節(jié)
  • 如果你將漢字以UTF-8編碼形式存儲(如寫入文件或通過網(wǎng)絡(luò)傳輸),一個漢字通常會占用3個字節(jié)(生僻字可能是4個字節(jié))
類型位數(shù)取值范圍默認(rèn)值包裝類
char160 ~ 65535(Unicode)‘\u0000’Character
  • char類型是可以進(jìn)行運(yùn)算的。因?yàn)閏har類型都對應(yīng)有Unicode碼,可以看做是一個數(shù)值
char c12 = 'a'; // ASCII對應(yīng)數(shù)字97
char c13 = 65;   // 這里就是ascii碼65,對應(yīng)字符A
System.out.println(c12+c13); // 97+65=162

3.1、字符字面量(最常見)

最常見的寫法,表示單個字符

//使用一對''表示,內(nèi)部有且僅有一個字符
char c1 = 'a';
char c2 = '中';
char c3 = '1';
char c4 = '%';
char c5 = 'γ';
//編譯不通過
//char c6 = '';
//char c7 = 'ab';

3.2、 Unicode轉(zhuǎn)義表示(\uXXXX 格式)

  • ‘使用\u開頭加4位十六進(jìn)制表示Unicode編碼
  • 如下unicode表,\u + 縱坐標(biāo) + 橫坐標(biāo) 如:\u0040表示為@

3.3、 轉(zhuǎn)義字符

  • 常見控制字符,如換行、制表符等
轉(zhuǎn)義字符說明Unicode表示方式
\n換行符\u000a
\t制表符\u0009
\"雙引號\u0022
\'單引號\u0027
\\反斜線\u005c
\b退格符\u0008
\r回車符\u000d

3.4、 整數(shù)轉(zhuǎn)換

使用整數(shù)轉(zhuǎn)換為對應(yīng)的字符

char c = 65;  // ASCII 碼 65 對應(yīng) 'A'
System.out.println(c);  // 輸出: A
char ch = 0x4F60;  // 十六進(jìn)制 Unicode 表示 '你'
System.out.println(ch);  // 輸出: 你

4、布爾類型:boolean

類型位數(shù)取值范圍默認(rèn)值包裝類
boolean1true/falsefalseBoolean

Java 語言規(guī)范未強(qiáng)制規(guī)定 boolean 的大小,僅表示其表示 1 位信息,具體實(shí)現(xiàn)由虛擬機(jī)決定。這導(dǎo)致不同 JVM 的差異:

  • 通常占用 4 字節(jié):根據(jù)《Java 虛擬機(jī)規(guī)范》,單獨(dú)使用的 boolean 值在編譯時會被轉(zhuǎn)換為int 類型(占用 4 字節(jié)),以提高 32 位處理器的存取效率。例如,局部變量或方法棧中的 boolean 變量可能按 int 處理
  • 可能占用 1 字節(jié):部分虛擬機(jī)(如 HotSpot)在存儲對象的成員變量時,可能將 boolean 字段壓縮為 1 字節(jié)。例如,Oracle 的某些 JVM 實(shí)現(xiàn)中,boolean 字段實(shí)際占用 1 字節(jié)
  • 數(shù)組元素:統(tǒng)一為1 字節(jié)(編碼為 byte 數(shù)組)

三、基本數(shù)據(jù)類型轉(zhuǎn)換

1、自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換)

  • 將較小的數(shù)據(jù)類型轉(zhuǎn)換為較大的數(shù)據(jù)類型(不會丟失信息)。由編譯器自動完成
  • char與short同級,但不可直接轉(zhuǎn)換,需強(qiáng)制轉(zhuǎn)換

示例:

int a = 10;
long b = a;        // 自動轉(zhuǎn)換:int → long
double c = b;      // 自動轉(zhuǎn)換:long → double
int x = 5;
double y = x + 3.14;  // 結(jié)果為 double 類型
char ch = 'A';
int code = ch;        // 自動轉(zhuǎn)換:char → int(輸出 Unicode 值 65)

2、強(qiáng)制類型轉(zhuǎn)換(顯式轉(zhuǎn)換)

  • 將大范圍類型轉(zhuǎn)換為小范圍類型時,必須使用強(qiáng)制類型轉(zhuǎn)換,可能會造成精度丟失溢出

精度丟失示例:

double d = 123.456;
int i = (int) d;      // 強(qiáng)制轉(zhuǎn)換:double → int(結(jié)果為123,精度丟失)

精度溢出示例:

  • 溢出是指一個數(shù)值超出了該數(shù)據(jù)類型所能表示的范圍,導(dǎo)致結(jié)果不正確甚至反方向回繞
  • 想象你有一個 3 位的計(jì)數(shù)器,只能表示 0 到 999,如果你加到 1000,它就回到了 000——這就是溢出
byte b = 127;         // byte 的最大值是 127
b = (byte)(b + 1);    // 加1后會溢出,結(jié)果是 -128
long l = 3000000000L;
int j = (int) l;      // 強(qiáng)制轉(zhuǎn)換:long → int(溢出,結(jié)果為-1294967296)

3、不同數(shù)據(jù)類型運(yùn)算

byte, short, char 運(yùn)算 ? 自動變成 int

byte a = 10;
byte b = 20;
// byte c = a + b;   // 編譯錯誤:結(jié)果是 int
int c = a + b;       // 正確
//byte、short之間做運(yùn)算
byte b3 = 12;
short s1 = 10;
//short s2 = b3 + s1; // 編譯不通過 需要用int來接收
int i4 = b3 + s1;	  // 正確

int 與 long 運(yùn)算 ? 提升為 long

int i = 1000;
long l = 2000L;
long result = i + l;  // i 自動轉(zhuǎn)為 long

int 與 float 運(yùn)算 ? 提升為 float

int i = 5;
float f = 2.5f;
float res = i + f;    // i 轉(zhuǎn)為 float,結(jié)果是 7.5

float 與 double 運(yùn)算 ? 提升為 double

float f = 3.5f;
double d = 1.2;
double res = f + d;   // f 轉(zhuǎn)為 double,結(jié)果是 4.7

到此這篇關(guān)于Java 八種基本數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)Java 八種基本數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot請求映射的五種優(yōu)化方式小結(jié)

    SpringBoot請求映射的五種優(yōu)化方式小結(jié)

    在Spring?Boot應(yīng)用開發(fā)中,請求映射(Request?Mapping)是將HTTP請求路由到相應(yīng)控制器方法的核心機(jī)制,合理優(yōu)化請求映射不僅可以提升應(yīng)用性能,還能改善代碼結(jié)構(gòu),增強(qiáng)API的可維護(hù)性和可擴(kuò)展性,本文將介紹5種Spring?Boot請求映射優(yōu)化方式,需要的朋友可以參考下
    2025-06-06
  • Java切割字符串的踩坑實(shí)戰(zhàn)記錄

    Java切割字符串的踩坑實(shí)戰(zhàn)記錄

    最近在項(xiàng)目中使用了java中的分割字符串,踩了一個坑,充分了展示了自己對java底層的認(rèn)知有很多的不足和欠缺,下面這篇文章主要給大家介紹了關(guān)于Java切割字符串的踩坑實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2022-11-11
  • 解決異常FileNotFoundException:class path resource找不到資源文件的問題

    解決異常FileNotFoundException:class path resource找不到資源文件的問題

    今天小編就為大家分享一篇關(guān)于解決異常FileNotFoundException:class path resource找不到資源文件的問題,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 如何通過Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    如何通過Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    在Java中,將PDF文件轉(zhuǎn)換為高質(zhì)量的圖片可以使用不同的庫,其中最常用的庫之一是?Apache?PDFBox,下面我們就來看看這個庫的具體使用吧
    2024-10-10
  • Java中wait()和sleep()區(qū)別小結(jié)

    Java中wait()和sleep()區(qū)別小結(jié)

    在Java多線程編程中,wait()和 sleep()是兩個常用的線程控制方法,但它們在工作原理、使用場景和效果上有顯著區(qū)別,本文就來詳細(xì)的介紹一下兩者的差異,感興趣的可以了解一下
    2025-10-10
  • SpringCloud手寫Ribbon實(shí)現(xiàn)負(fù)載均衡

    SpringCloud手寫Ribbon實(shí)現(xiàn)負(fù)載均衡

    這篇文章主要介紹了SpringCloud手寫Ribbon實(shí)現(xiàn)負(fù)載均衡的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java Socket無法完全接收返回內(nèi)容的解決方案

    java Socket無法完全接收返回內(nèi)容的解決方案

    這篇文章主要介紹了java Socket無法完全接收返回內(nèi)容的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Springsession nginx反向代理集成過程

    Springsession nginx反向代理集成過程

    這篇文章主要介紹了Springsession nginx反向代理集成過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springdoc openapi 接口轉(zhuǎn)換為JMeter測試計(jì)劃實(shí)踐指南

    springdoc openapi 接口轉(zhuǎn)換為JMeter測試計(jì)劃實(shí)踐指南

    本文介紹了基于Springdoc-openapi自動暴露OpenAPI文檔,并通過OpenAPIGenerator生成JMeter測試計(jì)劃的方法,詳細(xì)步驟包括啟動服務(wù)、驗(yàn)證OpenAPI文檔可用性、使用OpenAPIGenerator生成JMeter腳本以及安裝JMeter,感興趣的朋友一起看看
    2026-04-04
  • 通過實(shí)例解析Java類初始化和實(shí)例初始化

    通過實(shí)例解析Java類初始化和實(shí)例初始化

    這篇文章主要介紹了通過實(shí)例解析Java類初始化和實(shí)例初始化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評論

南召县| 阿勒泰市| 德令哈市| 遂溪县| 玛沁县| 桑日县| 乌鲁木齐县| 思南县| 攀枝花市| 嘉峪关市| 德保县| 正阳县| 团风县| 平泉县| 七台河市| 胶南市| 阿拉尔市| 平定县| 依安县| 平和县| 阳高县| 宣威市| 胶南市| 政和县| 墨脱县| 高唐县| 高尔夫| 延吉市| 南皮县| 册亨县| 咸丰县| 公主岭市| 盈江县| 丽江市| 阳泉市| 宜昌市| 沙湾县| 南澳县| 格尔木市| 安庆市| 双江|