02-數(shù)據(jù)類型學(xué)習(xí)(一)

1.四類八種-基本類型

整數(shù)類型
    byte屁桑,short医寿,int(默認),long
小數(shù)類型
    float蘑斧,double(默認)
字符類型
    char
布爾類型
    oolean

2.引用類型

類靖秩,接口,數(shù)組類型竖瘾,枚舉類型沟突,注解類型

3.基本類型和引用類型的區(qū)別

基本類型在被創(chuàng)建時,在棧上給其劃分一塊內(nèi)存捕传,將數(shù)值直接存儲在棧上惠拭。

引用類型在被創(chuàng)建時,首先在棧上給其引用(句柄)分配一塊內(nèi)存庸论,而對象的具體信息都存儲在對內(nèi)存上职辅,然后由棧上面的引用指向堆中對象的地址。

4.Object類

Object是所有類的父類葡公。所有類都直接或者間接的繼承自O(shè)bject

重寫Object類的toString方法

public String toString() :返回該對象的字符串表示罐农。

toString可以將對象轉(zhuǎn)成一個字符串。

當(dāng)通過一個對象調(diào)用toString方法時催什,先會看一下自己有沒有這個方法涵亏,如果自己沒有,那么就會向上找父類蒲凶,一直到Object气筋。

當(dāng)我們直接輸出一個對象名時,內(nèi)部會調(diào)用這個對象的toString方法旋圆,這個對象的toString方法內(nèi)容是什么宠默,那么直接輸出這個對象名的結(jié)果就是什么。

一般來說灵巧,輸出地址值沒有什么意義搀矫,如果想要調(diào)用toString方法后得到我們想要的內(nèi)容,比如對象的屬性刻肄,那么我們可以在子類中重寫toString瓤球。(Object中的toString方法是將對象轉(zhuǎn)換成地址值的字符串。)

重寫Object類的equals方法

equals方法可以比較兩個對象的內(nèi)容是否相同敏弃。

boolean equals(Object obj): 比較兩個對象是否相同卦羡。

默認地址比較

如果沒有覆蓋重寫equals方法,那么Object類中默認進行 == 運算符的對象地址比較,只要不是同一個對象绿饵,結(jié)果必然為false欠肾。

對象內(nèi)容比較

如果希望進行對象的內(nèi)容比較,即所有或指定的部分成員變量相同就判定兩個對象相同拟赊,則可以覆蓋重寫equals方法刺桃。

簡述String類中的equals方法與Object類中的equals方法的不同點。

String類中的equals方法是用來判斷兩個對象的內(nèi)容是否相同要门,而Object 類中的equals方法是用來判斷兩個對象是否是同一個對象虏肾,所謂同一個對象指的是內(nèi)存中的同一塊存儲空間。

5.Date類

能夠使用日期類輸出當(dāng)前日期

public Date() :分配Date對象并初始化此對象欢搜,以表示分配它的時間(精確到毫秒)封豪。
public Date(long date) :分配Date對象并初始化此對象,以表示自從標(biāo)準(zhǔn)基準(zhǔn)時間(稱為“歷元(epoch)”炒瘟,即1970年1月1日00:00:00 GMT)以來的指定毫秒數(shù)吹埠。
public long getTime() 把日期對象轉(zhuǎn)換成對應(yīng)的時間毫秒值。

1.能夠使用將字符串轉(zhuǎn)換成日期的方法

Date parse(String source):將字符串轉(zhuǎn)成(解析)一個Date對象并返回
調(diào)用SimpleDateFormat的parse方法
解析的步驟:
\1. 創(chuàng)建一個字符串疮装,表示時間缘琅。
String str = "2018年12月11日";
\2. 創(chuàng)建一個SimpleDateFormat對象,參數(shù)位置指定一個模式廓推。
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
\3. 調(diào)用SimpleDateFormat中的parse方法刷袍,將字符串轉(zhuǎn)成一個Date對象23
Date date = df.parse(str);

2.能夠使用將日期格式化為字符串的方法

 String format(Date date) :將參數(shù)Date對象格式化為一個字符串。并把這個字符串返回樊展。
 調(diào)用SimpleDateFormat的format
日期格式化的步驟:
\1. 創(chuàng)建一個Date對象
Date date = new Date();
\2. 創(chuàng)建一個SimpleDateFormat對象呻纹,在構(gòu)造方法中給定指定的模式。
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
構(gòu)造方法:
SimpleDateFormat(String pattern): 參數(shù)需要傳遞一個字符串類型的模式专缠。
\3. 調(diào)用SimpleDateFormat對象的format方法雷酪,將Date對象轉(zhuǎn)換為一個字符串。 
 String str = df.format(date);

Date->String:格式化涝婉。 使用SimpleDateFormat的format方法去完成哥力。
String->Date:解析。 使用SimpleDateFormat的parse方法去完成墩弯。

6.calendar類--日歷

1.獲取日歷

