JavaSE06 Java常用類

一芙扎、object類

Object類是一個(gè)特殊的類借跪,它是所有類的父類,是JAVA類層中的最頂層類驶睦,java.lang.Object類

1、Object類的常用方法

(1)toString()方法:將一個(gè)對象返回為字符串形式
(2)getClass()方法:返回對象執(zhí)行時(shí)的Class實(shí)例画拾,然后使用此實(shí)例調(diào)用getName()方法可以取得類的名稱
(3)hashCode()方法:返回對象在內(nèi)存中地址轉(zhuǎn)換成的一個(gè)int值(可以就當(dāng)做地址看),也就是說全局唯一的
(4)equals()方法:判斷值是否相等

2啥繁、equals 和 == 的區(qū)別

(1)== 是判斷兩個(gè)變量或?qū)嵗遣皇侵赶蛲粋€(gè)內(nèi)存空間;equals是判斷兩個(gè)變量或?qū)嵗赶虻膬?nèi)存空間的值是不是相同
(2)== 是指對內(nèi)存地址進(jìn)行比較青抛; equals()是對字符串的內(nèi)容進(jìn)行比較
(3)== 指引用是否相同; equals()指的是值是否相同

通俗點(diǎn)講:==是看看左右是不是一個(gè)東西酬核。equals是看看左右是不是長得一樣

二蜜另、Math類

Math類是一個(gè)很有用的數(shù)學(xué)幫助類,做數(shù)學(xué)運(yùn)算等操作嫡意。

1举瑰、Math類的常用方法

(1)Math.abs 求絕對值
(2)Math.ceil 得到不小于某數(shù)的最大整數(shù)
(3)Math.floor 得到不大于某數(shù)的最大整數(shù)
(4)Math.max 求兩數(shù)中最大
(5)Math.min 求兩數(shù)中最小
(6)Math.random 返回0,1之間的一個(gè)隨機(jī)數(shù)

2蔬螟、UUID

  • UUID 含義是通用唯一識(shí)別碼 (Universally Unique Identifier)此迅,這是一個(gè)軟件建構(gòu)的標(biāo)準(zhǔn)。
  • UUID 來作為數(shù)據(jù)庫數(shù)據(jù)表主鍵是非常不錯(cuò)的選擇,保證每次生成的UUID 是唯一的耸序。

三忍些、Date類

Date類用于表示日期和時(shí)間,java.util.Date

1坎怪、Date類的常見用法

(1)Date d = new Date():創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Date對象
(2)Date(int year, int month, int day): 創(chuàng)建一個(gè)指定日期的Date對象
(3)int compareTo(Date anotherDate):比較兩個(gè)日期的順序罢坝。例:

//如果date2大于date返回 1  等于返回 0  小于 -1
 System.out.println(date2.compareTo(date));

2、SimpleDateFormat 類

要想格式化時(shí)間或者把字符串轉(zhuǎn)換為Date類搅窿,可以使用java.text.Dateformat抽象類規(guī)定日期格式化的操作嘁酿,具體常用的實(shí)現(xiàn)是java.text.SimpleDateformat類

//日期轉(zhuǎn)換為字符串
SimpleDateFormat sdformat = new SimpleDateFormat("yyy y-MM-dd HH:mm:ss");
String text = sdformat .format(new Date());
        
//把字符串轉(zhuǎn)換為日期
String text = "2021年1月1日 1:11:11";
SimpleDateFormat sdformat= new SimpleDateFormat("yyyy年M月dd日 H:mm:ss");
Date date= sdformat.parse(text);
System.out.println("date = " + date);

3、Calendar類

抽象類 Calendar 提供了一組方法男应,允許把以毫秒為單位的時(shí)間轉(zhuǎn)換成一些有用的時(shí)間組成部分闹司。Calendar 不能直接創(chuàng)建對象,但可以使用靜態(tài)方法 getInstance() 獲得代表當(dāng)前日期的日歷對象

//根據(jù)當(dāng)前的語言地區(qū)環(huán)境獲取一個(gè)日歷對象

Calendar c = Calendar.getInstance();

System.out.println(c);

System.out.println("獲取年份:"+c.get(Calendar.YEAR));

System.out.println("獲取月份:"+(c.get(Calendar.MONTH)+1));//月份0~11

System.out.println("獲取日期(今天是該月的第幾天):"+c.get(Calendar.DAY_OF_MONTH));

System.out.println("獲取小時(shí)數(shù)(12小時(shí)制):"+c.get(Calendar.HOUR));

System.out.println("獲取小時(shí)數(shù)(24小時(shí)制):"+c.get(Calendar.HOUR_OF_DAY));

System.out.println("獲取分鐘數(shù):"+c.get(Calendar.MINUTE));

System.out.println("獲取秒鐘數(shù):"+c.get(Calendar.SECOND));

System.out.println("獲取毫秒數(shù):"+c.get(Calendar.MILLISECOND));

