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

1. java數(shù)據(jù)類型概述

Java語言中的數(shù)據(jù)類型分為兩大類,分別是基本類型和引用類型隘弊。程序中需要處理許多數(shù)據(jù)抛丽,對于不同數(shù)據(jù)都有其對應(yīng)的數(shù)據(jù)類型,其實就是在內(nèi)存中開辟一個存儲空間來存放數(shù)據(jù),不同數(shù)據(jù)所開辟的內(nèi)存大小也會不一樣齐莲。

2. 數(shù)據(jù)存儲的單位

位痢站、字節(jié)、字 是計算機數(shù)據(jù)存儲的單位选酗。位是最小的存儲單位阵难,每一個位存儲一個1位的二進(jìn)制碼,一個字節(jié)由8位組成芒填。而字通常為16呜叫、32或64個位組成。

位(bit):是計算機中最基本的單位殿衰,位是最基本的概念朱庆,在計算機中,由于只有邏輯0和邏輯1的存在闷祥,即每一個邏輯0或者1便是一個位

字節(jié)(byte):計算機中處理數(shù)據(jù)的基本單位娱颊,是由八個位組成的一個單元,8個bit組成1個Byte

字(word):代表計算機處理指令或數(shù)據(jù)的二進(jìn)制數(shù)位數(shù)凯砍,是計算機進(jìn)行數(shù)據(jù)存儲和數(shù)據(jù)處理的運算的單位箱硕,在常見的計算機編碼格式下,一個字等于兩個字節(jié)(十六位)(1word = 2Byte = 16bit)

3. 基本數(shù)據(jù)類型

Java基本類型共有八種悟衩,基本類型可以分為三類剧罩,字符類型char,布爾類型boolean以及數(shù)值類型byte座泳、short惠昔、int、long挑势、float镇防、double。數(shù)值類型又可以分為整數(shù)類型byte薛耻、short营罢、int、long和浮點數(shù)類型float饼齿、double饲漾。JAVA中的數(shù)值類型不存在無符號的,它們的取值范圍是固定的缕溉,不會隨著機器硬件環(huán)境或者操作系統(tǒng)的改變而改變考传。實際上,JAVA中還存在另外一種基本類型void证鸥,它也有對應(yīng)的包裝類 java.lang.Void僚楞,不過我們無法直接對它們進(jìn)行操作勤晚。

3.1 八種數(shù)據(jù)類型

3.2 基本數(shù)據(jù)類型的字節(jié)數(shù)及表示范圍

整型(4個): byte(字節(jié)型)、short(短整型)泉褐、int(整型)赐写、long(長整型)

byte a = 100;

short s = 1000;

int a = 100000;

long a = 100000L;

注. 聲明long類型數(shù)據(jù)的時候,后面需要加L或者l (一般加大寫L)膜赃;

浮點型(2個):float(單精度型/浮點型) 挺邀、double(雙精度型)

float f1 = 1.1f;

double d1 = 1.2;

注.聲明float類型的數(shù)據(jù)的時候加f或者F;

double類型的數(shù)據(jù)的有效位數(shù) 15~16;

3.float類型的數(shù)據(jù)有效位數(shù)是 6~7跳座;

字符(1個): char(字符型)

**注.**聲明char類型的數(shù)據(jù)的時候端铛,使用單引號聲明。并且單引號里面只能放一個元素疲眷;

char name = 'a'

布爾類型:(1個): boolean(布爾類型)

一般用來做邏輯判斷禾蚕,一般用于流程控制,數(shù)據(jù)值只有true或false狂丝,適用于邏輯計算换淆。

4. 包裝類型

Java 是面向?qū)ο蟮恼Z言,但是為了便于開發(fā)者的使用美侦,Java 中卻沿用了 C 語言的基本數(shù)據(jù)類型产舞,在進(jìn)行基本的數(shù)據(jù)計算時,開發(fā)者可以直接使用基礎(chǔ)類菠剩。但是基本數(shù)據(jù)類型是不具備對象的特征的,不能調(diào)用方法耻煤,而且基本數(shù)據(jù)類型不能存入集合中具壮,所以就需要將基礎(chǔ)數(shù)據(jù)類型實例封裝為 Java 對象,使其具有了對象的屬性和方法哈蝇。

4.1 基本類型與包裝類的區(qū)別

存儲位置不同:

基本數(shù)據(jù)類型直接將值放在棧中棺妓;

包裝類型是把對象放在堆中,然后通過對象的引用來調(diào)用他們 炮赦;

初始值不同:

