教面試官ReentrantLock源碼
704
2025-04-01
都是自己平??偨Y(jié)的,這一篇手打了一萬(wàn)字的,希望對(duì)大家有用,后面會(huì)持續(xù)更新JavaSE筆記總結(jié),會(huì)把它們放在一個(gè)專題中,更新完后,還會(huì)有JavaWEB總結(jié),框架總結(jié)等,建議~
#Java常用類,方法,接口,語(yǔ)法匯總
1、首先了解幾個(gè)關(guān)鍵詞語(yǔ)
JVM:Java虛擬機(jī)
JRE:jave運(yùn)行環(huán)境,包含Java虛擬機(jī)和Java核心類庫(kù)
JDK:Java開(kāi)發(fā)工具,包含JRE和開(kāi)發(fā)工具
2、Java關(guān)鍵字全部小寫,例如:public,class,static
3、Java是一種強(qiáng)類型語(yǔ)言,在Java中數(shù)據(jù)類型包含基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
基本數(shù)據(jù)類型:整數(shù)類型int,byte,short,long(使用時(shí)之后面加上L)。浮點(diǎn)型flort(使用時(shí)后面加上F),double 字符類型char 布爾類型boolean
4、標(biāo)識(shí)符:
Java中標(biāo)識(shí)符就是我給類,變量,方法,常量起的名字,著些名字中一些命名規(guī)則
類,接口命名:所有單詞首字母都大寫
方法,變量,常量命名:除第一個(gè)單詞首字母小寫,其余首字母都大寫
5、切記“=”這個(gè)是賦值,“==”這個(gè)是等于判斷符號(hào)
6、邏輯運(yùn)算符&有與的作用,&&也有與的作用,但是后者有短路的作用,判斷第一個(gè)不符合不往后進(jìn)行判斷,“|“和”||"同理
7、Scanner類:Java中鍵盤數(shù)據(jù)輸入一般要使用的一個(gè)類,具體有待探究
構(gòu)造方法:Scanner sc = new Scanner(System.in);
一般方法:int nextInt();接受鍵盤錄入的int數(shù)據(jù)
String nextLine();接受鍵盤輸入的String類型的數(shù)據(jù)
8、水仙花數(shù):一個(gè)三位數(shù)字,個(gè)位十位百位的數(shù)字立方和等于原數(shù)字(153 ?1*1*1+5*5*5+3*3*3=153)
9、Random類:java中產(chǎn)生隨機(jī)數(shù)功能的類
構(gòu)造方法:Random r=new Random();
一般方法:int nextInt (int bound);產(chǎn)生隨機(jī)數(shù)在0-bound之間
10、數(shù)組概念:數(shù)組就是一種存儲(chǔ)數(shù)據(jù)長(zhǎng)度固定的容器,存儲(chǔ)多個(gè)數(shù)據(jù)的數(shù)據(jù)類型一樣
11、數(shù)組的定義及初始化:
數(shù)據(jù)類型[] 數(shù)組名=new 數(shù)據(jù)類型[數(shù)組長(zhǎng)度];
例如:int[] arr=new int[1024];
byte[] bys=new byte[1024];
數(shù)據(jù)類型[] 數(shù)組名=new 數(shù)據(jù)類型[]{元素.....};
例如:int[] arr=new int[]{1,2,3,4};
12、數(shù)組里數(shù)組長(zhǎng)度可用arr.length
13、什么是方法:方法是將具有獨(dú)立功能的代碼塊組成一個(gè)整體,使其具有特殊功能的代碼集合。
14、方法的定義格式:
public static 返回值類型 方法名(形式參數(shù)){
//方法體
}
15、方法要注意的事項(xiàng):
1方法不能嵌套定義
2void表示無(wú)返回值,可以不用加return,如果想加上,return后面不加數(shù)據(jù)
16定義方法時(shí)要注意兩個(gè)明確:
1明確返回值類型,如果沒(méi)有寫void
2明確參數(shù)的類型和數(shù)量
17、方法重載就是在同一個(gè)類中,定義的方法之間的關(guān)系。
18、方法重載應(yīng)滿足的條件:
1在同一個(gè)類中
2具有相同的方法名
3具有的參數(shù)不同,類型或者數(shù)量
19、方法重載注意點(diǎn):
1只與定義有關(guān),與調(diào)用無(wú)關(guān)
2只針對(duì)方法參數(shù)的類型或數(shù)量,與方法的返回值無(wú)關(guān)
20、客觀存在的事務(wù)都為對(duì)象,可以說(shuō)萬(wàn)物皆對(duì)象
21、類的定義格式
public class 類名{
//成員變量
變量1的數(shù)據(jù)類型 變量1;
變量2的數(shù)據(jù)類型 變量2;
...
//成員方法
方法1
方法2
}
22、對(duì)象的使用
創(chuàng)建對(duì)象的格式:類名 對(duì)象名=new 類名();
調(diào)用成員的格式:對(duì)象名.成員變量; 對(duì)象名.成員方法();
23、成員變量存儲(chǔ)在堆內(nèi)存中,new開(kāi)辟堆內(nèi)存的存儲(chǔ)空間,用來(lái)存放成員變量。而成員方法存儲(chǔ)在棧內(nèi)存中,此類的所有對(duì)象共同使用同一成員方法,而不同對(duì)象使用的成員變量確實(shí)各自的。
24、還有一種情況
Student s1=new Student();
Student s2=s1;
這種情況是什么意思:s1開(kāi)辟了一份自己獨(dú)有存儲(chǔ)成員變量的空間,這個(gè)時(shí)候又把s1開(kāi)辟存儲(chǔ)的空間地址共享給了s2,讓s2也指向了s1的地址,這種情況下,s1與s2就有共同且相同的空間用來(lái)存儲(chǔ)成員變量
25、成員變量與局部變量的區(qū)別:
1成員變量在類中方法外,而局部變量在類中方法內(nèi)
2存儲(chǔ)位置不同,成員變量存儲(chǔ)在堆內(nèi)存,只要?jiǎng)?chuàng)建的對(duì)象存在,它就會(huì)一直存在。局部變量存儲(chǔ)在棧內(nèi)存中,方法調(diào)用完以后就會(huì)消失。
3成員變量一般存在與沒(méi)有main()方法的類中,且成員變量有默認(rèn)初始值,而局部變量沒(méi)有默認(rèn)初始值,必須先定義,賦值后才能使用。
26、封裝
1private關(guān)鍵字的使用:private是一個(gè)修飾符,用來(lái)修飾成員,被private修飾的成員,只能在本類中進(jìn)行訪問(wèn),針對(duì)Private修飾的成員變量,如果需要被其他類使用,提供想要的操作get(類型 類型名),set()。
2this關(guān)鍵字:this也是修飾符,代之成員變量,其主要作用是區(qū)分局部變量和成員變量的區(qū)別
3封裝思想:封裝是面向?qū)ο?/a>三大特征之一,是面向?qū)ο?/a>編程語(yǔ)言對(duì)客觀世界的模擬,客觀世界里成員變量都是隱藏在對(duì)象內(nèi)部的,外界是無(wú)法直接操作的。
4封裝原則:將某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類內(nèi)部提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)
5封裝好處:通過(guò)方法來(lái)控制變量,提高了代碼的安全性,把代碼用方法進(jìn)行封裝,提高了代碼的復(fù)用性
27、構(gòu)造方法:是一種特殊的方法
作用:創(chuàng)建對(duì)象使用的方法 Student s = new Student();
格式:public 類名(){}
public 類名(參數(shù)){方法體}
功能:完成對(duì)象數(shù)據(jù)的初始化
建議:如果定義一個(gè)類以后需要實(shí)例化,那建議無(wú)論是否使用無(wú)參或帶參構(gòu)造,這兩種構(gòu)造方法全部寫上
28、API
1什么是API:一般情況下,API指的是應(yīng)用程序編程接口。Java中的API指的是JDK中提供的各種功能的Java類,這些類將底層的實(shí)現(xiàn)封裝了起來(lái)。
29、String類
1概述:Java中所有帶雙引號(hào)""的字符串,都是String類的對(duì)象,處于Java.lang包下,不需要導(dǎo)包
2特點(diǎn):
字符串不可變,它的值在創(chuàng)建后不可更改,后面有StringBuilder類,這個(gè)類提供的可變的類
雖然String的值是不可變,但是它們可以被共享
字符串效果上相當(dāng)于字符數(shù)組char[],但是底層實(shí)現(xiàn)確實(shí)字節(jié)數(shù)組byte[]
3String類的構(gòu)造方法
public String()
public String(char[] chs)
public String(byte[] bys)
String s = "abc"
4創(chuàng)建字符串對(duì)象的兩種區(qū)別
通過(guò)new創(chuàng)建的字符串對(duì)象,每一次new都會(huì)申請(qǐng)一個(gè)內(nèi)存空間,雖然內(nèi)容相同,但是地址值不同
以""方式給出的字符串,只要字符序列相同(順序和大小寫),無(wú)論在程序代碼中出現(xiàn)幾次,JVM都只會(huì)建立一個(gè)String對(duì)象,并在字符串池中維持
5String類常用的方法
boolean equals (Object anObject) :比較字符串與指定對(duì)象內(nèi)容是否相同,區(qū)分大小寫,用法"abc".equals(String s)
char charAt(int index):返回指定索引的char值
int compareTo (String anotherString) :按照字典的順序比較兩個(gè)字符串,排序用
byte[] getBytes ():將String編碼為字節(jié)數(shù)組的形式
int length ():返回此字符串的長(zhǎng)度
30、StringBuilder類
1.概述:StringBuilder類是一個(gè)可變的字符串類,可以把它看成一個(gè)容器,可變指的是StringBuilder類實(shí)例化的對(duì)象中內(nèi)容是可變的
2.StringBuilder類構(gòu)造方法
public StringBuilder ()構(gòu)造一個(gè)沒(méi)有字符的字符串對(duì)象,初始容量為16個(gè)字符。
public StringBuilder(String str)根據(jù)字符串的內(nèi)容,來(lái)創(chuàng)建可變的字符串對(duì)象
3.常用方法
public StringBuilder append(任意類型)添加數(shù)據(jù),返回對(duì)象本身
public StringBuilder reverse()返回相反的字符串序列
public int length()返回長(zhǎng)度
public String toString()將StringBuilder轉(zhuǎn)換成String
4.StringBuilder和String相互轉(zhuǎn)化
StringBuilder->String:StringBuilder類提供toString()方法
String->StringBuilder:在StringBuilder類的構(gòu)造方法的時(shí)候使用public StringBuilder(String str),就可以了
31、ArrayList集合
1.集合就是提供了一種存儲(chǔ)空間可變的存儲(chǔ)模型,存儲(chǔ)的數(shù)據(jù)容量可以發(fā)生變化
2.構(gòu)造方法:
public ArrayList
3.常用方法:
public void add (int index, E element):在集合指定位置插入指定元素
public boolean add (E e):在集合末尾添加一個(gè)元素,返回是否添加成功
public int size():返回集合中 的元素個(gè)數(shù)
public E get(int index):返回集合中指定位置的元素
public E set(int index,Eelement):修改指定位置的元素,返回被修改的元素本身
public E remove(int index):刪除指定索引處的元素,返回被刪除的元素
public boolean remove(Object o):刪除指定的元素,返回刪除是否成功
4.要點(diǎn):集合中不能存儲(chǔ)基本數(shù)據(jù)類型,存基本數(shù)據(jù)類型的時(shí)候,會(huì)自動(dòng)類型轉(zhuǎn)換,存儲(chǔ)進(jìn)集合的都是空間地址,無(wú)論是添加元素、刪除元素、修改元素、獲取元素,全部用到的都是空間地址
例如:
ArrayList
Student s1 = new Student(...);
Student s2 = new Student(...);
array.add(s1);//這里添加的都是Student對(duì)象的地址
array.add(s2);
Student s=array.get(0);//這里獲取的是索引為0的元素,而這個(gè)元素就是Student類實(shí)例化的對(duì)象地址,因此對(duì)象s被s1的地址賦值,可以理解為s等同于s1,類實(shí)例化對(duì)象成功在于是否指向一個(gè)空間地址,或者構(gòu)造方法new一個(gè)空間地址,或者直接賦值一個(gè)地址
system.out.println(s.getName+","+s.getAge);//既然s等同于s1,即兩者相等
32、繼承
1.概念:繼承是面向?qū)ο蟮娜筇卣髦?,可以讓子類具有父類的屬性和方法,還可以在子類中重新定義(方法重寫),以及追加屬性和方法
2.繼承帶來(lái)的用處:繼承可以讓類與類之間產(chǎn)生關(guān)系,子父類的關(guān)系,產(chǎn)生子父類后,子類則可以使用父類中非私有的成員
3.繼承的好處
提高代碼的復(fù)用性(多個(gè)類相同的成員可以放在同一個(gè)類中)
提高了代碼的維護(hù)性(如果方法的代碼需要修改,修改一處即可)
4.繼承的弊端
繼承讓類與類之間產(chǎn)生關(guān)系,類的耦合性增強(qiáng)了,當(dāng)父類發(fā)生變化時(shí),子類不得不隨著變化,削弱了子類的獨(dú)立性
5.變量的訪問(wèn)特點(diǎn)
先子類局部找,再子類全局找,再父類成員找,都沒(méi)有就報(bào)錯(cuò)
構(gòu)造方法的訪問(wèn)特點(diǎn)
子類中所有的構(gòu)造方法默認(rèn)都會(huì)訪問(wèn)父類的無(wú)參構(gòu)造方法,如果父類中沒(méi)有無(wú)參構(gòu)造方法,只有帶參構(gòu)造方法,那要么在子類構(gòu)造方法通過(guò)super關(guān)鍵字調(diào)用父類帶參構(gòu)造方法,要么在父類中寫上無(wú)參構(gòu)造方法,建議在父類中寫入
6.super關(guān)鍵字:可以理解成父類對(duì)象的引用
super.成員變量:訪問(wèn)父類成員變量
super.成員方法:訪問(wèn)父類成員方法
super(...):訪問(wèn)父類構(gòu)造方法
7.方法重寫:子類出現(xiàn)和父類一模一樣的方法聲明(方法名相同,參數(shù)列表也必須相同)
8.方法重寫作用:當(dāng)子類需要父類的功能,又想要自己特有的功能的時(shí)候可以使用方法重寫(在子類重寫的方法中可以用super關(guān)鍵字來(lái)使用父類方法,重寫的方法體就是子類特有功能)
9.方法重寫注意事項(xiàng):父類私有方法不能重寫(父類私有成員子類不能繼承) 子類重寫的方法訪問(wèn)權(quán)限只能是public、protected、默認(rèn) Java中繼承只支持單繼承和多層繼承
10.package 包
概述:包其實(shí)就是文件夾,用來(lái)管理文件的
11.import 導(dǎo)包
概述:使用不同包下的類時(shí),使用的時(shí)候要寫類的全路徑,寫起來(lái)太麻煩了,于是就提供了導(dǎo)包的功能
如果沒(méi)有導(dǎo)包
Java.util.Scanner sc=new java,util.Scanner(System.in);
如果導(dǎo)包過(guò)后
Scanner sc=new Scanner(System.in);
12.final
概述:final代表最終的意思,可以修飾成員方法,變量,類
修飾類:該類不能被繼承,就是不能有子類可以有父類
修飾成員方法:該方法不能被重寫
修飾變量:表明該變量是一個(gè)常量,不能被繼續(xù)賦值
13.final修飾的局部變量時(shí),修飾基本數(shù)據(jù)變量時(shí),數(shù)據(jù)值不能改變。修飾引用類型變量時(shí),地址值不可改變,但地址空間內(nèi)的內(nèi)容可以發(fā)生改變。
14.static關(guān)鍵字
static關(guān)鍵字是靜態(tài)的意思,可以修飾成員方法,成員變量
特點(diǎn):被類的所有對(duì)象共享,這是判斷是否使用的條件??梢酝ㄟ^(guò)類名調(diào)用,也可以通過(guò)對(duì)象名調(diào)用(推薦使用類名調(diào)用)
15.非靜態(tài)成員方法既可以訪問(wèn)靜態(tài)成員也可訪問(wèn)非靜態(tài)成員,而靜態(tài)成員方法,只能訪問(wèn)靜態(tài)成員
33、多態(tài)
1.概述:同一個(gè)對(duì)象,在不同時(shí)刻表現(xiàn)出來(lái)的不同形態(tài)
2.多態(tài)前提:要有繼承或?qū)崿F(xiàn)關(guān)系 要有方法重寫 要有父類引用指向子類對(duì)象
3.多態(tài)中成員訪問(wèn)特點(diǎn)
成員變量:編譯看父類,運(yùn)行看父類
成員方法:編譯看父類,運(yùn)行看子類
4.好處:提高程序擴(kuò)展性 ?弊端:不能使用子類的特有方法
34、抽象類 public abstract 類名(){}
1.概述:在面向?qū)ο蟮母拍钪?,所有的?duì)象都是通過(guò)類來(lái)描繪的,但是反過(guò)來(lái),并不是所有的類都是用來(lái)描繪對(duì)象的,如果一個(gè)類中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類就是抽象類。
抽象類除了不能實(shí)例化對(duì)象之外,類的其它功能依然存在,成員變量、成員方法和構(gòu)造方法的訪問(wèn)方式和普通類一樣。
由于抽象類不能實(shí)例化對(duì)象,所以抽象類必須被繼承,才能被使用。也是因?yàn)檫@個(gè)原因,通常在設(shè)計(jì)階段決定要不要設(shè)計(jì)抽象類。
父類包含了子類集合的常見(jiàn)的方法,但是由于父類本身是抽象的,所以不能使用這些方法。
在 Java 中抽象類表示的是一種繼承關(guān)系,一個(gè)類只能繼承一個(gè)抽象類,而一個(gè)類卻可以實(shí)現(xiàn)多個(gè)接口。
抽象類如何實(shí)例化:通過(guò)多態(tài)的方式,通過(guò)子類對(duì)象實(shí)例化,叫做抽象類多態(tài)
2.抽象類的子類:要么是抽象類,要么重寫抽象類中的抽象方法
35、接口 public interface 類名(){}
1.概述:在JAVA編程語(yǔ)言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來(lái)聲明。一個(gè)類通過(guò)繼承接口的方式,從而來(lái)繼承接口的抽象方法。
接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對(duì)象的屬性和方法。接口則包含類要實(shí)現(xiàn)的方法。
除非實(shí)現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。
接口無(wú)法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。
2.特性:接口不能用于實(shí)例化對(duì)象。接口沒(méi)有構(gòu)造方法。接口中所有的方法必須是抽象方法,Java 8 之后接口中可以使用 default關(guān)鍵字修飾的非抽象方法。接口不能包含成員變量,除了 static 和 final 變量。接口不是被類繼承了,而是要被類實(shí)現(xiàn)。接口支持多繼承
3.接口中沒(méi)有變量,所有的成員變量前面默認(rèn)public static final修飾。接口中只有抽象方法,所有方法前面默認(rèn)public abstract
(JDK9以后接口也有默認(rèn)方法default、靜態(tài)方法和私有方法)
4.類與接口的關(guān)系
類與類之間:繼承關(guān)系,只能單繼承,可以多層繼承
類與接口之間:實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。也可以在繼承一個(gè)類以后實(shí)現(xiàn)多個(gè)接口
接口與接口之間:繼承關(guān)系,可以單繼承,也可以多繼承
5.抽象類與接口的關(guān)系
成員區(qū)別:抽象類有常量,變量,構(gòu)造方法,抽象方法和非抽象方法。接口中有常量和抽象方法
關(guān)系區(qū)別:類與類繼承,單繼承。類與接口實(shí)現(xiàn),多實(shí)現(xiàn)。接口與接口繼承,多繼承。
36、參數(shù)和返回值
1.類名作為參數(shù)和返回值
類名作為方法的形參:實(shí)際是傳遞的是該類的對(duì)象的地址值
類名作為方法的返回值:實(shí)際傳遞的也是該類對(duì)象的地址值
2.抽象類作為參數(shù)和返回值
抽象類作為方法的形參:實(shí)際傳遞的是該抽象類子類對(duì)象的地址值
抽象類作為方法的返回值:實(shí)際傳遞的是該抽象類子類對(duì)象的地址值
3接口名作為參數(shù)和返回值
接口名作為方法的參數(shù):實(shí)際傳遞的是該接口實(shí)現(xiàn)類對(duì)象的地址值
接口名作為方法發(fā)返回值:實(shí)際傳遞的是該接口實(shí)現(xiàn)類對(duì)象的地址值
37、內(nèi)部類
1.概念:在一個(gè)類中定義一個(gè)類
2.格式
public class Outer{
public class Inner{
}
}
3.內(nèi)部類特點(diǎn):內(nèi)部類可以直接訪問(wèn)外部類的成員,包括私有。外部類要訪問(wèn)內(nèi)部類必須先創(chuàng)建對(duì)象。
38、成員內(nèi)部類
1.概念:就是在類中和成員變量在一個(gè)位置的內(nèi)部類
2.在外界創(chuàng)建成員內(nèi)部類格式
Outer.Inner oi = new Outer().new Inner();
3.將一個(gè)類設(shè)計(jì)成內(nèi)部類目的是不想讓外部去訪問(wèn),所以定義內(nèi)部類應(yīng)該私有化,然后再提供一個(gè)外界調(diào)用的方法,方法內(nèi)部創(chuàng)建內(nèi)部類對(duì)象并調(diào)用
public class Outer{
private int num = 10;
private class Inner{
public void show(){
system.out.println(num);
}
}
public void method(){
Inner i = new Inner();
i.show();
}
}
39、局部?jī)?nèi)部類
1.位置:在方法中定義的類
2.局部?jī)?nèi)部類外界無(wú)法直接訪問(wèn),需要在方法內(nèi)部創(chuàng)建對(duì)象并使用。局部?jī)?nèi)部類可以直接訪問(wèn)外部類的成員,也可以訪問(wèn)方法的局部變量
40、匿名內(nèi)部類
1.前提:存在一個(gè)類或者接口,這里的類可以是具體類也可以是抽象類
2.匿名內(nèi)部類格式:new 類名(){重寫方法} new 接口名(){重寫方法}
new Inter(){
@Override
public void method(){}
}
3.本質(zhì):是一個(gè)繼承了該類或者實(shí)現(xiàn)了該接口的子類匿名對(duì)象,其實(shí)也可以把他當(dāng)成實(shí)現(xiàn)類或者子類對(duì)象
41、Math類
1.概述:Math 包括執(zhí)行基本數(shù)字運(yùn)算的方法
2.Math類無(wú)構(gòu)造方法,但內(nèi)部的方法都是靜態(tài)的,可以通過(guò)類名直接調(diào)用
3.常用方法
public static E abs(E a) 返回參數(shù)的絕對(duì)值
42、System類
1.常用方法:
public static void exit(int status)終止當(dāng)前運(yùn)行的Java虛擬機(jī),非零表示異常終止
public static long currentTimeMillis()返回當(dāng)前時(shí)間(單位是毫秒)
Arrays類
常用方法:public static void sort(int[] a):按照數(shù)字順序排序指定數(shù)組
43、Object類的toString equals方法
1.Object是類層次結(jié)構(gòu)的根,每個(gè)類都可以將Object作為超類。所有類都直接或間接繼承該類,換句話說(shuō),該類所具有的方法,所有類都有一份
2.toString方法的作用
以良好的格式,更方便的展示對(duì)象中的屬性值
3.equals方法的作用
用于對(duì)象間的比較,返回true和false的結(jié)果
例如:String s1 = "123";
String s2 = "123";
if(s1==s2){
system.out.println("比較的是對(duì)象地址);
}else if(s1.equals(s2)){
system.out.println("比較的是字符串的內(nèi)容");
{
44、包裝類
1.基本類型包裝類
byte->Byte int->Integer char->Character.....
2.Integer類
*概述:包裝一個(gè)對(duì)象中原始類型int的值,該類還提供了幾種將int轉(zhuǎn)換為String和String轉(zhuǎn)換為int ,以及其他常量和方法在處理int時(shí)非常有用
*構(gòu)造方法:
public Integer(int value):根據(jù)int值創(chuàng)建Integer對(duì)象
public Integer(String s):根據(jù)String值創(chuàng)建Integer對(duì)象
public static Integer valueOf(int i):返回表示指定的int值的Integer實(shí)例
public static Integer valueOf(String s):返回表示指定的String值的Integer實(shí)例
*int和String類型的相互轉(zhuǎn)換
int->String
直接在數(shù)字后加一個(gè)字符串
int num = 100;
String s = num+"";
通過(guò)String類靜態(tài)方法valueOf()
int num = 100;
String s = String.valueOf(num);
String->int
先將字符串轉(zhuǎn)成Integer,在調(diào)用intValue()
String s ="100";
Integer i = Integer.valueOf(s);
int x = i.intvalue();
通過(guò)Integer靜態(tài)方法parseInt()
String s = "100";
int i = Integer.parseInt(s);
3.Data類
*概述:代表一個(gè)特定的時(shí)間,精確到毫秒
*構(gòu)造方法:
public Date():分配一個(gè)data對(duì)象,并初始化,代表它被分配的時(shí)間
public Date(long date):分配一個(gè)data對(duì)象,并將其初始化為表示從標(biāo)準(zhǔn)基準(zhǔn)時(shí)間起指定的毫秒數(shù)
*常用方法:
public long getTime():獲取的時(shí)期對(duì)象是從1970年1月1日00:00:00到現(xiàn)在的毫秒數(shù)
public void setTime(long time):設(shè)置時(shí)間,給到的是毫秒值
4.SimpleDateFormat類
*概述:用于格式化日期,和解析日期
*構(gòu)造方法:
public SimpleDateFormat():構(gòu)造一個(gè)SimpleDateFormat,使用默認(rèn)模式和日期格式
public SimPleDateFormat(String pattern):構(gòu)造一個(gè)SimpleDateFormat,使用給定模式和默認(rèn)的日期格式
*常用方法:
public final String format(Date date):將日期格式化成日期/時(shí)間字符串
public Date parse(String source):從給定字符串開(kāi)始解析文本生成日期
5.Calendar類
*概述:為特定瞬間與一組日歷字段之間轉(zhuǎn)換提供了一些方法,并為操作日歷字段提供了一些方法。calendar提供了一個(gè)類方法getlnstance,用于獲取這種類型的一般有用的對(duì)象。該方法返回一個(gè)Calendar對(duì)象,日歷字段使用當(dāng)前日期初始化:Calendar rightnow=Calendar.getlnstence();
*常用方法:
public int get(int field):返回給定日歷字段的值
public abstract void add(int field,int amount):根據(jù)日歷的規(guī)則,將指定的時(shí)間添加或減去給定的日歷字段
public final void set(int year,int month,int date):設(shè)置當(dāng)前日歷的年月日
45、異常
1.概述:異常就是程序出現(xiàn)了不正常的情況
2.異常的體系結(jié)構(gòu)Throwable->(Error,Exception)->(RuntimeException,非RuntimeException)
Error:嚴(yán)重錯(cuò)誤,不需要處理
Exception:異常類,可以修改的錯(cuò)誤
RuntimeException:運(yùn)行時(shí)錯(cuò)誤,編譯期不檢查,出現(xiàn)問(wèn)題回來(lái)改代碼
非RuntimeException:編譯時(shí)錯(cuò)誤,編譯期必須改正,否則代碼無(wú)法運(yùn)行
3.JVM默認(rèn)處理異常的方法:把程序異常的名稱,錯(cuò)誤原因及異常出現(xiàn)的位置等信息在控制臺(tái)輸出,程序停止執(zhí)行
4.異常處理方式
*try-catch方式
try{
可能出現(xiàn)異常的代碼;
}catch(異常類名 變量名){
異常處理代碼;
}
*throws方式
public void 方法() throws 異常類名{}
*throws格式是跟在方法的括號(hào)后面的
*如果采用throws方案,將來(lái)誰(shuí)調(diào)用誰(shuí)處理,運(yùn)行時(shí)異??梢圆惶幚恚霈F(xiàn)問(wèn)題后,需要回來(lái)改代碼
5.Throwable成員方法:
public String getMessage():返回throwable的詳細(xì)消息字符串
public String toString():返回此可拋出的簡(jiǎn)短描述
public void printStackTrace():把異常的錯(cuò)誤信息輸出在控制臺(tái)
6.throws和throw的區(qū)別
*throws
用在方法聲明后面,跟的是異常類名
表示拋出異常,由調(diào)用它的方法來(lái)處理
表示出現(xiàn)異常的一種可能性,并不一定會(huì)出現(xiàn)
*throw
用在方法內(nèi),跟的是異常對(duì)象名
表示拋出異常,由方法體內(nèi)的語(yǔ)句處理
執(zhí)行throw一定拋出了某種異常
*格式:throw new 類名(...);
Java
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。