System.out.println("獲取當(dāng)前是該年中的第幾天:"+c.get(Calendar.DAY_OF_YEAR));

System.out.println("獲取今天是周幾:"+c.get(Calendar.DAY_OF_WEEK));

//將月份設(shè)置到6月份

c.set(Calendar.MONTH, 5);

//如何獲取該月的總天數(shù)與該月第一天的周數(shù)沐飘?

//獲取今年的總天數(shù)

System.out.println(c.getActualMaximum(Calendar.DAY_OF_YEAR));

//獲取當(dāng)前日歷表示的該月份的最大天數(shù)(總天數(shù))

System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));

//獲取該月的第一天是周幾开仰?

//將日期設(shè)置到這個(gè)月的第一天

c.set(Calendar.DAY_OF_MONTH, 1);

System.out.println("獲取今天是周幾:"+c.get(Calendar.DAY_OF_WEEK));

四、String類

1薪铜、String 众弓、StringBuffer、StringBuilder

String:(1)不可變性隔箍,底層是final修飾的char[]數(shù)組谓娃,private
final char value[] ;(2)常量蜒滩,不可變滨达,所以線程安全;

StringBuffer:(1)可變性俯艰,可以使用append()方法捡遍;(2)多線程數(shù)據(jù)量較大;(3)效率低竹握,安全画株。對方法加了同步鎖或者對調(diào)用的方法加了同步鎖,所以是線程安全的啦辐,

StringBuilder:(1)可變性谓传,可以使用append()方法;(2)單線程數(shù)據(jù)量較大芹关;(3)效率高续挟,不安全。StringBuilder 并沒有對方法進(jìn)行加同步鎖侥衬,所以是非線程安全的诗祸。
對于三者使用的總結(jié):

  • 操作少量的數(shù)據(jù) = String
  • 單線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) = StringBuilder
  • 多線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) = StringBuffer

2跑芳、String 的常用方法

  • length()字符串的長度
  • charAt() 截取一個(gè)字符
  • equals()和equalsIgnoreCase() 比較兩個(gè)字符串
  • compareTo()和compareToIgnoreCase() 比較字符串
  • concat() 連接兩個(gè)字符串
  • replace() 替換
  • toUpperCase() /toLowerCase() 轉(zhuǎn)換為大小寫
  • trim() 去掉起始和結(jié)尾的空格

3、String的使用

String str = "a" + 1 +2       結(jié)果為“a12”
String str = ‘a(chǎn)’+ 1 +2        結(jié)果為100
String str = 1 + 2 + "a"      結(jié)果為"3a"

4直颅、String str="str"與 String str=new String("str")的內(nèi)存分配

因?yàn)閮?nèi)存的分配方式是不一樣的博个,

  • String str="str"的方式,java 虛擬機(jī)會(huì)將其分配到常量池中际乘;
  • 而 String str=new String("str") 則會(huì)被分到堆內(nèi)存中坡倔。

5、值傳遞和引用傳遞

  • 值傳遞是對基本類型變量而言的,傳遞的是該變量的一個(gè)副本,改變副本不影響原來變量.
  • 引用傳遞一般是對于對象型變量而言的,傳遞的是該對象地址的一個(gè)副本, 并不是原對象本身

一般認(rèn)為,java內(nèi)的基礎(chǔ)類型數(shù)據(jù)傳遞都是值傳遞. java中實(shí)例對象的傳遞是引用傳遞

五脖含、包裝類

java語言是一個(gè)面向?qū)ο蟮恼Z言罪塔,但是java中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮模俏覀冊趯?shí)際使用中經(jīng)常將基本數(shù)據(jù)類型轉(zhuǎn)換成對象养葵,便于操作征堪,比如,集合的操作中关拒,這時(shí)佃蚜,我們就需要將基本類型數(shù)據(jù)轉(zhuǎn)化成對象!

1着绊、包裝類和基本數(shù)據(jù)類型的關(guān)系

基本數(shù)據(jù)類型 包裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

2谐算、自動(dòng)裝箱拆箱

Java 5 增加了自動(dòng)裝箱、拆箱機(jī)制归露,提供基本數(shù)據(jù)類型和包裝類型的相互轉(zhuǎn)換操作洲脂。
(1)自動(dòng)裝箱
自動(dòng)裝箱即自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換成包裝類型

Integer i2 = Integer.valueOf(8);

// 自動(dòng)裝箱
Integer i3 = 8;

(2)自動(dòng)拆箱
自動(dòng)拆箱即自動(dòng)將包裝類型轉(zhuǎn)換成基本數(shù)據(jù)類型

// 自動(dòng)拆箱
int i4 = i3;

int i5 = i3.intValue();

六、file類

File類主要是JAVA為文件這塊的操作(如刪除剧包、新增等)而設(shè)計(jì)的相關(guān)類

  • 可以實(shí)現(xiàn)獲取文件和目錄屬性等功能
  • 可以實(shí)現(xiàn)對文件和目錄的創(chuàng)建恐锦、刪除等功能

