一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 深入解析Java中的數(shù)據(jù)類型與變量

深入解析Java中的數(shù)據(jù)類型與變量

2020-01-06 14:26goldensun JAVA教程

這篇文章主要介紹了深入解析Java中的數(shù)據(jù)類型與變量,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

Java數(shù)據(jù)類型轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換)
數(shù)據(jù)類型的轉(zhuǎn)換,分為自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換是程序在執(zhí)行過(guò)程中“悄然”進(jìn)行的轉(zhuǎn)換,不需要用戶提前聲明,一般是從位數(shù)低的類型向位數(shù)高的類型轉(zhuǎn)換;強(qiáng)制類型轉(zhuǎn)換則必須在代碼中聲明,轉(zhuǎn)換順序不受限制。
自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換

自動(dòng)轉(zhuǎn)換按從低到高的順序轉(zhuǎn)換。不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下:
    低--------------------------------------------->高
    byte,short,char-> int -> long -> float -> double

運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換規(guī)則如下:
深入解析Java中的數(shù)據(jù)類型與變量
強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換

強(qiáng)制轉(zhuǎn)換的格式是在需要轉(zhuǎn)型的數(shù)據(jù)前加上“( )”,然后在括號(hào)內(nèi)加入需要轉(zhuǎn)化的數(shù)據(jù)類型。有的數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)型運(yùn)算后,精度會(huì)丟失,而有的會(huì)更加精確,下面的例子可以說(shuō)明這個(gè)問(wèn)題。

?
1
2
3
4
5
6
7
8
9
10
public class Demo {
  public static void main(String[] args){
    int x;
    double y;
    x = (int)34.56 + (int)11.2; // 丟失精度
    y = (double)x + (double)10 + 1; // 提高精度
    System.out.println("x=" + x);
    System.out.println("y=" + y);
  }
}

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

?
1
2
x=45
y=56.0

仔細(xì)分析上面程序段:由于在 34.56 前有一個(gè) int 的強(qiáng)制類型轉(zhuǎn)化,所以 34.56 就變成了 34。同樣 11.2 就變成了 11 了,所以 x 的結(jié)果就是 45。在 x 前有一個(gè) double 類型的強(qiáng)制轉(zhuǎn)換,所以 x 的值變?yōu)?45.0,而 10 的前面也被強(qiáng)制成 double 類型,所以也變成 10.0,所以最后 y 的值變?yōu)?56。

Java數(shù)據(jù)類型以及變量的定義
Java 是一種強(qiáng)類型的語(yǔ)言,聲明變量時(shí)必須指明數(shù)據(jù)類型。變量(variable)的值占據(jù)一定的內(nèi)存空間。不同類型的變量占據(jù)不同的大小。

Java中共有8種基本數(shù)據(jù)類型,包括4 種整型、2 種浮點(diǎn)型、1 種字符型、1 種布爾型,請(qǐng)見(jiàn)下表。
深入解析Java中的數(shù)據(jù)類型與變量
對(duì)于整型數(shù)據(jù),通常情況下使用 int 類型。但如果表示投放廣島長(zhǎng)崎的原子彈釋放出的能量,就需要使用 long 類型了。byte 和 short 類型主要用于特定的應(yīng)用場(chǎng)合,例如,底層的文件處理或者需要控制占用存儲(chǔ)空間量的大數(shù)組。

在Java中,整型數(shù)據(jù)的長(zhǎng)度與平臺(tái)無(wú)關(guān),這就解決了軟件從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái)時(shí)給程序員帶來(lái)的諸多問(wèn)題。與此相反,C/C++ 整型數(shù)據(jù)的長(zhǎng)度是與平臺(tái)相關(guān)的,程序員需要針對(duì)不同平臺(tái)選擇合適的整型,這就可能導(dǎo)致在64位系統(tǒng)上穩(wěn)定運(yùn)行的程序在32位系統(tǒng)上發(fā)生整型溢出。

八進(jìn)制有一個(gè)前綴 0,例如 010 對(duì)應(yīng)十進(jìn)制中的 8;十六進(jìn)制有一個(gè)前綴 0x,例如 0xCAFE;從 Java 7 開(kāi)始,可以使用前綴 0b 來(lái)表示二進(jìn)制數(shù)據(jù),例如 0b1001 對(duì)應(yīng)十進(jìn)制中的 9。同樣從 Java 7 開(kāi)始,可以使用下劃線來(lái)分隔數(shù)字,類似英文數(shù)字寫法,例如 1_000_000 表示 1,000,000,也就是一百萬(wàn)。下劃線只是為了讓代碼更加易讀,編譯器會(huì)刪除這些下劃線。

另外,不像 C/C++,Java 不支持無(wú)符號(hào)類型(unsigned)。

float 類型有效數(shù)字最長(zhǎng)為 7 位,有效數(shù)字長(zhǎng)度包括了整數(shù)部分和小數(shù)部分。例如:

?
1
2
float x = 223.56F;
float y = 100.00f;