int的初始值為 0 怜跑、 boolean的初始值為false ;

包裝類型的初始值為null 吠勘;

使用方式不同:

基本數(shù)據(jù)類型直接賦值使用就好性芬;

在集合如 coolectionMap 中只能使用包裝類型;

4.2 基本類型與包裝類的相互轉(zhuǎn)換

手動轉(zhuǎn)換

基本數(shù)據(jù)類型 → 包裝類:

通過對應(yīng)包裝類的構(gòu)造方法實現(xiàn)剧防,除了Character外植锉,其他包裝類都可以傳入一個字符串參數(shù)構(gòu)建包裝類對象。

包裝類 → 基本數(shù)據(jù)類型

通過包裝類的實例方法 xxxValue() 實現(xiàn); // xxx表示包裝類對應(yīng)的基本數(shù)據(jù)類型

自動裝箱&自動拆箱(jdk1.5以后)

基本類型添加到集合中時峭拘,進(jìn)行自動裝箱

包裝類型在涉及到運算的時候俊庇,“加狮暑,減,乘辉饱, 除” 以及 “比較 equals,compareTo”搬男,進(jìn)行自動拆箱

5. 簡單數(shù)據(jù)類型轉(zhuǎn)換

容量類型排序

簡單類型數(shù)據(jù)間的轉(zhuǎn)換,有兩種方式:自動轉(zhuǎn)換和強制轉(zhuǎn)換

5.1 自動類型轉(zhuǎn)換

自動類型轉(zhuǎn)換:容量小的類型自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型 --> 總結(jié):小容量轉(zhuǎn)大容量

public static void main(String[] args) {

? ? //1.多個類型數(shù)據(jù)混合運數(shù)時,系統(tǒng)會按最大的類型進(jìn)行轉(zhuǎn)換

? ? int a = 10;

? ? //float a1 = a + 1.1; //錯誤? 結(jié)果類型一個是double

? ? float a2 = a + 1.1F;? //結(jié)果類型一個是float

? ? double a3 = a + 1.1;? //結(jié)果類型一個是double

? ? //2.容量大的賦值給容量小的肯定會報錯

? ? //int b = 1.1; //錯誤 原因:double -> int

? ? //3.(byte彭沼,short) 和 char之間不會相互自動轉(zhuǎn)換

? ? byte b1 = 10; //正確

? ? int b2 = 1;

? ? //byte b3 = b2; //錯誤 原因:變量賦值止后,判斷該類型

? ? //char c1 = b1; //錯誤 原因:byte不能自動轉(zhuǎn)換為char

? ? //4.byte,short溜腐,char該三個數(shù)據(jù)類型計算译株,計算時首先轉(zhuǎn)換為int類型

? ? byte c1 = 1;

? ? short c2 = 2;

? ? //short c3 = c1 + c2; //錯誤 原因:計算時首先轉(zhuǎn)換為int類型

? ? int c3 = c1 + c2; //正確

}

5.2 強制類型轉(zhuǎn)換

強制類型轉(zhuǎn)換:將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型 --> 總結(jié):大容量轉(zhuǎn)小容量

public static void main(String[] args) {

? ? ? ? //1.精度降低或溢出

? ? ? ? int i = (int) 1.9; //結(jié)果 1

? ? ? ? //2.強轉(zhuǎn)符號只針對于最近的操作數(shù)有效,往往會使用小括號提升優(yōu)先級

? ? ? ? //int x = (int) 10 * 3.5 + 6 * 1.5;//編譯錯誤

? ? ? ? int x = (int) (10 * 3.5 + 6 * 1.5);//正確 (int)44.0 -> 44

? ? ? ? //3.char類型可以保留int的常量值挺益,不能保存int的變量值需要強轉(zhuǎn)

? ? ? ? char c = 100; //保留int的常量值

? ? ? ? int i = 100;

? ? ? ? //char m = i; //錯誤

? ? ? ? char m = (char) i; //正確

}

5.3 隱含強制類型轉(zhuǎn)換(初始化)

在變量的初始化時歉糜,整數(shù)的默認(rèn)類型是 int。byte b = 123; 123 默認(rèn)是 int 類型望众,他會隱含強制轉(zhuǎn)換為低級別的 byte 和 short 類型匪补,所以不用顯示強制轉(zhuǎn)換;但是 int 類型只能顯式強制轉(zhuǎn)換為 long 型烂翰,所以 long a = 123L;

浮點型不存在這種情況夯缺,因為在定義 float 類型時必須在數(shù)字后面跟上 F 或者 f。

