第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

Java 基本數(shù)據(jù)類(lèi)型

前面我們學(xué)習(xí)了變量,每個(gè)變量都是有數(shù)據(jù)類(lèi)型的。在 Java 中,一共有兩大數(shù)據(jù)類(lèi)型:

  • 基本數(shù)據(jù)類(lèi)型(內(nèi)置數(shù)據(jù)類(lèi)型)
  • 引用數(shù)據(jù)類(lèi)型

本小節(jié),我們將主要介紹基本數(shù)據(jù)類(lèi)型,除了我們?cè)谑纠薪?jīng)常用到的 int 類(lèi)型外,Java 語(yǔ)言還有其他 7 種基本數(shù)據(jù)類(lèi)型。它們由語(yǔ)言預(yù)先定義,也稱內(nèi)置數(shù)據(jù)類(lèi)型,顧名思義,它們是 Java 語(yǔ)言中最基本的數(shù)據(jù)類(lèi)型。另外注意:引用數(shù)據(jù)類(lèi)型并不屬于基本數(shù)據(jù)類(lèi)型的范疇,我們將在后面講解。

Java 語(yǔ)言支持 8 種基本數(shù)據(jù)類(lèi)型:byte,shortint,long,float,double,charboolean

1. 分類(lèi)和特點(diǎn)

1.1 分類(lèi)

基本數(shù)據(jù)類(lèi)型定義在 Java類(lèi)型系統(tǒng)中,在類(lèi)型系統(tǒng)中,又可將基本類(lèi)型分為三大類(lèi):

  • 數(shù)字型:包含 short、int、long、floatdouble,只能存儲(chǔ)數(shù)字?jǐn)?shù)據(jù);
  • 字符型bytechar,只能存儲(chǔ)字符數(shù)據(jù)
  • 布爾類(lèi)型boolean,只能存儲(chǔ) true(真) 或 false(假)。

1.2 范圍和默認(rèn)值

基本類(lèi)型都有固定的大小,因此,基本類(lèi)型的值會(huì)被限制在一個(gè)范圍內(nèi)。

另外,在聲明變量時(shí),不一定總是需要分配值。編譯器會(huì)將已聲明但未初始化的字段設(shè)置合理的默認(rèn)值。但是,建議為每個(gè)變量都賦初始值,這是很好的編程習(xí)慣。

具體的范圍和默認(rèn)值,請(qǐng)參考下表:

類(lèi)型 大?。ㄎ唬?/th> 最小值 最大值 默認(rèn)值
byte 8 -128 +127 0
char 16 0 +655,35 ‘\u0000’
short 16 -32,768 +32,767 0
int 32 -2,147,483,648 +2,147,483,647 0
long 64 -9,223,372,036,854,775,808 +9,223,372,036,854,775,807 0L
float 32 1.4 E-45 3.402,823,5 E+38 0.0f
double 64 4.9 E-324 1.797,693,134,862,315,7 E+308 0.0d
boolean false

1.3 常見(jiàn)錯(cuò)誤

在編碼過(guò)程中,要特別注意變量不要超出其類(lèi)型的范圍,請(qǐng)查看如下示例:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class MemoryOverflow {
    public static void main(String[] args) {
      	// Integer.MAX_VALUE 用來(lái)int類(lèi)型能存儲(chǔ)的最大值
        int maximumValue = Integer.MAX_VALUE;
      	System.out.println("int類(lèi)型能夠存儲(chǔ)的最大值為:" + maximumValue);
        System.out.println(maximumValue + 1);
    }
}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

int 類(lèi)型能夠存儲(chǔ)的最大值為2147483647
-2147483648

我們發(fā)現(xiàn) int 類(lèi)型能存儲(chǔ)的最大值加 1 之后,變成了一個(gè)負(fù)數(shù),這個(gè)數(shù)其實(shí)就是 int 類(lèi)型能夠存放的最小值,這是因?yàn)榧?1 之后變量超出了 int 類(lèi)型能夠存儲(chǔ)的最大值,這就是我們常常說(shuō)的內(nèi)存溢出錯(cuò)誤。

還要特別注意一點(diǎn),由于 Java 是強(qiáng)類(lèi)型的,每個(gè)變量都有一個(gè)類(lèi)型,只有給定種類(lèi)的值能夠存儲(chǔ)到該變量中。例如,不能將浮點(diǎn)型的數(shù)字賦值給整型變量:

public class IncompatibleTypeError{
    public static void main(String[] args) {
        int age;
      	age = 20.5f;
    }
}

源代碼在編譯階段就會(huì)報(bào)錯(cuò):

$ javac IncompatibleTypeError.java
IncompatibleTypeError.java:4: 錯(cuò)誤: 不兼容的類(lèi)型: 從float轉(zhuǎn)換到int可能會(huì)有損失
      	age = 20.5f;
      	      ^
1 個(gè)錯(cuò)誤

2. 整型

整型就是整數(shù)類(lèi)型,和數(shù)學(xué)中的整數(shù)意義相同,例如:

// 聲明一個(gè)整型變量age
int age = 10;
// 聲明一個(gè)整型變量 score
int score = 100;

