[JAVA][數(shù)據(jù)類(lèi)型]

1.落筆緣由

最近又閑下來(lái)了,有時(shí)間翻看以前的東西州弟,繼續(xù)之前的朝花夕拾。

2.數(shù)據(jù)類(lèi)型

(1)基本數(shù)據(jù)類(lèi)型

基本數(shù)據(jù)類(lèi)型有八種,
整型:byte婆翔,short桐经,int ,long
浮點(diǎn)型:float浙滤,double
布爾型:boolean
字符型:char
八種基本數(shù)據(jù)類(lèi)型的字節(jié)數(shù)阴挣,
byte 字節(jié)型:1 byte
short 短整型:2 byte
int 整型:4 byte
long 長(zhǎng)整型:8 byte
float 浮點(diǎn)型(單精度):4 byte
double 浮點(diǎn)型(雙精度):8 byte
boolean 布爾型:1/8 byte(也就是1bit)
char 字符型:2 byte
基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換原則
低精度轉(zhuǎn)高精度單位不會(huì)丟失精度。高精度轉(zhuǎn)低精度會(huì)丟失精度纺腊。

(2)String類(lèi)型(字符串類(lèi)型)

String類(lèi)型不屬于基本數(shù)據(jù)類(lèi)型畔咧,最基礎(chǔ)的差別就是基本數(shù)據(jù)類(lèi)型是保存在棧里,而String是保存在字符串常量池中揖膜。
關(guān)于String類(lèi)型和基本類(lèi)型的相互轉(zhuǎn)換誓沸,可以去查看String常用方法一文。
String壹粟,StringBuffer和StringBuilder區(qū)別拜隧。他們都是用于生成和操作字符串。

String:字符串常量趁仙,它被final修飾洪添,字符串長(zhǎng)度不可變。每次賦值或new都會(huì)在字符串常量池(如果常量池不存在該字符串)生成一個(gè)新的字符串雀费。

String str = "text";
str = "text2"http://這里會(huì)將text2字符串保存到字符串常量池中
String str2 = new String("text");
str2 = "text2"http://這里會(huì)將text2字符串保存到字符串常量池中

StringBuffer:字符串變量(Synchronized干奢,即線程安全)。如果要頻繁對(duì)字符串內(nèi)容進(jìn)行修改盏袄,出于效率考慮最好使用StringBuffer忿峻。

StringBuilder:字符串變量(非線程安全)。在內(nèi)部辕羽,StringBuilder對(duì)象被當(dāng)作是一個(gè)包含字符序列的變長(zhǎng)數(shù)組逛尚。java.lang.StringBuilder是一個(gè)可變的字符序列,是JDK5.0新增的刁愿。此類(lèi)提供一個(gè)與 StringBuffer 兼容的 API绰寞,但不保證同步。該類(lèi)被設(shè)計(jì)用作 StringBuffer 的一個(gè)簡(jiǎn)易替換酌毡,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候克握。

執(zhí)行速度比較:StringBuilder > StringBuffer > String
雖然StringBuilder 比StringBuffer 執(zhí)行快一些,但我們還是要在是否要求線程安全的前提下做出選擇枷踏。

(3)enum類(lèi)型(枚舉類(lèi)型)

1)枚舉可以用來(lái)充當(dāng)常量使用:

    private void testColor()
    {
        for (Color color : Color.values()) {
            Log.i("lgy", "name:"+color.name()+" id:"+color.ordinal());
        }
    }
    
    public enum Color
    {
        red,yellow,blue,green
    }

2)枚舉充當(dāng)常量的同時(shí)用于switch:

    public enum Color
    {
        red,yellow,blue,green
    }
    
    private void switchColor(Color color)
    {
        switch (color) {
        case red:
            Log.i("lgy", "red");
            break;
        case yellow:
            Log.i("lgy", "yellow");
            break;
        case blue:
            Log.i("lgy", "blue");
            break;
        case green:
            Log.i("lgy", "green");
            break;
        default:
            break;
        }
    }

在Java7之前菩暗,switch只能支持 byte、short旭蠕、char停团、int或者其對(duì)應(yīng)的封裝類(lèi)以及Enum類(lèi)型旷坦。在Java7中,開(kāi)始對(duì)String支持佑稠。

3)帶參數(shù)的枚舉常量

public enum Color2 {  
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLOW("黃色", 4);  
    // 成員變量  
    private String name;  
    private int index;  
    // 構(gòu)造方法  
    private Color2(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color2 c : Color2.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}


private void testColor2()
{
    for (Color2 color : Color2.values()) {
        Log.i("lgy", "name:"+color.name()+" id:"+color.ordinal());
        //根據(jù)Color2定義的方法獲取變量
        Log.i("lgy", "name2:"+color.getName()+"id2:"+color.getIndex());
    }
}

關(guān)于枚舉的詳細(xì)用法可以去查看這篇文章秒梅。

(4)數(shù)組類(lèi)型

Java 語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類(lèi)型元素。
1)初始化數(shù)組

    private void testArray()
    {
        //創(chuàng)建數(shù)組舌胶,如果在創(chuàng)建的同時(shí)不初始化數(shù)組則必須指定其大小
        int[] intArr = new int[5];
        //創(chuàng)建數(shù)組時(shí)捆蜀,不指定數(shù)組大小則必須在創(chuàng)建的同時(shí)初始化數(shù)組
        int[] intArr2 = new int[]{1,2,3};
    }