5.4 其他類型轉(zhuǎn)換

包裝類型向字符串的轉(zhuǎn)換

String str = "11.1";

Double d = new Float("11.1");? ?

String str1 = d.toString();

1

2

3

字符串向包裝類型的轉(zhuǎn)換

String str = "11.1";

Double d = new Float("11.1");

Double d = Double.parseDouble("11.1");?

Double d = Double.valueOf("11.1");

基本類型向字符串的轉(zhuǎn)換

Integer a = 1;

a.toString();//調(diào)用轉(zhuǎn)字符串的方法

String s =a +? "";//加上""自動轉(zhuǎn)換String類型

String.valueOf(a);//使用String的方法

6. 引用數(shù)據(jù)類型

6.1 類Class引用

Object :Object是一個很重要的類甘耿,Object是類層次結(jié)構(gòu)的根類踊兜,每個類都使用Object作為超類,所有對象(包括數(shù)組)都實現(xiàn)這個類的方法佳恬,用Object可以定義所有的類捏境。

Object object = new Object();

Integer Integer=(Integer)object;//

String :String類代表字符串,Java 程序中的所有字符串字面值(如"abc")都作為此類的實例來實現(xiàn)毁葱。檢查序列的單個字符垫言、比較字符串、搜索字符串倾剿、提取子字符串筷频、創(chuàng)建字符串副本、在該副本中前痘、所有的字符都被轉(zhuǎn)換為大寫或小寫形式凛捏。

Date :Date表示特定的瞬間,精確到毫秒际度。Date的類一般現(xiàn)在都被Calendar 和GregorianCalendar所有代替

Void :Void 類是一個不可實例化的占位符類葵袭,它保持一個對代表 Java 關(guān)鍵字 void 的 Class 對象的引用。

6.2 接口interface引用

List:列表 乖菱,此接口的用戶可以對列表中每個元素的插入位置進(jìn)行精確地控制坡锡。用戶可以根據(jù)元素的整數(shù)索引 (在列表中的位置)訪問元素蓬网,并搜索列表中的元素。List 接口提供了兩種搜索指定對象的方法鹉勒。從性能的觀點來看帆锋,應(yīng)該小心使用這些方法。在很多實現(xiàn)中禽额,它們將執(zhí)行高開銷的線性搜索锯厢。 List 接口提供了兩 種在列表的任意位置高效插入和移除多個元素的方法。

add() : 在列表的插入指定元素脯倒。

remove():移除列表中指定位置的元素实辑。

get(int index):返回列表中指定位置的元素。

6.3 數(shù)組引用

數(shù)組:存儲在一個連續(xù)的內(nèi)存塊中的相同數(shù)據(jù)類型(引用數(shù)據(jù)類型)的元素集合藻丢。

數(shù)組中的每一個數(shù)據(jù)稱之為數(shù)組元素剪撬,數(shù)組中的元素以索引來表示其存放的位置,索引(下標(biāo))從0開始悠反。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末残黑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斋否,更是在濱河造成了極大的恐慌梨水,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茵臭,死亡現(xiàn)場離奇詭異疫诽,居然都是意外死亡,警方通過查閱死者的電腦和手機笼恰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門踊沸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人社证,你說我怎么就攤上這事∑滥” “怎么了追葡?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奕短。 經(jīng)常有香客問我宜肉,道長,這世上最難降的妖魔是什么翎碑? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任谬返,我火速辦了婚禮,結(jié)果婚禮上日杈,老公的妹妹穿的比我還像新娘遣铝。我一直安慰自己佑刷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布酿炸。 她就那樣靜靜地躺著瘫絮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪填硕。 梳的紋絲不亂的頭發(fā)上麦萤,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音扁眯,去河邊找鬼壮莹。 笑死,一個胖子當(dāng)著我的面吹牛姻檀,可吹牛的內(nèi)容都是我干的命满。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼施敢,長吁一口氣:“原來是場噩夢啊……” “哼周荐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起僵娃,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤概作,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后默怨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讯榕,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年匙睹,在試婚紗的時候發(fā)現(xiàn)自己被綠了愚屁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡痕檬,死狀恐怖霎槐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梦谜,我是刑警寧澤丘跌,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站唁桩,受9級特大地震影響闭树,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荒澡,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一报辱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧单山,春花似錦碍现、人聲如沸幅疼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衣屏。三九已至,卻和暖如春辩棒,著一層夾襖步出監(jiān)牢的瞬間狼忱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工一睁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钻弄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓者吁,卻偏偏與公主長得像窘俺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子复凳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

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