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