1、file類的三種構(gòu)造方法

(1)File(String path):如果 path 是實(shí)際存在的路徑疆液,則該 File 對象表示的是目錄一铅;如果 path 是文件名,則該 File 對象表示的是文件堕油。
(2)File(String path, String name):path 是路徑名潘飘,name 是文件名。
(3)File(File dir, String name):dir 是路徑對象馍迄,name 是文件名福也。

使用任意一個(gè)構(gòu)造方法都可以創(chuàng)建一個(gè) File 對象,然后調(diào)用其提供的方法對文件進(jìn)行操作

2攀圈、file類的常用方法

  • createNewFile() //有則不創(chuàng)建 返回false,沒有則創(chuàng)建 返回true
  • delete() //刪除成功 返回true ,失敗返回false
  • getAbsoluteFile() //返回絕對路徑
  • getPath() //返回相對路徑
  • getName() //返回文件名
  • isFile() //是否為文件 boolean
  • length //長度
  • mkdir() //創(chuàng)建單層目錄
  • mkdirs() //創(chuàng)建多級(jí)目錄
  • delete() //只能刪除空目錄
  • list() //返回一個(gè)字符串?dāng)?shù)組峦甩,命名由此抽象路徑名表示的目錄中的文件和目錄赘来。
  • listFiles() //返回一個(gè)抽象路徑名數(shù)組现喳,表示由該抽象路徑名表示的目錄中的文件和目錄。

3犬辰、file類的使用

(1)獲取文件屬性

public class Test0 {
    public static void main(String[] args) {
        String path = "C:/windows/"; // 指定文件所在的目錄
        File f = new File(path, "text.txt"); // 建立File變量,并設(shè)定由f變量引用
        System.out.println("文件信息如下:");
        System.out.println("============================================");
        System.out.println("文件長度:" + f.length() + "字節(jié)");
        System.out.println("文件或者目錄:" + (f.isFile() ? "是文件" : "不是文件"));
        System.out.println("文件或者目錄:" + (f.isDirectory() ? "是目錄" : "不是目錄"));
        System.out.println("是否可讀:" + (f.canRead() ? "可讀取" : "不可讀取"));
        System.out.println("是否可寫:" + (f.canWrite() ? "可寫入" : "不可寫入"));
        System.out.println("是否隱藏:" + (f.isHidden() ? "是隱藏文件" : "不是隱藏文件"));
        System.out.println("最后修改日期:" + new Date(f.lastModified()));
        System.out.println("文件名稱:" + f.getName());
        System.out.println("文件路徑:" + f.getPath());
        System.out.println("絕對路徑:" + f.getAbsolutePath());
    }
}

(2)創(chuàng)建和刪除文件

public class Test {
    public static void main(String[] args) throws IOException {
        File f = new File("C:\\test.txt"); // 創(chuàng)建指向文件的File對象
        if (f.exists()) // 判斷文件是否存在
        {
            f.delete(); // 存在則先刪除
        }
        f.createNewFile(); // 再創(chuàng)建
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗦篱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子幌缝,更是在濱河造成了極大的恐慌灸促,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涵卵,死亡現(xiàn)場離奇詭異浴栽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)轿偎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門典鸡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坏晦,你說我怎么就攤上這事萝玷。” “怎么了昆婿?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵球碉,是天一觀的道長。 經(jīng)常有香客問我仓蛆,道長睁冬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任多律,我火速辦了婚禮痴突,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狼荞。我一直安慰自己辽装,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布相味。 她就那樣靜靜地躺著拾积,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丰涉。 梳的紋絲不亂的頭發(fā)上拓巧,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音一死,去河邊找鬼肛度。 笑死,一個(gè)胖子當(dāng)著我的面吹牛投慈,可吹牛的內(nèi)容都是我干的承耿。 我是一名探鬼主播冠骄,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼加袋!你這毒婦竟也來了凛辣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤职烧,失蹤者是張志新(化名)和其女友劉穎扁誓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚀之,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝗敢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恬总。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片前普。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖壹堰,靈堂內(nèi)的尸體忽然破棺而出拭卿,到底是詐尸還是另有隱情,我是刑警寧澤贱纠,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布峻厚,位于F島的核電站,受9級(jí)特大地震影響谆焊,放射性物質(zhì)發(fā)生泄漏惠桃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一辖试、第九天 我趴在偏房一處隱蔽的房頂上張望辜王。 院中可真熱鬧,春花似錦罐孝、人聲如沸呐馆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汹来。三九已至,卻和暖如春改艇,著一層夾襖步出監(jiān)牢的瞬間收班,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工谒兄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摔桦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓承疲,卻偏偏與公主長得像酣溃,于是被迫代替她去往敵國和親瘦穆。 傳聞我的和親對象是個(gè)殘疾皇子纪隙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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