欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2025年06月05日 10:20:04   作者:冬天vs不冷  
這篇文章給大家分享Java八種基本數(shù)據(jù)類型,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(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ù)存儲(chǔ)單位,1字節(jié)由8個(gè)比特組成,即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ù)存儲(chǔ)容量或傳輸量
    • 例如文件大?。ㄈ?0MB)、內(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范圍時(shí)
    • 建議加L:即使數(shù)值在int范圍內(nèi),也推薦添加大寫L以提高代碼可讀性
    • 避免使用l:防止與數(shù)字1混淆
  • byte占用8個(gè)bit位,共28=256個(gè)表達(dá)方式,負(fù)數(shù)(128個(gè)):-1~-128;正數(shù)(128個(gè)):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ù)類型的存儲(chǔ)空間和表示數(shù)值的范圍:

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

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

最常見的寫法,表示單個(gè)字符

//使用一對(duì)''表示,內(nèi)部有且僅有一個(gè)字符
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
\"雙引號(hào)\u0022
\'單引號(hào)\u0027
\\反斜線\u005c
\b退格符\u0008
\r回車符\u000d

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

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

char c = 65;  // ASCII 碼 65 對(duì)應(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 值在編譯時(shí)會(huì)被轉(zhuǎn)換為int 類型(占用 4 字節(jié)),以提高 32 位處理器的存取效率。例如,局部變量或方法棧中的 boolean 變量可能按 int 處理
  • 可能占用 1 字節(jié):部分虛擬機(jī)(如 HotSpot)在存儲(chǔ)對(duì)象的成員變量時(shí),可能將 boolean 字段壓縮為 1 字節(jié)。例如,Oracle 的某些 JVM 實(shí)現(xiàn)中,boolean 字段實(shí)際占用 1 字節(jié)
  • 數(shù)組元素:統(tǒng)一為1 字節(jié)(編碼為 byte 數(shù)組)

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

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

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

示例:

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

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

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

精度丟失示例:

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

精度溢出示例:

  • 溢出是指一個(gè)數(shù)值超出了該數(shù)據(jù)類型所能表示的范圍,導(dǎo)致結(jié)果不正確甚至反方向回繞
  • 想象你有一個(gè) 3 位的計(jì)數(shù)器,只能表示 0 到 999,如果你加到 1000,它就回到了 000——這就是溢出
byte b = 127;         // byte 的最大值是 127
b = (byte)(b + 1);    // 加1后會(huì)溢出,結(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)算 ? 自動(dòng)變成 int

byte a = 10;
byte b = 20;
// byte c = a + b;   // 編譯錯(cuò)誤:結(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 自動(dòng)轉(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SpringBoot請(qǐng)求方式和訪問靜態(tài)頁面

    使用SpringBoot請(qǐng)求方式和訪問靜態(tài)頁面

    SpringBoot支持多種請(qǐng)求方式,包括GET、RESTful、分頁列表等,常用框架如阿里fastjson、谷歌gson用于JavaBean序列化為Json,性能上Jackson最快,SpringBoot目錄結(jié)構(gòu)包括src/main/java、src/main/resources等
    2025-01-01
  • SpringMVC?中的視圖使用?JSP的過程

    SpringMVC?中的視圖使用?JSP的過程

    本文介紹了如何在?SpringMVC?中使用?JSP?視圖,包括如何創(chuàng)建?JSP?視圖、配置?JSP?視圖解析器、以及如何在控制器方法中使用JSP視圖,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-07-07
  • 使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問題

    使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問題

    重試的使用場景比較多,比如調(diào)用遠(yuǎn)程服務(wù)時(shí),由于網(wǎng)絡(luò)或者服務(wù)端響應(yīng)慢導(dǎo)致調(diào)用超時(shí),此時(shí)可以多重試幾次。用定時(shí)任務(wù)也可以實(shí)現(xiàn)重試的效果,但比較麻煩,用Spring Retry的話一個(gè)注解搞定所有,感興趣的可以了解一下
    2023-04-04
  • 使用ByteArrayOutputStream實(shí)現(xiàn)將數(shù)據(jù)寫入本地文件

    使用ByteArrayOutputStream實(shí)現(xiàn)將數(shù)據(jù)寫入本地文件

    這篇文章主要介紹了使用ByteArrayOutputStream實(shí)現(xiàn)將數(shù)據(jù)寫入本地文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Boot 整合 JWT的方法

    Spring Boot 整合 JWT的方法

    這篇文章主要介紹了Spring Boot 整合 JWT的方法,文中實(shí)例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 淺析Java中SimpleDateFormat為什么是線程不安全的

    淺析Java中SimpleDateFormat為什么是線程不安全的

    SimpleDateFormat是Java中用于日期時(shí)間格式化的一個(gè)類,它提供了對(duì)日期的解析和格式化能力,本文主要來和大家一起探討一下SimpleDateFormat為什么是線程不安全的,感興趣的可以了解下
    2024-02-02
  • 淺談Java平臺(tái)無關(guān)性

    淺談Java平臺(tái)無關(guān)性

    這篇文章主要介紹了淺談Java平臺(tái)無關(guān)性,對(duì)此感興趣的同學(xué),可以多了解一下
    2021-04-04
  • Java之實(shí)現(xiàn)十進(jìn)制與十六進(jìn)制轉(zhuǎn)換案例講解

    Java之實(shí)現(xiàn)十進(jìn)制與十六進(jìn)制轉(zhuǎn)換案例講解

    這篇文章主要介紹了Java之實(shí)現(xiàn)十進(jìn)制與十六進(jìn)制轉(zhuǎn)換案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Jmeter JDBC請(qǐng)求常見問題解決方案

    Jmeter JDBC請(qǐng)求常見問題解決方案

    這篇文章主要介紹了Jmeter JDBC請(qǐng)求常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java中使用裝飾設(shè)計(jì)模式實(shí)現(xiàn)動(dòng)態(tài)增強(qiáng)對(duì)象功能

    Java中使用裝飾設(shè)計(jì)模式實(shí)現(xiàn)動(dòng)態(tài)增強(qiáng)對(duì)象功能

    裝飾設(shè)計(jì)模式是Java中一種常用的設(shè)計(jì)模式,它通過動(dòng)態(tài)地將功能透明地附加到對(duì)象上,以擴(kuò)展對(duì)象的功能。裝飾設(shè)計(jì)模式主要應(yīng)用于需要?jiǎng)討B(tài)、透明地增強(qiáng)對(duì)象功能的場景。在Java中,裝飾設(shè)計(jì)模式可通過繼承、接口和代理等方式實(shí)現(xiàn)
    2023-04-04

最新評(píng)論