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語言是強類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間
![image_594bbbc5_358b_thumb[1] image_594bbbc5_358b_thumb[1]](http://img.jbzj.com/file_images/article/202004/202004200907121.png)
注意:
- 整數(shù)默認(rèn)類型為:int,所以 1 2 3 為int型,而非byte
- 小數(shù)默認(rèn)類型為:double
- 舉個例子--
![image_594bbd67_5d2e_thumb[1] image_594bbd67_5d2e_thumb[1]](http://img.jbzj.com/file_images/article/202004/202004200907123.png)
整型:
整型的數(shù)據(jù)類型包括: byte,short,int,long
他們的大小范圍如下:
![image_thumb[1] image_thumb[1]](http://img.jbzj.com/file_images/article/202004/202004200907144.png)
-
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é)運算時,會自動提升為int類型,如果表達(dá)式中有double或者float等類型,也是自動提升。
- byte s1 = 100;
- byte s2 = 'a';
- byte sum = s1 + s2;//錯誤 --》因為變成int了,不能直接將一個int賦值給一個byte
-
short
- short類型參與運算的時候,一樣被提升為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
他們的大小范圍如下:
![image_thumb[3] image_thumb[3]](http://img.jbzj.com/file_images/article/202004/202004200907145.png)
-
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)換:
運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運算
有自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換:
自動類型轉(zhuǎn)換如byte+long的結(jié)果自動是long
強制類型轉(zhuǎn)換是把其他類型的結(jié)果轉(zhuǎn)換成目標(biāo)類型如byte b=(byte)600;
轉(zhuǎn)換規(guī)則:
1.即使是同類型計算,在運算中byte ,short,char也要先轉(zhuǎn)化為int型
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什么呢?
answer:b=b1+b2 ,因為兩個byte變量的運算也會轉(zhuǎn)成int的運算,所以b1+b2的結(jié)果是一個int
![image_594bc1cc_20a8_thumb[1] image_594bc1cc_20a8_thumb[1]](http://img.jbzj.com/file_images/article/202004/202004200907197.png)
2.轉(zhuǎn)換規(guī)則:
![image_thumb[9] image_thumb[9]](http://img.jbzj.com/file_images/article/202004/202004200907198.png)
3.

![image_594bc11d_33c0_thumb[1] image_594bc11d_33c0_thumb[1]](http://img.jbzj.com/file_images/article/202004/2020042009071910.png)
對于A中,可認(rèn)為在“普通數(shù)字”計算過程中先計算得出結(jié)果,再分析是否是byte的范圍,如果不是,賦值失敗,提示出錯,如果是就不提示,賦值成功。
令byte b=256;(已知b=20編譯通過)![image_594bc1f3_6fd4_thumb[1] image_594bc1f3_6fd4_thumb[1]](http://img.jbzj.com/file_images/article/202004/2020042009071911.png)
注意:+=,++能夠自動轉(zhuǎn)換
4.
1. System.out.println(‘a(chǎn)')與System.out.println('a'+1) 的區(qū)別。

![image_594bc18c_46c8_thumb[1] image_594bc18c_46c8_thumb[1]](http://img.jbzj.com/file_images/article/202004/2020042009071913.png)
5.
強制轉(zhuǎn)化可以解決精度損失提醒但無法避免精度損失。(數(shù)值取值原理同溢出原理)
![image_594bc225_639e_thumb[1] image_594bc225_639e_thumb[1]](http://img.jbzj.com/file_images/article/202004/2020042009072114.png)
數(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)存空間,實際的元素還沒有存在?!浚?/h2>
- 數(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ù)組的長度:

-
補充:
- 二維數(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)文章
springcloud?如何解決微服務(wù)之間token傳遞問題
這篇文章主要介紹了springcloud?如何解決微服務(wù)之間token傳遞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
大數(shù)據(jù) java hive udf函數(shù)的示例代碼(手機(jī)號碼脫敏)
這篇文章主要介紹了大數(shù)據(jù) java hive udf函數(shù)(手機(jī)號碼脫敏),的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
java操作excel導(dǎo)入導(dǎo)出的3種方式
項目需要,要實現(xiàn)一個導(dǎo)入導(dǎo)出excel的功能,于是任務(wù)驅(qū)動著我學(xué)習(xí)到了POI、easypoi和easyexcel這3個java操作Excel的工具,下面這篇文章主要給大家介紹了關(guān)于java操作excel導(dǎo)入導(dǎo)出的3種方式,需要的朋友可以參考下2023-05-05
SpringBoot?@Scheduled?Cron表達(dá)式使用方式
這篇文章主要介紹了SpringBoot?@Scheduled?Cron表達(dá)式使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
基于SpringBoot + Android實現(xiàn)登錄功能
在移動互聯(lián)網(wǎng)的今天,許多應(yīng)用需要通過移動端實現(xiàn)與服務(wù)器的交互功能,其中登錄是最常見且基礎(chǔ)的一種功能,本篇博客將詳細(xì)介紹如何使用 Spring Boot 和 Android 實現(xiàn)一個完整的登錄功能,需要的朋友可以參考下2024-11-11