Calendar是一個抽象類吩跋, 如果要用,需要使用它的子類渔工。
因為地區(qū)敏感性锌钮, Calendar的子類對象不能由我們自己去new,而是要調(diào)用Calendar的靜態(tài)方法getInstance進行獲取涨缚。

Calendar中的方法:
        static Calendar getInstance():
//Calendar c = Calendar.getInstance();

2.get方法

int get(int field): 參數(shù)field表示要獲取哪個字段的值轧粟。

注意: Calendar中的月份是從0開始的范圍是(0-11)。 Calendar中的月份比現(xiàn)實生活要少1脓魏,調(diào)用的時候要加一兰吟;
周日是第一天,調(diào)用的時候要減一茂翔。

3.set方法

void set(int field, int value): 可以給指定字段設(shè)置值混蔼。
參數(shù)field:表示要給哪個字段設(shè)置值。
參數(shù)value:表示要設(shè)置成什么值珊燎。

4.add方法

void add(int field, int amount): 可以對指定字段的值進行計算惭嚣。
參數(shù)field: 表示要對哪個字段進行計算。
參數(shù)amount: 表示如何計算悔政。 如果該參數(shù)是正數(shù)晚吞,那么就是加上該值。
如果該參數(shù)是負數(shù)谋国,那么就是減去該值槽地。

5.getTime方法

在Calendar中還有一個方法叫做getTime,可以獲取到Calendar對應(yīng)的Date對象(把Calendar轉(zhuǎn)成Date)芦瘾。
Date getTime(): 獲取Calendar對應(yīng)的Date對象捌蚊。

7.System類

1.currentTimeMillis方法

static long currentTimeMillis():獲取當(dāng)前操作系統(tǒng)的時間(以毫秒值表示的)

注意:這個方法用來計算整個程序的下運行時間。

2.System類的數(shù)組復(fù)制方法arraycopy

將數(shù)組中指定的數(shù)據(jù)拷貝到另一個數(shù)組中

public  static  void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :

1 src Object 源數(shù)組
2 srcPos int 源數(shù)組索引起始位置
3 dest Object 目標(biāo)數(shù)組
4 destPos int 目標(biāo)數(shù)組索引起始位置
5 length int 復(fù)制元素個數(shù)

8.StringBuilder類

1.簡述StringBuilder類與String類的區(qū)別近弟。

    String類的對象內(nèi)容不可改變缅糟,所以每當(dāng)進行字符串拼接時瓜富,總是會在內(nèi)存中創(chuàng)建一個新的對象崩溪,所以經(jīng)常改變內(nèi)容的字符串最好不要用String获三,因為每次生成對象都會對系統(tǒng)性能產(chǎn)生影響磅轻。
    StringBuilder又稱為可變字符序列脯倚,是JDK5.0中新增加的一個類兆沙,它是一個類似于String的字符串緩沖區(qū)轴踱,通過某些方法調(diào)用可以改變該序列的長度和內(nèi)容汤踏。即它是一個容器泥从,容器中可以裝很多字符串句占,并且能夠?qū)ζ渲械淖址M行各種操作。它的內(nèi)部擁有一個數(shù)組用來存放字符串內(nèi)容躯嫉,進行字符串拼接時纱烘,直接在數(shù)組中加入新內(nèi)容,StringBuilder會自動維護數(shù)組的擴容祈餐。

2.StringBuilder的構(gòu)造方法

    StringBuilder(): 空參構(gòu)造擂啥。 使用這個構(gòu)造方法創(chuàng)建的StringBuilder對象,里面不會保存任何字符帆阳。

    StringBuilder(String str): 會根據(jù)參數(shù)字符串構(gòu)建一個StringBuilder對象

3.StringBuilder中的常見方法:

    StringBuilder append(任何類型): 對任何類型的數(shù)據(jù)進行拼接(追加)哺壶。返回值表示調(diào)用者對象本身。

    String toString(): 將StringBuilder轉(zhuǎn)成一個String并返回。

9.包裝類

1.8種基本類型對應(yīng)的包裝類名稱

int->Integer

char->Character

2.自動裝箱山宾、自動拆箱的概念

自動裝箱: 基本類型自動轉(zhuǎn)成對應(yīng)的包裝類至扰。

自動拆箱: 包裝類自動轉(zhuǎn)成對應(yīng)的基本類型。

3.基本類型轉(zhuǎn)字符串:

    \1. 可以使用String的靜態(tài)方法valueOf资锰。 不推薦

    \2. 可以使用包裝類的toString方法敢课。 不推薦。

    \3. 直接在這個基本類型數(shù)據(jù)的后面加上""绷杜。 推薦

4.字符串轉(zhuǎn)基本類型:

    我們需要使用對應(yīng)包裝類的parseXXX方法(靜態(tài)方法)直秆。

    如果要把字符串轉(zhuǎn)成int,那么我們可以使用Integer的parseInt方法鞭盟。

    如果要把字符串轉(zhuǎn)成double圾结,那么我們使用Double的parseDouble方法。

    如果要把字符串轉(zhuǎn)成long齿诉,那么我們可以使用Long的parseLong方法疫稿。

