真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java入門-語(yǔ)言基礎(chǔ)-05.基本數(shù)據(jù)類型

原文地址:http://www.work100.net/training/java-basic-datatype.html
更多教程:光束云 - 免費(fèi)課程

成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站改版|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋玻璃隔斷等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身制作品質(zhì)網(wǎng)站。

基本數(shù)據(jù)類型

序號(hào)文內(nèi)章節(jié)視頻
1 概述 -
2 內(nèi)置數(shù)據(jù)類型 -
3 實(shí)例 -
4 類型默認(rèn)值 -
5 引用類型 -
6 Java常量 -
7 自動(dòng)類型轉(zhuǎn)換 -
8 強(qiáng)制類型轉(zhuǎn)換 -
9 隱含強(qiáng)制類型轉(zhuǎn)換 -

請(qǐng)參照如上章節(jié)導(dǎo)航進(jìn)行閱讀

1.概述

變量就是申請(qǐng)內(nèi)存來(lái)存儲(chǔ)值。也就是說(shuō),當(dāng)創(chuàng)建變量的時(shí)候,需要在內(nèi)存中申請(qǐng)空間。

內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配存儲(chǔ)空間,分配的空間只能用來(lái)儲(chǔ)存該類型數(shù)據(jù)。

Java入門 - 語(yǔ)言基礎(chǔ) - 05.基本數(shù)據(jù)類型

因此,通過(guò)定義不同類型的變量,可以在內(nèi)存中儲(chǔ)存整數(shù)、小數(shù)或者字符。

Java 的兩大數(shù)據(jù)類型:

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

2.內(nèi)置數(shù)據(jù)類型

Java 語(yǔ)言提供了八種基本類型。六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型),一種字符類型,還有一種布爾型。

byte

  • byte 數(shù)據(jù)類型是8位、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù)
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默認(rèn)值是 0
  • byte 類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因?yàn)?byte 變量占用的空間只有 int 類型的四分之一
  • 例子:byte a = 100,byte b = -50;

short

  • short 數(shù)據(jù)類型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一
  • 默認(rèn)值是 0
  • 例子:short s = 1000,short r = -20000;

int

  • int 數(shù)據(jù)類型是32位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 一般地整型變量默認(rèn)為 int 類型
  • 默認(rèn)值是 0
  • 例子:int a = 100000, int b = -200000;

long

  • long 數(shù)據(jù)類型是 64 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上
  • 默認(rèn)值是 0L
  • 例子: long a = 100000L,Long b = -200000L;

L理論上不分大小寫,但是若寫成l容易與數(shù)字1混淆,不容易分辯。所以最好大寫

float

  • float 數(shù)據(jù)類型是單精度、32位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)
  • float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間
  • 默認(rèn)值是 0.0f
  • 浮點(diǎn)數(shù)不能用來(lái)表示精確的值,如貨幣
  • 例子:float f1 = 234.5f;

double

  • double 數(shù)據(jù)類型是雙精度、64 位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)
  • 浮點(diǎn)數(shù)的默認(rèn)類型為double類型
  • double類型同樣不能表示精確的值,如貨幣
  • 默認(rèn)值是 0.0d
  • 例子:double d1 = 123.4;

boolean

  • boolean數(shù)據(jù)類型表示一位的信息
  • 只有兩個(gè)取值:truefalse
  • 這種類型只作為一種標(biāo)志來(lái)記錄 true/false 情況
  • 默認(rèn)值是 false
  • 例子:boolean one = true;

char

  • char類型是一個(gè)單一的 16 位 Unicode 字符
  • 最小值是 \u0000(即為0
  • 最大值是 \uffff(即為65,535
  • char 數(shù)據(jù)類型可以儲(chǔ)存任何字符
  • 例子:char letter = 'A';

3.實(shí)例

對(duì)于數(shù)值類型的基本類型的取值范圍,我們無(wú)需強(qiáng)制去記憶,因?yàn)樗鼈兊闹刀家呀?jīng)以常量的形式定義在對(duì)應(yīng)的包裝類中了。請(qǐng)看下面的例子:

public class PrimitiveTypeTest {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("基本類型:byte 二進(jìn)制位數(shù):" + Byte.SIZE);  
        System.out.println("包裝類:java.lang.Byte");  
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
        System.out.println();  

        // short  
        System.out.println("基本類型:short 二進(jìn)制位數(shù):" + Short.SIZE);  
        System.out.println("包裝類:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  

        // int  
        System.out.println("基本類型:int 二進(jìn)制位數(shù):" + Integer.SIZE);  
        System.out.println("包裝類:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  

        // long  
        System.out.println("基本類型:long 二進(jìn)制位數(shù):" + Long.SIZE);  
        System.out.println("包裝類:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  

        // float  
        System.out.println("基本類型:float 二進(jìn)制位數(shù):" + Float.SIZE);  
        System.out.println("包裝類:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  

        // double  
        System.out.println("基本類型:double 二進(jìn)制位數(shù):" + Double.SIZE);  
        System.out.println("包裝類:java.lang.Double");  
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
        System.out.println();  

        // char  
        System.out.println("基本類型:char 二進(jìn)制位數(shù):" + Character.SIZE);  
        System.out.println("包裝類:java.lang.Character");  
        // 以數(shù)值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺(tái)  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以數(shù)值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺(tái)  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }  
}

編譯以上代碼輸出結(jié)果如下所示:

基本類型:byte 二進(jìn)制位數(shù):8
包裝類:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本類型:short 二進(jìn)制位數(shù):16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本類型:int 二進(jìn)制位數(shù):32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本類型:long 二進(jìn)制位數(shù):64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本類型:float 二進(jìn)制位數(shù):32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本類型:double 二進(jìn)制位數(shù):64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本類型:char 二進(jìn)制位數(shù):16
包裝類:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

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

實(shí)際上,Java 中還存在另外一種基本類型 void,它也有對(duì)應(yīng)的包裝類 java.lang.Void,不過(guò)我們無(wú)法直接對(duì)它們進(jìn)行操作。

4.類型默認(rèn)值

下表列出了 Java 各個(gè)類型的默認(rèn)值:

數(shù)據(jù)類型默認(rèn)值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char 'u0000'
String (or any object) null
boolean false

實(shí)例:

public class Test {
    static boolean bool;
    static byte by;
    static char ch;
    static double d;
    static float f;
    static int i;
    static long l;
    static short sh;
    static String str;

    public static void main(String[] args) {
        System.out.println("Bool :" + bool);
        System.out.println("Byte :" + by);
        System.out.println("Character:" + ch);
        System.out.println("Double :" + d);
        System.out.println("Float :" + f);
        System.out.println("Integer :" + i);
        System.out.println("Long :" + l);
        System.out.println("Short :" + sh);
        System.out.println("String :" + str);
    }
}

實(shí)例輸出結(jié)果為:

Bool     :false
Byte     :0
Character:
Double   :0.0
Float    :0.0
Integer  :0
Long     :0
Short    :0
String   :null

5.引用類型

  • 在Java中,引用類型的變量非常類似于C/C++的指針。引用類型指向一個(gè)對(duì)象,指向?qū)ο蟮淖兞渴且米兞?。這些變量在聲明時(shí)被指定為一個(gè)特定的類型,比如 EmployeePuppy 等。變量一旦聲明后,類型就不能被改變了。
  • 對(duì)象、數(shù)組都是引用數(shù)據(jù)類型。
  • 所有引用類型的默認(rèn)值都是null。
  • 一個(gè)引用變量可以用來(lái)引用任何與之兼容的類型。
  • 例子:Site site = new Site("光束云")。

6.Java常量

常量在程序運(yùn)行時(shí)是不能被修改的。

在 Java 中使用 final 關(guān)鍵字來(lái)修飾常量,聲明方式和變量類似:

final double PI = 3.1415927;

雖然常量名也可以用小寫,但為了便于識(shí)別,通常使用大寫字母表示常量。

字面量可以賦給任何內(nèi)置類型的變量。例如:

byte a = 68;
char a = 'A'

byte、int、long、和short都可以用十進(jìn)制16進(jìn)制以及8進(jìn)制的方式來(lái)表示。

當(dāng)使用常量的時(shí)候,前綴 0 表示 8進(jìn)制,而前綴 0x 代表 16進(jìn)制, 例如:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

和其他語(yǔ)言一樣,Java的字符串常量也是包含在兩個(gè)引號(hào)之間的字符序列。下面是字符串型字面量的例子:

"Hello World"
"two\nlines"
"\"This is in quotes\""

字符串常量和字符常量都可以包含任何Unicode字符。例如:

char a = '\u0001';
String a = "\u0001";

Java語(yǔ)言支持一些特殊的轉(zhuǎn)義字符序列。

符號(hào)字符含義
\n 換行 (0x0a)
\r 回車 (0x0d)
\f 換頁(yè)符(0x0c)
\b 退格 (0x08)
\0 空字符 (0x20)
\s 字符串
\t 制表符
\" 雙引號(hào)
\' 單引號(hào)
\\ 反斜杠
\ddd 八進(jìn)制字符 (ddd)
\uxxxx 16進(jìn)制Unicode字符 (xxxx)

7.自動(dòng)類型轉(zhuǎn)換

整型、實(shí)型(常量)、字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算。

轉(zhuǎn)換從低級(jí)到高級(jí)。

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double 

數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:

  • 不能對(duì)boolean類型進(jìn)行類型轉(zhuǎn)換。
  • 不能把對(duì)象類型轉(zhuǎn)換成不相關(guān)類的對(duì)象。
  • 在把容量大的類型轉(zhuǎn)換為容量小的類型時(shí)必須使用強(qiáng)制類型轉(zhuǎn)換。
  • 轉(zhuǎn)換過(guò)程中可能導(dǎo)致溢出或損失精度,例如:
int i =128;   
byte b = (byte)i;

因?yàn)?byte 類型是 8 位,最大值為127,所以當(dāng) int 強(qiáng)制轉(zhuǎn)換為 byte 類型時(shí),值 128 時(shí)候就會(huì)導(dǎo)致溢出。

  • 浮點(diǎn)數(shù)到整數(shù)的轉(zhuǎn)換是通過(guò)舍棄小數(shù)得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45

必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動(dòng)轉(zhuǎn)換位數(shù)為32的int類型,同樣float數(shù)據(jù)類型的位數(shù)為32,可以自動(dòng)轉(zhuǎn)換為64位的double類型。

實(shí)例:

public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char c1='a';//定義一個(gè)char類型
            int i1 = c1;//char自動(dòng)類型轉(zhuǎn)換為int
            System.out.println("char自動(dòng)類型轉(zhuǎn)換為int后的值等于"+i1);
            char c2 = 'A';//定義一個(gè)char類型
            int i2 = c2+1;//char 類型和 int 類型計(jì)算
            System.out.println("char類型和int計(jì)算后的值等于"+i2);
        }
}

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

