Java 學習筆記(9)——java常用類

之前將Java的大部分語法都回顧完了限寞,后面添加一些常見的操作仰坦,基礎(chǔ)語法就結(jié)束了悄晃。至于在這里再次提到常用類是由于有一部分體現(xiàn)在使用它的繼承類或者接口之類的传泊。這些需要有面向?qū)ο缶幊痰幕A(chǔ)

Object類

Object類是所有類的基類,只要定義了類拦盹,即使沒有顯式的聲明繼承自O(shè)bject類普舆,也會從該類繼承沼侣。這個類沒有什么是需要顯式調(diào)用的歉秫,很多東西都需要重寫類的方法來達到相關(guān)效果轧膘,比如常用的兩個方法:

  • String toString() : 將類轉(zhuǎn)化為字符串。一般來說直接打印新定義的類都會打印出對象的地址值谎碍,如果需要打印里面的相關(guān)值蟆淀,需要重寫toString方法
  • boolean equals(Object obj): 一般來說澡匪,== 比較的是對象的地址值仙蛉,而針對字符串或者其他對象可能需要根據(jù)別的值來比較是否相等荠瘪,這個時候需要重寫這個方法哀墓。
  • protected Object clone(): 在C++中如果直接使用內(nèi)存拷貝來拷貝對象的話篮绰,如果對象中有指針變量,可能會導致一系列的問題勉抓,這種拷貝方法叫做淺拷貝藕筋。這個方法用來執(zhí)行深度拷貝操作隐圾。
public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

上述代碼是Object類的 toString 方法暇藏,從代碼上看盐碱,默認會調(diào)用對象的hashCode 方法獲取hash值甸各,并轉(zhuǎn)化為字符串趣倾。

時間操作

Date 類

Date 類用來處理時間儒恋,它能精確到毫秒

  • Date(): 獲取當前時刻的Unix時間戳
  • Date(long date): 根據(jù)一個時間戳初始化一個對象
  • long getTime(): 獲取當前對象對應(yīng)的時間戳

這個方法目前只是用來進行這些操作诫尽,后續(xù)其他時間的格式化炬守,獲取對應(yīng)的年牧嫉、月、日操作在后續(xù)的JDK版本都用另外的類來進行

SimpleDateFormat 類

上面提到减途,Date類只用來進行時間戳相關(guān)轉(zhuǎn)化的操作酣藻,而具體與時間相關(guān)的操作都用這個類來進行。該類繼承自 DataFormat 類鳍置, DataFormat是一個抽象類辽剧。

  • SimpleDateFormat() : 使用默認的模式來格式化Date類
  • SimpleDateFormat(String pattern): 按照指定格式來格式化Date類
  • SimpleDateFormat(String pattern, Locale locale): 構(gòu)造一個 SimpleDateFormat使用給定的模式和給定的區(qū)域設(shè)置的默認日期格式符號

模式類似于格式化字符串,與常見語言的格式化時間的方式類似税产。

  • String format(Date date): 按照構(gòu)造時提供的模式來將傳入的date 對象格式化為字符串
  • Date parse(String source): 從給定字符串的開始解析文本以生成日期

Calendar 類

上述兩個與時間相關(guān)的類已經(jīng)解決了時間的獲取以及格式化輸出的操作怕轿。但是關(guān)于時間還需要進行年偷崩、月、日相關(guān)的操作撞羽。比如加一年阐斜、減一個月等等。跟具體年月相關(guān)的操作使用 Calendar類惕澎。這個類也是一個抽象類,但是可以使用它的相關(guān)靜態(tài)方法來創(chuàng)建對象

  • static Calendar getInstance(): 使用默認時區(qū)和區(qū)域設(shè)置獲取日歷。
  • static Calendar getInstance(Locale aLocale): 使用默認時區(qū)和指定的區(qū)域設(shè)置獲取日歷。

常見的方法如下:

  • int get(int field): 返回指定字段的日歷值
  • void set(int year, int month, int date, int hourOfDay, int minute, int second): 設(shè)置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY 孕惜, MINUTE和 SECOND
  • abstract void add(int field, int amount): 根據(jù)日歷的規(guī)則碧磅,將指定的時間量添加或減去給定的日歷字段
  • Date getTime(): 根據(jù)日歷對象返回一個對應(yīng)的Date類
  • void setTime(Date date): 將Date類轉(zhuǎn)化為日歷類

這些get和set方法有的需要一個值表示需要修改日歷中的哪個值。比如 YEAR表示年、MONTH表示月盗蟆、DAY_OF_MONTH表示月中的天數(shù)仆邓、HOUR_OF_DAY表示小時等等