5.手動拆裝箱

手動裝箱(int -> Integer)

    可以使用包裝類(Integer)中的valueOf的方法

    static Integer valueOf(int i):傳遞一個int類型的數(shù)據(jù),返回一個Integer類型的結(jié)果鹃两。

手動拆箱(Integer -> int)

    使用包裝類(Integer)中的intvalue方法

    int intValue() :將Integer的值轉(zhuǎn)成int并返回遗座。

6.基本數(shù)據(jù)類型與包裝數(shù)據(jù)類型的使用標(biāo)準(zhǔn)

Reference:《阿里巴巴Java開發(fā)手冊》

  • 【強制】所有的 POJO 類屬性必須使用包裝數(shù)據(jù)類型。
  • 【強制】RPC 方法的返回值和參數(shù)必須使用包裝數(shù)據(jù)類型俊扳。
  • 【推薦】所有的局部變量使用基本數(shù)據(jù)類型途蒋。

比如我們?nèi)绻远x了一個Student類,其中有一個屬性是成績score,如果用Integer而不用int定義,一次考試,學(xué)生可能沒考,值是null,也可能考了,但考了0分,值是0,這兩個表達的狀態(tài)明顯不一樣.

說明 :POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值馋记,任何 NPE 問題号坡,或
者入庫檢查,都由使用者來保證梯醒。

正例 : 數(shù)據(jù)庫的查詢結(jié)果可能是 null宽堆,因為自動拆箱,用基本數(shù)據(jù)類型接收有 NPE 風(fēng)險茸习。

反例 : 比如顯示成交總額漲跌情況畜隶,即正負 x%,x 為基本數(shù)據(jù)類型号胚,調(diào)用的 RPC 服務(wù)籽慢,調(diào)用不成功時,返回的是默認值猫胁,頁面顯示為 0%箱亿,這是不合理的,應(yīng)該顯示成中劃線弃秆。所以包裝數(shù)據(jù)類型的 null 值届惋,能夠表示額外的信息髓帽,如:遠程調(diào)用失敗,異常退出脑豹。

10.集合與數(shù)組的區(qū)別

1.集合只能存放引用類型的數(shù)據(jù)氢卡。
  數(shù)組可以存放任何類型的數(shù)據(jù)。
2.集合長度可變晨缴。
  數(shù)組長度不變。

ArrayList是一個集合峡捡,長度可變击碗,ArrayList內(nèi)部是在使用一個數(shù)組保存數(shù)據(jù)。
類和類们拙、接口是實現(xiàn)
接口和接口時繼承

11.foreach類

使用foreach循環(huán)遍歷集合

for(數(shù)據(jù)類型 變量名 : 容器) {
      //循環(huán)體
      }數(shù)據(jù)類型: 要遍歷的容器中存放的是什么類型的數(shù)據(jù)稍途,那么這個數(shù)據(jù)類型就寫什么。
變量名: 表示容器中的每一個元素砚婆。
容器: 要遍歷的容器械拍,可以是集合也可以是數(shù)組。


增強for遍歷數(shù)組装盯,本質(zhì)還是普通for循環(huán)坷虑。
增強for的優(yōu)缺點:
    優(yōu)點: 省略了索引的操作,語法非常簡潔埂奈。
    缺點: 不能操作索引迄损,如果要在遍歷的過程中操作索引,還需要使用普通for循環(huán)账磺。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芹敌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子垮抗,更是在濱河造成了極大的恐慌氏捞,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冒版,死亡現(xiàn)場離奇詭異液茎,居然都是意外死亡,警方通過查閱死者的電腦和手機辞嗡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門豁护,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人欲间,你說我怎么就攤上這事楚里。” “怎么了猎贴?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵班缎,是天一觀的道長蝴光。 經(jīng)常有香客問我,道長达址,這世上最難降的妖魔是什么蔑祟? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮沉唠,結(jié)果婚禮上疆虚,老公的妹妹穿的比我還像新娘。我一直安慰自己满葛,他們只是感情好径簿,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘀韧,像睡著了一般篇亭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锄贷,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天译蒂,我揣著相機與錄音,去河邊找鬼谊却。 笑死柔昼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炎辨。 我是一名探鬼主播岳锁,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹦魔!你這毒婦竟也來了激率?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勿决,失蹤者是張志新(化名)和其女友劉穎乒躺,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體低缩,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡嘉冒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咆繁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讳推。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖玩般,靈堂內(nèi)的尸體忽然破棺而出银觅,到底是詐尸還是另有隱情,我是刑警寧澤坏为,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布究驴,位于F島的核電站镊绪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洒忧。R本人自食惡果不足惜蝴韭,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望熙侍。 院中可真熱鬧榄鉴,春花似錦、人聲如沸蛉抓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芝雪。三九已至,卻和暖如春综苔,著一層夾襖步出監(jiān)牢的瞬間惩系,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工如筛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留堡牡,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓杨刨,卻偏偏與公主長得像晤柄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妖胀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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