Java-數(shù)據(jù)類型之基本數(shù)據(jù)類型

在Java編程中嗦明,我們會(huì)使用到數(shù)據(jù)類型去定義一個(gè)變量笼沥。那么什么是數(shù)據(jù)類型呢?接下來這篇博客將為大家詳細(xì)介紹Java中的數(shù)據(jù)類型娶牌。

Java數(shù)據(jù)類型概念

數(shù)據(jù)類型在計(jì)算機(jī)語言里面奔浅,是對(duì)內(nèi)存位置的一個(gè)抽象表達(dá)方式,可以理解為針對(duì)內(nèi)存的一種抽象的表達(dá)方式诗良。接觸每種語言的時(shí)候汹桦,都會(huì)存在數(shù)據(jù)類型的認(rèn)識(shí),有復(fù)雜的鉴裹、簡單的舞骆,各種數(shù)據(jù)類型都需要在學(xué)習(xí)初期去了解,Java是強(qiáng)類型語言径荔,所以Java對(duì)于數(shù)據(jù)類型的規(guī)范會(huì)相對(duì)嚴(yán)格督禽。數(shù)據(jù)類型是語言的抽象原子概念,可以說是語言中最基本的單元定義总处,在Java里面狈惫,本質(zhì)上講將數(shù)據(jù)類型分為兩種:基本類型和引用數(shù)據(jù)類型。

數(shù)據(jù)類型分類

數(shù)據(jù)類型分為基本數(shù)據(jù)類型引用型數(shù)據(jù)類型鹦马。

基本類型:簡單數(shù)據(jù)類型是不能簡化的胧谈、內(nèi)置的數(shù)據(jù)類型玖院、由編程語言本身定義,它表示了真實(shí)的數(shù)字第岖、字符和整數(shù)难菌。

引用數(shù)據(jù)類型:Java語言本身不支持C++中的結(jié)構(gòu)(struct)或聯(lián)合(union)數(shù)據(jù)類型,它的復(fù)合數(shù)據(jù)類型一般都是通過類或接口進(jìn)行構(gòu)造蔑滓,類提供了捆綁數(shù)據(jù)和方法的方式郊酒,同時(shí)可以針對(duì)程序外部進(jìn)行信息隱藏。

Java基本數(shù)據(jù)類型

byte:Java中最小的數(shù)據(jù)類型键袱,在內(nèi)存中占8位(bit)燎窘,即1個(gè)字節(jié),取值范圍-128~127蹄咖,默認(rèn)值0褐健;

short:短整型,在內(nèi)存中占16位澜汤,即2個(gè)字節(jié)蚜迅,取值范圍-32768~32717,默認(rèn)值0俊抵;

int:整型谁不,用于存儲(chǔ)整數(shù),在內(nèi)在中占32位徽诲,即4個(gè)字節(jié)刹帕,取值范圍-2147483648~2147483647,默認(rèn)值0谎替;

long:長整型偷溺,在內(nèi)存中占64位,即8個(gè)字節(jié)-263~263-1钱贯,默認(rèn)值0挫掏;

float:浮點(diǎn)型,在內(nèi)存中占32位喷舀,即4個(gè)字節(jié)砍濒,用于存儲(chǔ)帶小數(shù)點(diǎn)的數(shù)字(與double的區(qū)別在于float類型有效小數(shù)點(diǎn)只有6~7位),默認(rèn)值0硫麻;

double:雙精度浮點(diǎn)型爸邢,用于存儲(chǔ)帶有小數(shù)點(diǎn)的數(shù)字,在內(nèi)存中占64位拿愧,即8個(gè)字節(jié)杠河,默認(rèn)值0;

char:字符型,用于存儲(chǔ)單個(gè)字符券敌,占16位唾戚,即2個(gè)字節(jié),取值范圍0~65535待诅,默認(rèn)值為空叹坦;

boolean:布爾類型,占1個(gè)字節(jié)卑雁,用于判斷真或假(僅有兩個(gè)值募书,即true、false)测蹲,默認(rèn)值false莹捡;

基本數(shù)據(jù)類型詳解

byte

1.byte 數(shù)據(jù)類型是8位、有符號(hào)的扣甲,以二進(jìn)制補(bǔ)碼表示的整數(shù)篮赢;
2.最小值是 -128(-2^7);
3.最大值是 127(2^7-1)琉挖;
4.默認(rèn)值是 0启泣;
5.byte 類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù)粹排,因?yàn)?byte 變量占用的空間只有 int 類型的四分之一种远;
6.例子:byte a = 100涩澡,byte b = -50顽耳。

short

1.short 數(shù)據(jù)類型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)妙同;
2.最小值是 -32768(-2^15)射富;
3.最大值是 32767(2^15 - 1);
4.Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間粥帚。一個(gè)short變量是int型變量所占空間的二分之一胰耗;
5.默認(rèn)值是 0;
6.例子:short s=1000芒涡,short r =-20000柴灯。

int

1.int數(shù)據(jù)類型是32位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)费尽;
2.最小值是-2,147,483,684(-2^31);
3.最大值是2,147,483,647(2^31 - 1)赠群;
4.一般的整形變量默認(rèn)為int類型;
5.默認(rèn)值是0旱幼;
6.例子:int a=100000查描,int b=-200000;

long

