1. 程式人生 > 程式設計 >Java基本資料型別與型別轉換例項分析

Java基本資料型別與型別轉換例項分析

本文例項講述了Java基本資料型別與型別轉換。分享給大家供大家參考,具體如下:

相關內容:

  • 基本資料型別
    • 整型
    • 浮點型
    • 字元型
    • 布林型
  • 資料型別轉換
  • 陣列

首發時間:2017-06-22 21:18

修改時間:

  1. 2018-03-16 15:40 :修改了一下文字佈局和樣式,增加了“相關內容”,修改了標題,增加了陣列

資料型別

Java語言是強型別語言,對於每一種資料都定義了明確的具體資料型別,在記憶體總分配了不同大小的記憶體空間

image_594bbbc5_358b_thumb[1]

image_594bbbc5_3429_thumb 注意:

  • 整數預設型別為:int,所以 1 2 3 int型,而非byte
  • 小數預設型別為
    :double
  • 舉個例子--
  • image_594bbd67_5d2e_thumb[1]

整型:

整型的資料型別包括: byte,short,int,long

他們的大小範圍如下:

image_thumb[1]

  • byte

    • byte共佔8個bit,表示256個數(28)。
    • 最大值為01111111,轉成十進位制為127
    • 最小值為10000000,1是符號位,表示負數,轉成十進位制為128。所以最小值為-128
    • 對byte型別進行數學運算時,會自動提升為int型別,如果表示式中有double或者float等型別,也是自動提升。
      • byte s1 = 100;
      • byte s2 = 'a';
      • byte sum = s1 + s2;//錯誤
        --》因為變成int了,不能直接將一個int賦值給一個byte
  • short

    • short型別參與運算的時候,一樣被提升為int或者更高的型別。
  • int

    • 整數預設型別為:int
  • long

    • 在表示long型別的值時,需要在數值末尾加上l或L,建議是L,因為l難認
    • long比int大,有long則計算提升為long

浮點型:

浮點型的資料型別包括:float,double

他們的大小範圍如下:

image_thumb[3]

  • float:

    • 給float賦值要加上f,如float=10.2f;否則會失敗,因為預設是double,會有精度損失
  • double:

    • 浮點數預設型別為double

  • 特殊浮點值:

    • POSITIVE_INFINITY:表示正無窮

    • NEGATIVE_INFINITY:表示負無窮

    • NaN:表示非數值

    • 所有的正無窮大數值都是相等的,所有的負無窮大數值都是相等的;而NaN不與任何數值相等,NaN之間也不相等。

    • 只有浮點數除以0才可以得到正無窮或負無窮,整數是除零異常


字元型:

字元型別的資料型別有char

  • char的字元編碼是Unicode編碼,所以char支援中文。 image

布林型:

布林型別的資料型別為boolean

boolean只有兩個值:true,false

注意:

不使用--不出現不初始化,使用--必須初始化,true/false

boolean的值只佔一個位元組。

boolean只有true和false

賦值:boolean b =true


型別轉換:

運算中,不同型別的資料先轉化為同一型別,然後進行運算

有自動型別轉換和強制型別轉換:

自動型別轉換如byte+long的結果自動是long

強制型別轉換是把其他型別的結果轉換成目標型別如byte b=(byte)600;

轉換規則:

1.即使是同類型計算,在運算中byte ,short,char也要先轉化為int型

byte b1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是編譯失敗的呢?為什麼呢?

answer:b=b1+b2,因為兩個byte變數的運算也會轉成int的運算,所以b1+b2的結果是一個int

image_594bc1cc_20a8_thumb[1]

2.轉換規則:

image_thumb[9]

3.

image_594bc11d_2ebc_thumb

image_594bc11d_33c0_thumb[1]

對於A中,可認為在“普通數字”計算過程中先計算得出結果,再分析是否是byte的範圍,如果不是,賦值失敗,提示出錯,如果是就不提示,賦值成功。

令byte b=256;(已知b=20編譯通過)image_594bc1f3_6fd4_thumb[1]

注意:+=,++能夠自動轉換

4.

1. System.out.println(‘a')System.out.println('a'+1) 的區別。

image_594bc18c_7912_thumbimage_594bc18c_46c8_thumb[1]

5.

強制轉化可以解決精度損失提醒但無法避免精度損失。(數值取值原理同溢位原理)

image_594bc225_639e_thumb[1]


陣列:

  • 陣列是相同型別的變數按照順序組成的一種複合資料型別
  • 陣列屬於引用型變數。
  • 陣列的宣告:

    • 陣列的元素型別 陣列名[];
    • 陣列的元素型別[] 陣列名;
    • 二維陣列的宣告:陣列的元素型別[][] 陣列名;
    • java不允許在宣告陣列中的方括號內指定陣列元素的個數,錯誤情況:image
  • 陣列的元素定義【宣告僅僅是宣告,並沒有建立記憶體空間,實際的元素還沒有存在。】:

    • 陣列名=new 陣列的元素型別[元素個數]image
    • 宣告的同時也可以建立陣列:image
    • 也可以利用賦值來建立陣列:image
    • 但int [] arr =new int [3]{1,2,3} 是非法的。
    • 二維陣列:imageimage
  • 陣列的初始化:

    • 陣列的初始化可以由指定的值初始化,image
    • 但只指定陣列的大小,而不指定值的時候,採用預設初始化:
      • 整數型別的陣列預設元素初始值為0
      • 浮點型別的陣列的元素初始值為0.0
      • 字元型別的陣列的元素初始值是空字元
      • 布林型別的陣列的元素初始值是false
      • 引用型別的陣列的元素初始值是null
  • 陣列元素的使用:

    • 可以通過索引來取得陣列元素:image

    • 可以使用.length獲取陣列的長度:image

補充:

  • 二維陣列中的一維陣列長度可以不一樣:
    • image
  • java提供的Arrays類包含了一些static方法能直接運算元組:
    • 比如Arrays.toString(陣列):能將陣列的元素轉成一串字串
    • Arrays.fill(陣列,value):把陣列的所有元素都賦值為value
    • Arrays.sort(陣列):對陣列的元素進行排序
    • ....其他

更多java相關內容感興趣的讀者可檢視本站專題:《Java面向物件程式設計入門與進階教程》、《Java資料結構與演算法教程》、《Java操作DOM節點技巧總結》、《Java檔案與目錄操作技巧彙總》和《Java快取操作技巧彙總》

希望本文所述對大家java程式設計有所幫助。