Java基本數(shù)據(jù)類型與類型轉(zhuǎn)換實例分析
本文實例講述了Java基本數(shù)據(jù)類型與類型轉(zhuǎn)換。分享給大家供大家參考,具體如下:
相關(guān)內(nèi)容:
- 基本數(shù)據(jù)類型
- 整型
- 浮點型
- 字符型
- 布爾型
- 數(shù)據(jù)類型轉(zhuǎn)換
- 數(shù)組
首發(fā)時間:2017-06-22 21:18
修改時間:
- 2018-03-16 15:40 :修改了一下文字布局和樣式,增加了“相關(guān)內(nèi)容”,修改了標(biāo)題,增加了數(shù)組
數(shù)據(jù)類型:
Java語言是強(qiáng)類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間
注意:
- 整數(shù)默認(rèn)類型為:int,所以 1 2 3 為int型,而非byte
- 小數(shù)默認(rèn)類型為:double
- 舉個例子--
整型:
整型的數(shù)據(jù)類型包括: byte,short,int,long
他們的大小范圍如下:
-
byte
- byte共占8個bit,表示256個數(shù)(28)。
- 最大值為01111111,轉(zhuǎn)成十進(jìn)制為127
- 最小值為10000000,1是符號位,表示負(fù)數(shù),轉(zhuǎn)成十進(jìn)制為128。所以最小值為-128
- 對byte類型進(jìn)行數(shù)學(xué)運(yùn)算時,會自動提升為int類型,如果表達(dá)式中有double或者float等類型,也是自動提升。
- byte s1 = 100;
- byte s2 = 'a';
- byte sum = s1 + s2;//錯誤 --》因為變成int了,不能直接將一個int賦值給一個byte
-
short
- short類型參與運(yùn)算的時候,一樣被提升為int或者更高的類型。
-
int
- 整數(shù)默認(rèn)類型為:int
-
long
- 在表示long類型的值時,需要在數(shù)值末尾加上l或L,建議是L,因為l難認(rèn)
- long比int大,有l(wèi)ong則計算提升為long
浮點型:
浮點型的數(shù)據(jù)類型包括:float,double
他們的大小范圍如下:
-
float:
- 給float賦值要加上f,如float=10.2f;否則會失敗,因為默認(rèn)是double,會有精度損失
-
double:
-
浮點數(shù)默認(rèn)類型為double
-
-
特殊浮點值:
-
POSITIVE_INFINITY:表示正無窮
-
NEGATIVE_INFINITY:表示負(fù)無窮
-
NaN:表示非數(shù)值
-
所有的正無窮大數(shù)值都是相等的,所有的負(fù)無窮大數(shù)值都是相等的;而NaN不與任何數(shù)值相等,NaN之間也不相等。
-
只有浮點數(shù)除以0才可以得到正無窮或負(fù)無窮,整數(shù)是除零異常
-
字符型:
字符類型的數(shù)據(jù)類型有char
- char的字符編碼是Unicode編碼,所以char支持中文。
布爾型:
布爾類型的數(shù)據(jù)類型為boolean
boolean只有兩個值:true,false
注意:
不使用--不出現(xiàn)不初始化,使用--必須初始化,true/false
boolean的值只占一個字節(jié)。
boolean只有true和false
賦值:boolean b =true
類型轉(zhuǎn)換:
運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算
有自動類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換:
自動類型轉(zhuǎn)換如byte+long的結(jié)果自動是long
強(qiáng)制類型轉(zhuǎn)換是把其他類型的結(jié)果轉(zhuǎn)換成目標(biāo)類型如byte b=(byte)600;
轉(zhuǎn)換規(guī)則:
1.即使是同類型計算,在運(yùn)算中byte ,short,char也要先轉(zhuǎn)化為int型
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什么呢?
answer:b=b1+b2 ,因為兩個byte變量的運(yùn)算也會轉(zhuǎn)成int的運(yùn)算,所以b1+b2的結(jié)果是一個int
2.轉(zhuǎn)換規(guī)則:
3.
對于A中,可認(rèn)為在“普通數(shù)字”計算過程中先計算得出結(jié)果,再分析是否是byte的范圍,如果不是,賦值失敗,提示出錯,如果是就不提示,賦值成功。
令byte b=256;(已知b=20編譯通過)
注意:+=,++能夠自動轉(zhuǎn)換
4.
1. System.out.println(‘a(chǎn)')與System.out.println('a'+1) 的區(qū)別。
5.
強(qiáng)制轉(zhuǎn)化可以解決精度損失提醒但無法避免精度損失。(數(shù)值取值原理同溢出原理)
數(shù)組:
- 數(shù)組是相同類型的變量按照順序組成的一種復(fù)合數(shù)據(jù)類型
- 數(shù)組屬于引用型變量。
-
數(shù)組的聲明:
- 數(shù)組的元素類型 數(shù)組名[];
- 數(shù)組的元素類型[] 數(shù)組名;
- 二維數(shù)組的聲明:數(shù)組的元素類型[][] 數(shù)組名;
- java不允許在聲明數(shù)組中的方括號內(nèi)指定數(shù)組元素的個數(shù),錯誤情況:
-
數(shù)組的元素定義【聲明僅僅是聲明,并沒有創(chuàng)建內(nèi)存空間,實際的元素還沒有存在。】:
- 數(shù)組名=new 數(shù)組的元素類型[元素個數(shù)]
- 聲明的同時也可以創(chuàng)建數(shù)組:
- 也可以利用賦值來創(chuàng)建數(shù)組:
- 但int [] arr =new int [3]{1,2,3} 是非法的。
- 二維數(shù)組:
,
- 數(shù)組名=new 數(shù)組的元素類型[元素個數(shù)]
-
數(shù)組的初始化:
- 數(shù)組的初始化可以由指定的值初始化,
- 但只指定數(shù)組的大小,而不指定值的時候,采用默認(rèn)初始化:
- 整數(shù)類型的數(shù)組默認(rèn)元素初始值為0
- 浮點類型的數(shù)組的元素初始值為0.0
- 字符類型的數(shù)組的元素初始值是空字符
- 布爾類型的數(shù)組的元素初始值是false
- 引用類型的數(shù)組的元素初始值是null
- 數(shù)組的初始化可以由指定的值初始化,
-
數(shù)組元素的使用:
-
可以通過索引來取得數(shù)組元素:
-
可以使用.length獲取數(shù)組的長度:
-
補(bǔ)充:
- 二維數(shù)組中的一維數(shù)組長度可以不一樣:
- java提供的Arrays類包含了一些static方法能直接操作數(shù)組:
- 比如Arrays.toString(數(shù)組):能將數(shù)組的元素轉(zhuǎn)成一串字符串
- Arrays.fill(數(shù)組,value):把數(shù)組的所有元素都賦值為value
- Arrays.sort(數(shù)組):對數(shù)組的元素進(jìn)行排序
- ....其他
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
完美解決idea moudle沒有藍(lán)色的小方塊的問題
這篇文章主要介紹了完美解決idea moudle沒有藍(lán)色的小方塊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)
本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02Spring Security將用戶數(shù)據(jù)存儲到數(shù)據(jù)庫的方法
這篇文章主要介紹了Spring Security將用戶數(shù)據(jù)存儲到數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09java拋出異常后,后續(xù)代碼是否繼續(xù)執(zhí)行詳解
這篇文章主要給大家介紹了關(guān)于java拋出異常后,后續(xù)代碼是否繼續(xù)執(zhí)行詳?shù)南嚓P(guān)資料,在Java編程中,異常是當(dāng)程序執(zhí)行時遇到問題時拋出的一種特殊情況,需要的朋友可以參考下2023-07-07Spring Boot @Scheduled定時任務(wù)代碼實例解析
這篇文章主要介紹了Spring Boot @Scheduled定時任務(wù)代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06