1.long數(shù)據(jù)類型是64位,有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)冬三;
2.最小值是-9,223,372,036,854,775,808(-2^63)匀油;
3.最大值是9,223,372,036,854,775,807(2^63 -1);
4.這種類型主要使用在需要比較大的整數(shù)系統(tǒng)上勾笆;
5.默認(rèn)值為0敌蚜;
6.例子: long a = 100000L,Long b = -200000L窝爪。

"L"理論上不分大小寫钝侠,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯酸舍。所以最好大寫帅韧。

float

1.float數(shù)據(jù)類型是單精度、32位啃勉、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)忽舟;
2.float在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;
3.默認(rèn)值是0.0f淮阐;
4.浮點(diǎn)數(shù)不能用來表示精確的值叮阅,如貨幣;
5.例子:float f1=234.5f泣特。

double

1.double數(shù)據(jù)類型雙精度浩姥、64位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)状您;
2.浮點(diǎn)數(shù)的默認(rèn)類型為double類型勒叠;
3.double類型同樣不能表示精確的值,如貨幣膏孟;
4.默認(rèn)值是0.0d眯分;
5.例子:double d1 = 123.4。

boolean

1.boolean數(shù)據(jù)類型表示一位的信息柒桑;
2.只有兩個(gè)取值:true 和 false弊决;
3.這種類型只作為一種標(biāo)志來記錄 true/false 情況;
4.默認(rèn)值是 false魁淳;
5.例子:boolean one = true飘诗。

char

1.char類型是一個(gè)單一的 16 位 Unicode 字符;
2.最小值是 \u0000(即為0)界逛;
3.最大值是 \uffff(即為65,535)昆稿;
4.char 數(shù)據(jù)類型可以儲(chǔ)存任何字符;
5.例子:char letter = 'A';

數(shù)據(jù)類型代碼實(shí)例

這個(gè)實(shí)例是我在網(wǎng)上找的仇奶,可能在其他的地方看到一樣貌嫡,各位看官不要介意氨茸ぁ(/尷尬)

貼代碼

public class MyTypeTest {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("基本類型:byte 二進(jìn)制位數(shù):" + Byte.SIZE);  
        System.out.println("包裝類:java.lang.Byte");  
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
        System.out.println();  
  
        // short  
        System.out.println("基本類型:short 二進(jìn)制位數(shù):" + Short.SIZE);  
        System.out.println("包裝類:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  
  
        // int  
        System.out.println("基本類型:int 二進(jìn)制位數(shù):" + Integer.SIZE);  
        System.out.println("包裝類:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  
  
        // long  
        System.out.println("基本類型:long 二進(jìn)制位數(shù):" + Long.SIZE);  
        System.out.println("包裝類:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  
  
        // float  
        System.out.println("基本類型:float 二進(jìn)制位數(shù):" + Float.SIZE);  
        System.out.println("包裝類:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        System.out.println("基本類型:double 二進(jìn)制位數(shù):" + Double.SIZE);  
        System.out.println("包裝類:java.lang.Double");  
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
        System.out.println();  
  
        // char  
        System.out.println("基本類型:char 二進(jìn)制位數(shù):" + Character.SIZE);  
        System.out.println("包裝類:java.lang.Character");  
        // 以數(shù)值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺(tái)  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以數(shù)值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺(tái)  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }  
}

運(yùn)行結(jié)果

基本類型:byte 二進(jìn)制位數(shù):8
包裝類:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本類型:short 二進(jìn)制位數(shù):16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本類型:int 二進(jìn)制位數(shù):32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本類型:long 二進(jìn)制位數(shù):64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本類型:float 二進(jìn)制位數(shù):32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本類型:double 二進(jìn)制位數(shù):64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本類型:char 二進(jìn)制位數(shù):16
包裝類:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

代碼實(shí)例總結(jié)

Float和Double的最小值和最大值都是以科學(xué)記數(shù)法的形式輸出的,結(jié)尾的"E+數(shù)字"表示E之前的數(shù)字要乘以10的多少次方岛抄。比如3.14E^3就是3.14 × 10^3 =3140别惦,3.14E^-3 就是 3.14 x 10^-3 =0.00314。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夫椭,一起剝皮案震驚了整個(gè)濱河市掸掸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蹭秋,老刑警劉巖扰付,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仁讨,居然都是意外死亡羽莺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門洞豁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盐固,“玉大人,你說我怎么就攤上這事丈挟〉蟛罚” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵曙咽,是天一觀的道長蛔趴。 經(jīng)常有香客問我,道長例朱,這世上最難降的妖魔是什么孝情? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮茉继,結(jié)果婚禮上咧叭,老公的妹妹穿的比我還像新娘。我一直安慰自己烁竭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般塘娶。 火紅的嫁衣襯著肌膚如雪郭脂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天输虱,我揣著相機(jī)與錄音,去河邊找鬼。 笑死际跪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姆打,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼良姆,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了幔戏?” 一聲冷哼從身側(cè)響起玛追,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闲延,沒想到半個(gè)月后痊剖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垒玲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年陆馁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片合愈。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氮惯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出想暗,到底是詐尸還是另有隱情妇汗,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布说莫,位于F島的核電站杨箭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏储狭。R本人自食惡果不足惜互婿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辽狈。 院中可真熱鬧慈参,春花似錦、人聲如沸刮萌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽着茸。三九已至壮锻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涮阔,已是汗流浹背猜绣。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敬特,地道東北人掰邢。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓牺陶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辣之。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掰伸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容