Java基本資料型別與型別轉換例項分析
本文例項講述了Java基本資料型別與型別轉換。分享給大家供大家參考,具體如下:
相關內容:
- 基本資料型別
- 整型
- 浮點型
- 字元型
- 布林型
- 資料型別轉換
- 陣列
首發時間:2017-06-22 21:18
修改時間:
- 2018-03-16 15:40 :修改了一下文字佈局和樣式,增加了“相關內容”,修改了標題,增加了陣列
資料型別:
Java語言是強型別語言,對於每一種資料都定義了明確的具體資料型別,在記憶體總分配了不同大小的記憶體空間
注意:
- 整數預設型別為:int,所以 1 2 3 為int型,而非byte
- 小數預設型別為
- 舉個例子--
整型:
整型的資料型別包括: byte,short,int,long
他們的大小範圍如下:
-
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;//錯誤
-
short
- short型別參與運算的時候,一樣被提升為int或者更高的型別。
-
int
- 整數預設型別為:int
-
long
- 在表示long型別的值時,需要在數值末尾加上l或L,建議是L,因為l難認
- long比int大,有long則計算提升為long
浮點型:
浮點型的資料型別包括:float,double
他們的大小範圍如下:
-
float:
- 給float賦值要加上f,如float=10.2f;否則會失敗,因為預設是double,會有精度損失
- 給float賦值要加上f,如float=10.2f;否則會失敗,因為預設是double,會有精度損失
-
double:
-
浮點數預設型別為double
-
-
特殊浮點值:
-
POSITIVE_INFINITY:表示正無窮
-
NEGATIVE_INFINITY:表示負無窮
-
NaN:表示非數值
-
所有的正無窮大數值都是相等的,所有的負無窮大數值都是相等的;而NaN不與任何數值相等,NaN之間也不相等。
-
只有浮點數除以0才可以得到正無窮或負無窮,整數是除零異常
-
字元型:
字元型別的資料型別有char
- char的字元編碼是Unicode編碼,所以char支援中文。
布林型:
布林型別的資料型別為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
2.轉換規則:
3.
對於A中,可認為在“普通數字”計算過程中先計算得出結果,再分析是否是byte的範圍,如果不是,賦值失敗,提示出錯,如果是就不提示,賦值成功。
令byte b=256;(已知b=20編譯通過)
注意:+=,++能夠自動轉換
4.
1. System.out.println(‘a')與System.out.println('a'+1) 的區別。
5.
強制轉化可以解決精度損失提醒但無法避免精度損失。(數值取值原理同溢位原理)
陣列:
- 陣列是相同型別的變數按照順序組成的一種複合資料型別
- 陣列屬於引用型變數。
-
陣列的宣告:
- 陣列的元素型別 陣列名[];
- 陣列的元素型別[] 陣列名;
- 二維陣列的宣告:陣列的元素型別[][] 陣列名;
- java不允許在宣告陣列中的方括號內指定陣列元素的個數,錯誤情況:
-
陣列的元素定義【宣告僅僅是宣告,並沒有建立記憶體空間,實際的元素還沒有存在。】:
- 陣列名=new 陣列的元素型別[元素個數]
- 宣告的同時也可以建立陣列:
- 也可以利用賦值來建立陣列:
- 但int [] arr =new int [3]{1,2,3} 是非法的。
- 二維陣列:,
-
陣列的初始化:
- 陣列的初始化可以由指定的值初始化,
- 但只指定陣列的大小,而不指定值的時候,採用預設初始化:
- 整數型別的陣列預設元素初始值為0
- 浮點型別的陣列的元素初始值為0.0
- 字元型別的陣列的元素初始值是空字元
- 布林型別的陣列的元素初始值是false
- 引用型別的陣列的元素初始值是null
-
陣列元素的使用:
-
可以通過索引來取得陣列元素:
-
可以使用.length獲取陣列的長度:
-
補充:
- 二維陣列中的一維陣列長度可以不一樣:
- java提供的Arrays類包含了一些static方法能直接運算元組:
- 比如Arrays.toString(陣列):能將陣列的元素轉成一串字串
- Arrays.fill(陣列,value):把陣列的所有元素都賦值為value
- Arrays.sort(陣列):對陣列的元素進行排序
- ....其他
更多java相關內容感興趣的讀者可檢視本站專題:《Java面向物件程式設計入門與進階教程》、《Java資料結構與演算法教程》、《Java操作DOM節點技巧總結》、《Java檔案與目錄操作技巧彙總》和《Java快取操作技巧彙總》
希望本文所述對大家java程式設計有所幫助。