char自動(dòng)類型轉(zhuǎn)換為int后的值等于97
char類型和int計(jì)算后的值等于66

解析:c1 的值為字符 a ,查 ASCII 碼表可知對(duì)應(yīng)的 int 類型值為 97, A 對(duì)應(yīng)值為 65,所以 i2=65+1=66。

8.強(qiáng)制類型轉(zhuǎn)換

  • 條件:轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。
  • 格式:(type)value type 是要強(qiáng)制類型轉(zhuǎn)換后的數(shù)據(jù)類型,實(shí)例:
public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int i1 = 123;
        byte b = (byte)i1;//強(qiáng)制類型轉(zhuǎn)換為byte
        System.out.println("int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于"+b);
    }
}

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

int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于123

9.隱含強(qiáng)制類型轉(zhuǎn)換

  • 整數(shù)的默認(rèn)類型是 int
  • 浮點(diǎn)型不存在這種情況,因?yàn)樵诙x float 類型時(shí)必須在數(shù)字后面跟上 F 或者 f。

這一節(jié)講解了 Java 的基本數(shù)據(jù)類型。下一節(jié)將探討不同的變量類型以及它們的用法。


上一篇:對(duì)象和類

下一篇:變量類型


網(wǎng)站標(biāo)題:Java入門-語(yǔ)言基礎(chǔ)-05.基本數(shù)據(jù)類型
URL鏈接:http://weahome.cn/article/ihjohd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部