最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年09月25日 15:56:06   投稿:goldensun  
這篇文章主要介紹了深入解析Java中的數(shù)據(jù)類型與變量,是Java入門學習中的基礎知識,需要的朋友可以參考下

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

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

運算中,不同類型的數(shù)據(jù)先轉化為同一類型,然后進行運算,轉換規(guī)則如下:

強制數(shù)據(jù)類型轉換

強制轉換的格式是在需要轉型的數(shù)據(jù)前加上“( )”,然后在括號內加入需要轉化的數(shù)據(jù)類型。有的數(shù)據(jù)經過轉型運算后,精度會丟失,而有的會更加精確,下面的例子可以說明這個問題。

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);
  }
}

運行結果:

x=45
y=56.0

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

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

Java中共有8種基本數(shù)據(jù)類型,包括4 種整型、2 種浮點型、1 種字符型、1 種布爾型,請見下表。

對于整型數(shù)據(jù),通常情況下使用 int 類型。但如果表示投放廣島長崎的原子彈釋放出的能量,就需要使用 long 類型了。byte 和 short 類型主要用于特定的應用場合,例如,底層的文件處理或者需要控制占用存儲空間量的大數(shù)組。

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

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

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

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

float x = 223.56F;
float y = 100.00f;


注意:每個float類型后面都有一個標志“F”或“f”,有這個標志就代表是float類型。

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

double x = 23.45D;
double y = 422.22d;
double z = 562.234;


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

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

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

public class Demo {
  public static void main(String[] args){
    // 字符型
    char webName1 = '微';
    char webName2 = '學';
    char webName3 = '苑';
    System.out.println("網站的名字是:" + webName1 + webName2 + webName3);
    
    // 整型
    short x=22; // 十進制
    int y=022; // 八進制
    long z=0x22L; // 十六進制
    System.out.println("轉化成十進制:x = " + x + ", y = " + y + ", z = " + z);
    
    // 浮點型
    float m = 22.45f;
    double n = 10;
    System.out.println("計算乘積:" + m + " * " + n + "=" + m*n);
  }
}

運行結果:

網站的名字是:微學苑
轉化成十進制:x = 22, y = 18, z = 34
計算乘積:22.45 * 10.0=224.50000762939453

從運行結果可以看出,即使浮點型數(shù)據(jù)只有整數(shù)沒有小數(shù),在控制臺上輸出時系統(tǒng)也會自動加上小數(shù)點,并且小數(shù)位全部置為 0。
對布爾型的說明

如果你有編程經驗,了解布爾型,請?zhí)^下面的教程,下面的教程針對只有C語言基礎的讀者(C語言沒有布爾型)。

在C語言中,如果判斷條件成立,會返回1,否則返回0,例如:

#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;
}

運行結果:

100>10 = 1
100<10 = 0

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

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是對的");
    }else{
      System.out.println("100<10是錯的");
    }
  }
}

運行結果:

100>10 = true
100<10 = false
100<10是對的

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

相關文章

  • java對象數(shù)組實現(xiàn)學生信息管理系統(tǒng)

    java對象數(shù)組實現(xiàn)學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java對象數(shù)組實現(xiàn)學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java難點解讀之異或運算舉例詳解

    Java難點解讀之異或運算舉例詳解

    這篇文章主要介紹了Java難點解讀之異或運算的相關資料,Java中的異或運算是一種位運算符,用于對兩個整數(shù)的每一位進行比較并執(zhí)行異或操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • Java如何實現(xiàn)圖像的卷積效果

    Java如何實現(xiàn)圖像的卷積效果

    這篇文章主要介紹了Java如何實現(xiàn)圖像的卷積效果問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • RabbitMQ中的Publish-Subscribe模式最佳實踐記錄

    RabbitMQ中的Publish-Subscribe模式最佳實踐記錄

    Publish/Subscribe 模式是 RabbitMQ 中一種強大且靈活的消息傳遞模式,適用于需要將消息廣播給多個訂閱者的場景,這篇文章主要介紹了RabbitMQ中的Publish-Subscribe模式,需要的朋友可以參考下
    2024-12-12
  • java中HashMap的七種遍歷方式小結

    java中HashMap的七種遍歷方式小結

    本文主要介紹了java中HashMap的七種遍歷方式小結,包括迭代器,For Each,Lambda,Streams API等,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Java之SpringBoot-Thymeleaf詳情

    Java之SpringBoot-Thymeleaf詳情

    聊Thymeleaf,需要知道為什么到了SpringBoot中就不用JSP了?這跟SpringBoot打包方式有點關系,SpringBoot項目打包是jar包,下面文章小編就對此做一個詳細介紹,需要的朋友可以參考一下
    2021-09-09
  • java生成指定范圍的隨機日期

    java生成指定范圍的隨機日期

    這篇文章主要為大家詳細介紹了java生成指定范圍的隨機日期,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Spring Data JPA實現(xiàn)排序與分頁查詢超詳細流程講解

    Spring Data JPA實現(xiàn)排序與分頁查詢超詳細流程講解

    在介紹Spring Data JPA的時候,我們首先認識下Hibernate。Hibernate是數(shù)據(jù)訪問解決技術的絕對霸主,使用O/R映射技術實現(xiàn)數(shù)據(jù)訪問,O/R映射即將領域模型類和數(shù)據(jù)庫的表進行映射,通過程序操作對象而實現(xiàn)表數(shù)據(jù)操作的能力,讓數(shù)據(jù)訪問操作無須關注數(shù)據(jù)庫相關的技術
    2022-10-10
  • springboot2.5.2與 flowable6.6.0整合流程引擎應用分析

    springboot2.5.2與 flowable6.6.0整合流程引擎應用分析

    這篇文章主要介紹了springboot2.5.2與 flowable6.6.0整合流程引擎應用分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • SpringBoot微信消息接口配置詳解

    SpringBoot微信消息接口配置詳解

    這篇文章主要介紹了SpringBoot 微信消息接口配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-06-06

最新評論

本溪| 陵川县| 濮阳市| 新蔡县| 于都县| 平罗县| 老河口市| 高青县| 大城县| 郓城县| 宜良县| 中牟县| 雅安市| 紫阳县| 兴和县| 闽清县| 安远县| 瓮安县| 黄陵县| 麻江县| 延川县| 威海市| 苍南县| 沽源县| 丹凤县| 云南省| 贵溪市| 巩留县| 榆林市| 罗田县| 武强县| 普宁市| 长治县| 花垣县| 伊通| 京山县| 舒兰市| 灵川县| 台东市| 曲靖市| 左云县|