整型除了 int 類(lèi)型,還有 shortlong 類(lèi)型,也就是短整型和長(zhǎng)整型,他們用于存放不同范圍的整數(shù)值。需要注意的是,long 類(lèi)型的值后面要以大寫(xiě)字母 L 或小寫(xiě)字母 l 結(jié)尾。請(qǐng)閱讀以下代碼:

// 聲明一個(gè)短整型變量a
short a = 20;
// 聲明一個(gè)長(zhǎng)整型變量b
long b = 100l;
// 聲明一個(gè)長(zhǎng)整型變量c
long c = 100L;

Tips:對(duì)于長(zhǎng)整型,推薦后面總以大寫(xiě)字母 L 結(jié)尾,因?yàn)樾?xiě)字母 l 與數(shù)字 1 容易混淆。

和數(shù)學(xué)一樣,計(jì)算機(jī)中的整型也有進(jìn)制的概念,Java 可以通過(guò)以下幾種進(jìn)制系統(tǒng)表示:

  • 十進(jìn)制:基數(shù)為 10,由 0 到 9 組成; 這是我們?nèi)粘I钪惺褂玫臄?shù)字系統(tǒng);
  • 十六進(jìn)制:基數(shù)為 16,由數(shù)字 0 到 9 和字母 A 到 F 組成;
  • 二進(jìn)制:基數(shù)為 2,由數(shù)字 0 和 1 組成。

Java 中,十六進(jìn)制和二進(jìn)制需要以前綴區(qū)分,前綴 0x 表示十六進(jìn)制,前綴 0b 表示二進(jìn)制,我們來(lái)看一個(gè)示例:

// 十進(jìn)制表示數(shù)字10
int decimalValue = 10;
// 十六進(jìn)制表示數(shù)字10
int hexadecimalValue = 0xA;
// 二進(jìn)制表示數(shù)字10
int binaryValue = 0b1010;

3. 浮點(diǎn)型

浮點(diǎn)類(lèi)型就是數(shù)學(xué)中的小數(shù),在 Java 中,浮點(diǎn)型又可分為單精度浮點(diǎn)型 (float) 和雙精度浮點(diǎn)型 (double)。需要注意的是,float 類(lèi)型的值必須要以大寫(xiě)字母 F 或小寫(xiě)字母 f 結(jié)尾,我們來(lái)看一個(gè)示例:

float f1 = 1.2f;
float f2 = 10.56F;

double 類(lèi)型的值可以以字母 Dd 結(jié)尾,但不做強(qiáng)制:

// 聲明三個(gè)double類(lèi)型變量,其值都為123.3
double d1 = 123.3;
double d2 = 123.3D;
double d3 = 123.3d;

另外浮點(diǎn)類(lèi)型也可以使用字母 Ee,后面跟上次方的數(shù)值,來(lái)表示數(shù)學(xué)中的科學(xué)計(jì)數(shù)法,我們來(lái)看一個(gè)示例:

// 科學(xué)計(jì)數(shù)法表示的 123.4
double d2 = 1.234e2;
float f1  = 1.234e2f;
// 科學(xué)計(jì)數(shù)法表示 200022.1
double d3 = 2.000221e5

4. 布爾類(lèi)型

布爾類(lèi)型 boolean 只有兩個(gè)可能的值:truefalse,它是用于跟蹤判斷條件真假的標(biāo)志。

boolean b1 = true;
boolean b2 = false;

我們將在后面學(xué)習(xí)條件語(yǔ)句的時(shí)候經(jīng)常使用。這時(shí)布爾類(lèi)型才能發(fā)揮它真正的價(jià)值,這里不再贅述。

5. 字符類(lèi)型

字符類(lèi)型 char 表示一個(gè)字符。Java 中的 char 類(lèi)型除了可表示標(biāo)準(zhǔn)的 ASCII 外,還可以表示一個(gè) Unicode 字符:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class CharType {
    public static void main(String[] args) {
        // 存放一個(gè) ASCII 碼
        char a = 97;
        // 存放一個(gè)Unicode字符
        char zh = '慕';
        System.out.println(a);
        System.out.println(zh);
    }
}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

a
慕

Java 語(yǔ)言還為 charString 類(lèi)型(String 類(lèi)型將在后面單獨(dú)講解),支持一些特殊的轉(zhuǎn)義序列:

符號(hào) 代表字符
\ n 換行(0x0a)
\ r 回車(chē)(0x0d)
\F 換頁(yè)(0x0c)
\ b 退格(0x08)
\ s 空格(0x20)
\ t 制表符
" 雙引號(hào)
單引號(hào)
\\ 反斜杠
\ddd 八進(jìn)制字符(ddd)
\ uxxxx 十六進(jìn)制 Unicode 字符(xxxx)

6. 小結(jié)

學(xué)完了本小節(jié),我們來(lái)回顧一下,Java 提供兩大類(lèi)型:基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型。一共有 8 種基本數(shù)據(jù)類(lèi)型?;绢?lèi)型又可分為數(shù)字型(整型和浮點(diǎn)型),字符型以及布爾型。在編碼時(shí)要注意,為變量所賦的值不要超出其類(lèi)型的范圍。