從這3個類的相關(guān)操作來說,Date類作為溝通其他兩個類的橋梁,常見的策略是: DateFormat -->Date -->Calender 或者 Calender-->Date-->DateFormat

下面是一個簡單的例子

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = df.parse("2018-10-1 12:12:12");

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2019);

date = c.getTime();
System.out.println("Time:" + df.format(date));

System 類

這個類用于獲取系統(tǒng)相關(guān)的內(nèi)容休吠,里面都是一些靜態(tài)方法阳懂。常用的方法有:

  • static long currentTimeMillis(): 返回當前系統(tǒng)時間号枕,以毫秒為單位
  • static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length): 數(shù)組復(fù)制方法

StringBuilder 類

我們說String方法中的字符不能修改,如果要修改,必須重新分配一個String,并舍棄原來的String方法。當String操作過多,頻繁的分配回收久信,影響程序效率管毙。StringBuilder類與String相比卓舵,可以修改里面的字符值。相比String來說效率更高

  • StringBuilder(): 構(gòu)造一個能容納16個字符的字符容器

  • StringBuilder(int capacity):構(gòu)造一個容納指定字符的容器

  • StringBuilder(String str): 構(gòu)造一個初始化為指定字符串內(nèi)容的字符串構(gòu)建器尊浪。

  • append方法:它有一系列的重載方法。往字符容器中添加指定的內(nèi)容

  • toString(): 轉(zhuǎn)化為String 對象

包裝類

Java中針對 普通類型都有一個對應(yīng)的類嘱朽,封裝了一系列的操作奋刽,比如int 類的包裝類是 Integer, double 類的是 Double等等狭魂。

一般來說又兵,將對應(yīng)的基本類型轉(zhuǎn)化為包裝類的過程稱為裝箱;將包裝類轉(zhuǎn)化為基本類型的過程稱為拆箱企垦,從JDK1.5之后支持自動裝箱和自動拆箱,比如

Double d = 1.5;
int i = Integer(10);
int i1 = Integer("10");

<hr />

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市朵诫,隨后出現(xiàn)的幾起案子宾毒,更是在濱河造成了極大的恐慌诈铛,老刑警劉巖恩静,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风科,死亡現(xiàn)場離奇詭異玖姑,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門战惊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來流昏,“玉大人,你說我怎么就攤上這事吞获】隽梗” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵各拷,是天一觀的道長刁绒。 經(jīng)常有香客問我,道長烤黍,這世上最難降的妖魔是什么知市? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮速蕊,結(jié)果婚禮上嫂丙,老公的妹妹穿的比我還像新娘。我一直安慰自己互例,他們只是感情好奢入,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般腥光。 火紅的嫁衣襯著肌膚如雪关顷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天武福,我揣著相機與錄音议双,去河邊找鬼。 笑死捉片,一個胖子當著我的面吹牛平痰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伍纫,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼宗雇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了莹规?” 一聲冷哼從身側(cè)響起赔蒲,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎良漱,沒想到半個月后舞虱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡母市,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年矾兜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片患久。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡椅寺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒋失,到底是詐尸還是另有隱情配并,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布高镐,位于F島的核電站,受9級特大地震影響畸冲,放射性物質(zhì)發(fā)生泄漏嫉髓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一邑闲、第九天 我趴在偏房一處隱蔽的房頂上張望算行。 院中可真熱鬧,春花似錦苫耸、人聲如沸州邢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽量淌。三九已至骗村,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呀枢,已是汗流浹背胚股。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留裙秋,地道東北人琅拌。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像摘刑,于是被迫代替她去往敵國和親进宝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

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

  • Java 語言支持的類型分為兩類:基本類型和引用類型枷恕。整型(byte 1, short 2, int 4, lon...
    xiaogmail閱讀 1,351評論 0 10
  • 3.Object類 所有引用類型的父類党晋,除了它自己以外 Object類是所有類的父類? 如果有其他明顯正確的答案活尊,...
    兩串大腰子閱讀 412評論 0 1
  • 一隶校、基礎(chǔ)知識:1、JVM蛹锰、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,388評論 0 4
  • 第05天API 今日內(nèi)容介紹 ·Object類& System類 ·日期相關(guān)類 ·包裝類&正則表達式 ·Date對...
    chcvn閱讀 409評論 0 1
  • 即將邁入新年2019铜犬,過了2月4號立春就是正式進入己亥年了舞终。對于命理學愛好者來說,八字的婚姻問題癣猾,都是首要分析內(nèi)容...
    李易明閱讀 2,513評論 0 1