2)Array轉(zhuǎn)list

    private void testArray()
    {
        //創(chuàng)建數(shù)組,如果在創(chuàng)建的同時(shí)不初始化數(shù)組則必須指定其大小
        int[] intArr = new int[5];
        //創(chuàng)建數(shù)組時(shí)幔嫂,不指定數(shù)組大小則必須在創(chuàng)建的同時(shí)初始化數(shù)組
        //這里list.size()=1
        int[] intArr2 = new int[]{1,2,3};
        List list = Arrays.asList(intArr2);
        for (int i = 0; i < list.size(); i++) {
            Log.i("lgy", ""+list.get(i));
        }
        
        //這里list.size()=3,可以看出Arrays.asList(T)操作的是對(duì)象
        Integer[] intArr3 = new Integer[]{1,2,3};
        List list2 = Arrays.asList(intArr3);
        for (int i = 0; i < list2.size(); i++) {
            Log.i("lgy", ""+list2.get(i));
        }
    }

數(shù)組還有很多其他知識(shí)辆它,這里就不講那么多了。

3.源碼地址

enum測(cè)試代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末履恩,一起剝皮案震驚了整個(gè)濱河市锰茉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌切心,老刑警劉巖飒筑,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異绽昏,居然都是意外死亡协屡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)而涉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)著瓶,“玉大人,你說(shuō)我怎么就攤上這事啼县。” “怎么了沸久?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵季眷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卷胯,道長(zhǎng)子刮,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任窑睁,我火速辦了婚禮挺峡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘担钮。我一直安慰自己橱赠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布箫津。 她就那樣靜靜地躺著狭姨,像睡著了一般宰啦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饼拍,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天赡模,我揣著相機(jī)與錄音,去河邊找鬼师抄。 笑死漓柑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叨吮。 我是一名探鬼主播辆布,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挤安!你這毒婦竟也來(lái)了谚殊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛤铜,失蹤者是張志新(化名)和其女友劉穎嫩絮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體围肥,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剿干,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了穆刻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片置尔。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氢伟,靈堂內(nèi)的尸體忽然破棺而出榜轿,到底是詐尸還是另有隱情,我是刑警寧澤朵锣,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布谬盐,位于F島的核電站,受9級(jí)特大地震影響诚些,放射性物質(zhì)發(fā)生泄漏飞傀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一诬烹、第九天 我趴在偏房一處隱蔽的房頂上張望砸烦。 院中可真熱鬧,春花似錦绞吁、人聲如沸幢痘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)雪隧。三九已至西轩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脑沿,已是汗流浹背藕畔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庄拇,地道東北人注服。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像措近,于是被迫代替她去往敵國(guó)和親溶弟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • 第一類(lèi):邏輯型boolean 第二類(lèi):文本型char 第三類(lèi):整數(shù)型(byte瞭郑、short辜御、int、long) c...
    Jasonme閱讀 1,068評(píng)論 0 4
  • 首先明確幾個(gè)概念:變量屈张、常量擒权。 變量即在程序運(yùn)行過(guò)程中它的值是允許改變的量。是計(jì)算機(jī)語(yǔ)言中能儲(chǔ)存計(jì)算結(jié)果或能表示值...
    Jason_M_Ho閱讀 226評(píng)論 0 0
  • 細(xì)數(shù)那些殘痕阁谆, 仿佛粒粒流沙碳抄。 再久的搬運(yùn), 終會(huì)沉積 于巖海之際场绿。 將思緒鉗固剖效; 再?zèng)坝康暮K?終會(huì)敗給 那一...
    筱筱0201閱讀 161評(píng)論 0 1
  • 前幾天跟老爸聊天熬拒,他說(shuō)考慮到我的專(zhuān)業(yè)前景目前并不太好逗宁。不如教師穩(wěn)定,所以建議我去考教師資格證梦湘。 他開(kāi)始說(shuō)的是叫我去...
    撞了南墻再回頭閱讀 203評(píng)論 4 4
  • 首先,再也不敢在簡(jiǎn)書(shū)軟件上面寫(xiě)東西了件甥。已經(jīng)發(fā)生兩次東西寫(xiě)一半直接退出不保存了捌议。簡(jiǎn)書(shū)帶著他的小姨子跑了,我們沒(méi)有辦法...
    王啊白閱讀 216評(píng)論 0 0