注意:每個(gè)float類型后面都有一個(gè)標(biāo)志“F”或“f”,有這個(gè)標(biāo)志就代表是float類型。

double 類型有效數(shù)字最長(zhǎng)為 15 位。與 float 類型一樣,double 后面也帶有標(biāo)志“D”或“d”。例如:

?
1
2
3
double x = 23.45D;
double y = 422.22d;
double z = 562.234;


注意:不帶任何標(biāo)志的浮點(diǎn)型數(shù)據(jù),系統(tǒng)默認(rèn)是 double 類型。

大多數(shù)情況下都是用 double 類型,float 的精度很難滿足需求。

不同數(shù)據(jù)類型應(yīng)用舉例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Demo {
  public static void main(String[] args){
    // 字符型
    char webName1 = '微';
    char webName2 = '學(xué)';
    char webName3 = '苑';
    System.out.println("網(wǎng)站的名字是:" + webName1 + webName2 + webName3);
    
    // 整型
    short x=22; // 十進(jìn)制
    int y=022; // 八進(jìn)制
    long z=0x22L; // 十六進(jìn)制
    System.out.println("轉(zhuǎn)化成十進(jìn)制:x = " + x + ", y = " + y + ", z = " + z);
    
    // 浮點(diǎn)型
    float m = 22.45f;
    double n = 10;
    System.out.println("計(jì)算乘積:" + m + " * " + n + "=" + m*n);
  }
}

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

?
1
2
3
網(wǎng)站的名字是:微學(xué)苑
轉(zhuǎn)化成十進(jìn)制:x = 22, y = 18, z = 34
計(jì)算乘積:22.45 * 10.0=224.50000762939453

從運(yùn)行結(jié)果可以看出,即使浮點(diǎn)型數(shù)據(jù)只有整數(shù)沒(méi)有小數(shù),在控制臺(tái)上輸出時(shí)系統(tǒng)也會(huì)自動(dòng)加上小數(shù)點(diǎn),并且小數(shù)位全部置為 0。
對(duì)布爾型的說(shuō)明

如果你有編程經(jīng)驗(yàn),了解布爾型,請(qǐng)?zhí)^(guò)下面的教程,下面的教程針對(duì)只有C語(yǔ)言基礎(chǔ)的讀者(C語(yǔ)言沒(méi)有布爾型)。

在C語(yǔ)言中,如果判斷條件成立,會(huì)返回1,否則返回0,例如:

?
1
2
3
4
5
6
7
8
#include <stdio.h>
int main(){
  int x = 100>10;
  int y = 100<10;
  printf("100>10 = %d\n", x);
  printf("100<10 = %d\n", y);
  return 0;
}

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

?
1
2
100>10 = 1
100<10 = 0

但是在Java中不一樣,條件成立返回 true,否則返回 false,即布爾類型。例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Demo {
  public static void main(String[] args){
    // 字符型
    boolean a = 100>10;
    boolean b = 100<10;
    System.out.println("100>10 = " + a);
    System.out.println("100<10 = " + b);
    
    if(a){
      System.out.println("100<10是對(duì)的");
    }else{
      System.out.println("100<10是錯(cuò)的");
    }
  }
}

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

?
1
2
3
100>10 = true
100<10 = false
100<10是對(duì)的

實(shí)際上,true 等同于1,false 等同于0,只不過(guò)換了個(gè)名稱,并單獨(dú)地成為一種數(shù)據(jù)類型。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人亚洲欧美日韩中文字幕 | 德国高清freexxxx性 | 国产成人精品午夜在线播放 | 高h全肉np触手 | 99久久精品国产片久人 | 美女张开下身让男人桶 | 韩国一区二区三区 | 国产色视频一区二区三区 | 扒开腿开嫩苞 | 波多野结衣不卡 | 成人午夜影院在线观看 | videos护士有奶水 | 久久亚洲国产成人影院 | 四虎官网| 欧美高清在线精品一区二区不卡 | 色天天综合色天天看 | 日韩毛片高清在线看 | 波多野结衣在线观看视频 | 香蕉久久ac一区二区三区 | 精品国产自在现线拍400部 | 亚洲精品乱码久久久久久蜜桃图片 | 俄罗斯处女 | 久久国产精品高清一区二区三区 | 国产实拍会所女技师在线 | 91高清在线视频 | 小辣椒精品福利视频导航 | 日产乱码卡一卡2卡三卡四福利 | 手机看片福利 | 日本又黄又裸一级大黄裸片 | 好姑娘完整版在线观看中文 | 久久精品亚洲热综合一本 | 成人毛片高清视频观看 | 王晶三级作品 | 久久久久青草大香线综合精品 | 欧美精品一区二区三区免费 | 亚洲一区二区三区不卡在线播放 | 精品国产乱码久久久久久免费流畅 | 国产高清路线一路线二2022 | 国产精品免费看香蕉 | 丝瓜草莓香蕉绿巨人幸福宝 | 久久午夜一区二区 |