最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java常用API(Part1)

2023-01-27 20:38 作者:回到唐朝當(dāng)少爺  | 我要投稿

java API(Part1)

剛開始學(xué)java,隨便做點學(xué)習(xí)筆記

Part1含Math,System,Runtime,Object,Objects,BigInteger,BigDecimal庫的一些重要函數(shù)

Math

私有化構(gòu)造方法,所有的函數(shù)都是靜態(tài)的

System

工具類,提供一些與系統(tǒng)相關(guān)的方法

計算機中的時間原點:1970年1月1日 00:00:00

原因:1969年8月,貝爾實驗室的程序員肯湯普遜利用妻兒離開一個月的機會。開始著手創(chuàng)造一個全新的革命性的操作系統(tǒng)。 他使用B編譯語言在老舊的PDP-7機器上開發(fā)出了Unix的一個版本。隨后,湯普遜和同事丹尼斯里奇改進了B語言,開發(fā)出了C語言,重寫了UNIX。

1970年1月1日算C語言的生日

中國位于東八區(qū),時間原點為1970年1月1日 08:00:00

1s=1000ms,1ms=1000微秒.1微秒=1000納秒

數(shù)組拷貝:

  • 如果數(shù)據(jù)類型不一樣會報錯

  • 數(shù)組越界會報錯

  • 如果數(shù)據(jù)源數(shù)組和目的地數(shù)組都是引用數(shù)據(jù)類型,則子類類型可以賦值給父類類型

Runtime

表示當(dāng)前虛擬機的運行環(huán)境

可以通過代碼監(jiān)控虛擬機的內(nèi)存

可以加上shutdown關(guān)機參數(shù)實現(xiàn)自動關(guān)機

shutdown -s 默認在1min后關(guān)機 -s -t 指定時間: 指定時間后關(guān)機 -a:取消關(guān)機操作 -r:關(guān)機并重啟

Object

Object是Java中的頂級父類,所有的類都直接或間接地繼承于Object類

Object類中的方法可以被所有子類訪問

toString

兩種打印等價 打印的本質(zhì): System:類名 out:靜態(tài)變量 System.out:獲取打印的對象 println():方法 參數(shù):表示打印的內(nèi)容

核心邏輯:當(dāng)我們打印一個對象的時候,底層會調(diào)用對象的toString方法把對象變成字符串,然后再打印在控制臺上,打印完畢后換行

默認情況下,因為Object類中toString方法返回的是地址值,所以打印一個對象打印的就是對象的地址,如果想要看到對象內(nèi)部的屬性值?

如果我們打印一個對象想要看到屬性值的話:重寫父類toString方法

可用ptg插件快速完成此工作

equals

如果我們比較兩個對象想比較屬性值而不是默認的地址值的話:重寫Object的equals方法

idea中可按alt+insert選擇equals() and hashCode()快速完成此工作

如果沒有重寫equals方法,默認使用Object中的方法進行比較,比較的是地址值

s.equals(sb)

  • equals方法是s調(diào)用的,s是字符串,所以equals方法要看String類中的

  • String中的equals方法,先判斷參數(shù)是否為字符串,如果是字符串,再比較內(nèi)部的屬性;如果不是字符串,直接返回false

sb.equals(s)

  • 這里的equals方法要看StringBuilder中的,而StringBuilder中沒有重寫equals方法,使用的是Object中的,所以比較對象的地址值

clone

  • 把A對象的屬性值完全拷貝給B對象,也叫對象拷貝,對象復(fù)制

  • 書寫細節(jié):

    1. 重寫Object中的clone方法

    2. 讓javabean類實現(xiàn)Cloneable接口

    3. 創(chuàng)建原對象并調(diào)用clone

基本數(shù)據(jù)類型:存儲的是真實的值 引用數(shù)據(jù)類型:存儲的是另一個空間的地址值

淺拷貝:引用數(shù)據(jù)類型只拷貝地址值 深拷貝:引用數(shù)據(jù)類型會重新再創(chuàng)建一個新的地址

深拷貝在拷貝String對象時,由于原String對象已在串池StringTable中,所以也只拷貝原地址

Object中的克隆默認為淺克隆,深克隆需要在重寫clone()時自己寫

  • 可采用第三方工具gson進行深拷貝

    1. 將第三方代碼導(dǎo)入到項目中

    2. 編寫代碼

Objects

  • Objects中equals方法細節(jié):

    1. 方法底層會判斷s1是否為null,若為null,直接返回false;如果不為null,就利用s1再次調(diào)用equals方法

    2. 此時s1是Student類型,所以最終還是會調(diào)用Student中的equals方法

    3. 如果沒有重寫equals方法,比較地址值,如果重寫了,比較屬性值

如果只用Object中的equals方法,遇到空對象調(diào)用equals方法會報錯

BigInteger

java中,整數(shù)的4種類型byte:1字節(jié),short:2字節(jié),int:4字節(jié),long:8字節(jié)

  • valueOf細節(jié)

    1. 能表示的范圍較小,只能在long的取值范圍之內(nèi),如果超出long的范圍就不行了

    2. 在內(nèi)部對常用的數(shù)字-16~16進行了優(yōu)化,提前把-16~16先創(chuàng)建好了BigInteger的對象,如果多次獲取不會創(chuàng)建新的

BigInteger對象一旦創(chuàng)建,內(nèi)部記錄的值不能發(fā)生改變

小結(jié)

  1. 如果BigInteger表示的數(shù)沒有超出long范圍可用靜態(tài)方法獲取

  2. 如果超出則用構(gòu)造方法獲取

  3. 對象一旦創(chuàng)建,內(nèi)部記錄的值不能發(fā)生改變

  4. 只要進行計算都會產(chǎn)生一個新的BigInteger對象

BigDecimal

  1. 如果要表示的數(shù)字不大,沒有超過double的取值范圍建議使用valueOf

  2. 如果比較大,超出了double的取值范圍,建議使用構(gòu)造方法

  3. 如果傳遞的是[0,10]之間的整數(shù),方法會返回已經(jīng)創(chuàng)建好的對象

加減乘除類似于BigInteger

舍入模式:RoundingMode.HALF_UP四舍五入

感謝Up主@LuckyPuppy514制作的Markdown轉(zhuǎn)B站專欄油猴腳本

Java常用API(Part1)的評論 (共 條)

分享到微博請遵守國家法律
疏勒县| 金川县| 天峨县| 剑川县| 仪征市| 大厂| 西乡县| 蒙城县| 华蓥市| 高碑店市| 江永县| 聂拉木县| 安徽省| 商洛市| 兴山县| 宾阳县| 建瓯市| 甘泉县| 高尔夫| 石林| 抚顺县| 江永县| 阳新县| 长葛市| 民县| 成武县| 安乡县| 麻城市| 迁西县| 五家渠市| 法库县| 新龙县| 邻水| 罗山县| 平南县| 岳普湖县| 溧阳市| 平潭县| 资阳市| 安溪县| 吴江市|