久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > java數(shù)據(jù)類型有哪些?

java數(shù)據(jù)類型有哪些?

來源:千鋒教育
發(fā)布人:wjy
時間: 2023-03-21 14:28:00 1679380080

  1. 簡介

  所謂的基本數(shù)據(jù)類型,是指CPU可以直接進行運算的類型,包括以下幾種:

  ● 整數(shù)型:byte、short、int、long;

  ● 浮點型:float、double;

  ● 字符型:char;

  ● 布爾型:boolean

  2. 整數(shù)型

  2.1 byte

  byte是字節(jié)類型,1個byte占8位,代表有符號的、以二進制補碼表示的整數(shù),具有如下特點:

  ● 最小值是 -128(-2^7);

  ● 最大值是 127(2^7-1);

  ● 默認值是 0;

  ● byte 類型比較節(jié)約空間,因為 byte 變量占用的空間只有 int 類型的四分之一。

  public class TypeDemo01 { public static void main(String[] args) { // 定義byte類型的變量 // byte b = 10; // byte b = 127; byte b = -128; System.out.println(b); //注意:如下定義,在編譯階段就會出錯 //byte b = 128; //System.out.println(b); }}

  注意:

  因為byte的取值范圍在-128~127之間,如果我們定義byte變量的值=128,就超過了byte的范圍,所以在編譯階段就會出錯,“Type mismatch: cannot convert from int to byte”,意思是“類型不匹配:無法從byte轉(zhuǎn)為int”,如下圖所示:

java數(shù)據(jù)類型有哪些1

  2.2 short

  short 是短整型,占16 位,代表有符號的、以二進制補碼表示的整數(shù),具有如下特點:

  ● 最小值是 -32768(-2^15);

  ● 最大值是 32767(2^15 - 1);

  ● 默認值是 0;

  ● short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間,一個short變量是int型變量所占空間的二分之一。

  public class TypeDemo01 { public static void main(String[] args) { //定義short類型的變量 //short s = 128; short s = 12800; System.out.println(s); }}

  2.3 int

  int 是整型,占32位,代表有符號的、以二進制補碼表示的整數(shù),如有如下特點:

  ● 最小值是 -2,147,483,648(-2^31);

  ● 最大值是 2,147,483,647(2^31 - 1);

  ● 默認值是 0 ;

  ● 我們在開發(fā)時,一般都是用int表示整型變量。

  public class TypeDemo01 { public static void main(String[] args) { //定義int類型的變量 int i = 100000; System.out.println(i); }}

  2.4 long

  long 是長整型,占64 位,代表有符號的、以二進制補碼表示的整數(shù),如有如下特點:

  ● 最小值是 -9,223,372,036,854,775,808(-2^63);

  ● 最大值是 9,223,372,036,854,775,807(2^63 -1);

  ● 默認值是 0L,"L"理論上不區(qū)分大小寫,但若寫成小寫的"l",容易與數(shù)字"1"混淆,不容易分辯,所以最好寫成大寫的“L”;

  ● 該類型主要用在需要較大數(shù)值的場景中。

  public class TypeDemo01 { public static void main(String[] args) { //定義long類型的變量,后面要帶L或l(不是1,也不是i) long l = 364748123123L; System.out.println(l); }}

  2.5 補充說明

  Java中只定義了帶符號的整型,因此最高位的bit表示正負符號,0表示正數(shù),1表示負數(shù),如:

  ● 1(十進制) = 0000 0001(二進制);

  ● 127(十進制) = 0111 1111(二進制);

  ● -128(十進制) = 1000 0000(二進制)

  關(guān)于二進制及進制間的轉(zhuǎn)換、原碼、反碼、補碼等內(nèi)容,壹哥會在后面再單獨講解!

  3. 浮點型

  浮點數(shù)可表示的范圍非常大,float類型可最大表示3.4x1038,而double類型可最大表示1.79x10308。

  3.1 float

  float 是單精度的浮點類型,占32位,是符合IEEE 754標準的浮點數(shù),具有如下特點:

  ● float 在儲存大型浮點數(shù)組時,可以節(jié)省內(nèi)存空間;

  ● 默認值是 0.0f,"f"理論上不區(qū)分大小寫;

  ● float浮點數(shù)不能用來表示精確的值,如不能用float來表示貨幣等。

  public class TypeDemo01 { public static void main(String[] args) { //定義float類型的變量,后面帶F或f float f = 10.2F; //float f = 3.14e38f; // 科學計數(shù)法表示的3.14x10^38 System.out.println(f); float f1 = 9999.9994f; System.out.println(f1); } }

  3.2 double

  double 是雙精度的浮點類型,占64 位,是符合 IEEE 754 標準的浮點數(shù),具有如下特點:

  ● 浮點數(shù)的默認類型為 double 類型;

  ● 默認值是 0.0d,"d"理論上不區(qū)分大小寫;

  ● double類型同樣不能表示精確的值,如貨幣。

  public class TypeDemo01 { public static void main(String[] args) { //定義double類型的變量,后面可以帶D或d,也可以不帶 double d = 10d; //double d = 4.9e-324; // 科學計數(shù)法表示的4.9x10^-324 System.out.println(d); double d1 = 12345678910111213.0; System.out.println(d1); } }

  3.3 補充說明

  float和double的最小值和最大值都是以科學記數(shù)法的形式輸出的。結(jié)尾的"E+數(shù)字"表示E之前的數(shù)字要乘以10的多少次方。比如3.14E3就是3.14 × 103=3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

  4. 字符型

  4.1 字符的特點

  char是一種表示字符的類型。Java的char類型除了可以表示標準的ASCII,還可以表示一個Unicode字符,代表一個單一的16位 Unicode 字符,具有如下特點:

  ● 最小值是 \u0000(十進制等效值為 0);

  ● 最大值是 \uffff(即為 65535);

  ● char 數(shù)據(jù)類型可以儲存任何字符。

  4.2 字符的三種表現(xiàn)形式

  在java中,字符和字符串是兩種不同的數(shù)據(jù)類型。char類型使用單引號''表示,單引號里面只能有一個字符。字符串用雙引號""表示,雙引號中可以有很多字符。字符有三種表現(xiàn)形式:

  1. 字符 'a' 、'中';

  2. 數(shù)字 97、20;

  3. 十六進制 '\u0041'。

  4.3 代碼案例

  public class TypeDemo01 { public static void main(String[] args) { //定義字符型,字符帶有英文的'' char c1 = '中'; char c2 = 20013; char c3 = '\u0041'; //單引號中只能有一個字符! //char c4 = '中國'; System.out.println(c1);//中 System.out.println(c2);//中 System.out.println(c3);//A }}

  大家要注意,單引號''中只能有一個字符,否則會出現(xiàn)如下錯誤:”Invalid character constant“,無效的字符常量!

java數(shù)據(jù)類型有哪些2

  4.4 轉(zhuǎn)義字符

  在上面的代碼案例中,我們可以看到有些字符的前面帶有反斜杠(\),這個反斜杠其實也是一個字符,它是一種轉(zhuǎn)義字符,對編譯器來說有著特殊的含義。下表展示了Java中常用的幾個轉(zhuǎn)義字符含義:

java數(shù)據(jù)類型有哪些3

  5. 布爾型

  boolean是布爾類型,該類型只表示一位信息,布爾類型是關(guān)系運算的計算結(jié)果,具有如下特點:

  ● 布爾類型只有兩個值:true 和 false;

  ● 默認值是 false;

  ● 該類型一般是作為一種標志,來記錄 true/false 的情況。

  public class TypeDemo01 { public static void main(String[] args) { //boolean類型,真假(一般用條件判斷),true false //boolean flag = true; boolean flag = false; System.out.println(flag); int age = 12; boolean isAdult = age >= 18; // 計算結(jié)果為false System.out.println(isAdult); }}

  6. 取值范圍

  6.1 范圍對比

  我們在講解8種基本類型時,大家會發(fā)現(xiàn),不同的類型大小不同,也就是它們有不同的取值范圍。接下來壹哥給大家總結(jié)一下這幾種不同類型的取值范圍。

java數(shù)據(jù)類型有哪些4

  6.2 原理剖析

  有的初學者可能不理解,為什么不同數(shù)據(jù)類型的取值范圍大小不一樣?比如同樣都是整數(shù),為什么有的范圍大有的范圍小?壹哥簡單給大家舉個例子。計算機的每個內(nèi)存單元,都有自己的內(nèi)存地址,一般都是從0開始編號。而每個內(nèi)存單元都可以看作是一個房間,房間有大有小,并且房間的類型不同,有的是大床房,有的是標間,有的是總統(tǒng)套房。另外內(nèi)存地址就是房間的門牌號,方便我們找到對應(yīng)的房間。

java數(shù)據(jù)類型有哪些5

  不同的數(shù)據(jù)類型之所以取值范圍不同,就好比每種類型都是不同的房型,有大有小,如下圖所示:

java數(shù)據(jù)類型有哪些6

  這些不同的類型,占用的字節(jié)大小不同,所以取值范圍自然也不一樣。

  6.3 boolean類型補充說明

  在上面6.1小節(jié)中,關(guān)于boolean類型所占的字節(jié)大小,壹哥在表格中并沒有說明。這是因為根據(jù)官方文檔描述,boolean類型經(jīng)過編譯之后采用int來定義(所以此時boolean占4字節(jié),32bits),但如果是boolean數(shù)組則占1字節(jié)(8 bits)。詳見下圖紅色標注:

java數(shù)據(jù)類型有哪些7

  7. 關(guān)于void

  實際上,java中還有另外一種基本類型 void,它也有對應(yīng)的包裝類 java.lang.Void。但我們無法對它們直接進行操作,所以一般不把它們當做基本類型對待。

  8. 包裝類型

  雖然Java是面向?qū)ο蟮恼Z言,但為了方便我們開發(fā),在Java中繼續(xù)沿用了C語言的基本數(shù)據(jù)類型。我們在進行常規(guī)的數(shù)據(jù)計算時,可以直接使用基本類型。但因為基本數(shù)據(jù)類型不具備面向?qū)ο蟮男袨樘卣?,不能通過方法的形式進行調(diào)用,且基本類型也不能存入到Java的集合中。所以后來Java提供了與基本類型對應(yīng)的8個包裝類,使其具有了對象的屬性和方法?;绢愋团c其對應(yīng)的包裝類如下表所示:

java數(shù)據(jù)類型有哪些8

  9.1 概念

  所有的ASCII碼都可以用"\"加數(shù)字(一般是8進制數(shù)字)來表示。Java中定義了一些字母前加"\"來表示特殊含義的字符,如\0、\t、\n等,這些都被稱為轉(zhuǎn)義字符(Escape Character),它們可以用來轉(zhuǎn)變某個字符原有的含義。

  9.2 案例

  大家要注意,我們在開發(fā)時會用到兩種斜線,包括“/”和“\”。其中 “/” 斜線(slash)又稱為forward slash (前斜線),原本是一種標點符號。“\”則是后斜線,在Java中作為轉(zhuǎn)義字符,常見的組合如下:

  ● \n:表示換行;

  ● \b:表示退格;

  ● \r:表示回車;

  ● \":表示雙引號;

  ● \':表示單引號;

  ● \\:表示反斜線;

  ● \':表示單引號;

  ● \t:表示tab制表;

  ● \f:表示走紙換頁;

  public class TypeDemo01 { public static void main(String[] args) { //常見轉(zhuǎn)義字符:\n 表示換行;\t表示制表位 //轉(zhuǎn)義字符:\t,可以空4格;\n,可以換下一行; System.out.println("hello\tworld"); System.out.println("hello\nworld"); //轉(zhuǎn)義字符,\"",輸出中文的“” System.out.println("你\"真棒\""); //轉(zhuǎn)義字符:默認情況下,斜杠是不能單獨輸出使用的,需要加一個轉(zhuǎn)義字符才能輸出。 System.out.println("D:\\a\\b"); }}

  效果如下圖所示:

java數(shù)據(jù)類型有哪些9

  9.3 常用轉(zhuǎn)義字符

  以下是一些常用的轉(zhuǎn)義字符供大家參考使用。

java數(shù)據(jù)類型有哪些10

  以上就是關(guān)于java數(shù)據(jù)類型的介紹,剛?cè)腴T的朋友一定要認真學習哦!!!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截?。?/div>

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實際應(yīng)用中,我們經(jīng)常需要對字符串進行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計算機編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個集合?

在Python中,集合是一種無序且不重復的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會打印指定文件的所有內(nèi)容到標準輸出上,比...詳情>>

2023-10-31 19:58:15