API使用和常用包的概述
常用類的概述和使用
常用的包(熟悉)
包的名稱和功能
1.java.lang包,該包是java語言的和辛堡,並且該包中所有內容由java虛擬機自動導入。
如System類,String類,…..
2.java.util包,該包是java語言的工具包,裏面提供了大量工具類以及集合類等。
如:Scanner類,Random類,List集合….
3.java.io包,該包是java語言中的輸入輸出包,裏面提供了大量讀寫文件相關的類等。
如:FileInputStream類,FileOutputStream類,…….
4.java.net包,該包是java語言中的網絡包,裏面提供了大量網絡編程相關的類等。
如:ServletSocket類,Socket類….
5.java.sql包,該包是java語言中的數據包,裏面提供了大量操作數據庫的接口等。
如:DriverManager類,Connect接口,…..
java程序員在編寫時可以使用大量的類庫,因此java編程時需要記得很多,對象編程編程能力本身不是特別的高。
Object類的概念和構造方法
1.Java.lang.Object類是java語言中類層次結構的根類,也就是說任何一個類都是該類的直接或者間接子類
2.如果定義一個java類時沒有使用extends關鍵字聲明其父類,則其父類爲java.lang.Object類。Object定義了“對象”的基本行爲,被子類默認繼承。
常用方法:
多態:當父類類型的引用指向子類類型的對象時
equals方法默認功能的使用:
源碼:
Object類:
public boolean equals(Object obj){
return (this==obj);
}
因爲所有沒有父類的類都是默認繼承Object類,所以我們可以在子類中重寫Object中的方法。
重寫
@Override
public boolean equals(Object obj){
//判斷obj指向的對象是否爲Student類型的對象,若是則條件成立,否則條件不成立
If(obj instanceof Student){
Student ts=(Studeng) obj;
Return this.getId()=ts.getId();
}
return false;
}
優化:
public boolean equals(Object obj){
//當調用對象和參數對象指向同一個對象時,則一定相同;
If(this==obj){return true;}
//當調用對象不爲空而參數對象爲空時,則內容一定不相同。
If(null==object){ return false; }
//判斷obj指向的對象是否爲Student類型的對象,若是則條件成立,否則條件不成立
If(obj instanceof Student){
Student ts=(Studeng) obj;
Return this.getId()=ts.getId();
}
return false;
}
請注意,通常需要在重寫此方法時覆蓋hashCode方法,以便維護hashCode方法的常規協定,該方法聲明相等對象必須具有相等的哈希代碼。
hashCode方法的重寫實現:
爲了使hashCode方法的結果和equals方法的結果保持一致,從而滿足官方的常規協定,需要重寫該方法。
@Override
public int hashCode(){
final int type=12;
return type*31+getId();
}
toString()方法的重寫:
爲了返回更有意義的字符串數據,則需要重寫該方法
@Override
Public String toString(){
return "Student[id="+getId()+",name="+getName()+"]";
}
以姓名爲基準來判斷:
public boolean equals(Object obj){
//當調用對象和參數對象指向同一個對象時,則一定相同;
If(this==obj){return true;}
//當調用對象不爲空而參數對象爲空時,則內容一定不相同。
If(null==object){ return false; }
//判斷obj指向的對象是否爲Student類型的對象,若是則條件成立,否則條件不成立
If(obj instanceof Student){
Student ts=(Studeng) obj;
//判斷兩個字符串的地址是否相同的地址
//Return this.getName()=ts.getName();
//只是比較兩個字符串內容是否相同,看String類中的源碼,String類繼承了Object類,並重寫了equals方法。
Return this.getName().equals(ts.getName());
}
return false;
}
equals方法和hashCode
Idea中可以自動生成equals和hashCode方法。
包裝類的概念和分類:
通常情況下基本數據類型的變量不是對象,爲了滿足萬物皆對象的理念就需要對基本數據類型的變
量進行打包封裝處理變成對象,而負責將這些變量聲明爲成員變量進行對象化處理的相關類,叫做包裝
類。
如:
Person p = new Person();
int num = 10;
包裝類的分類
Integer類的概念和構造方式
1.基本概念:
Java.lang.Integer類內部包裝了一個int類型的變量作爲成員變量,主要用於實現對int類型的包裝並提供int類型到String類之間的轉換等方法。
2.常用的常量:
3.常用方法:
Integer類的裝箱和拆箱機制
//valueOf方法相當於從int類型到Integer類型的轉換,叫做裝箱
Integer it=Integer.valueOf(123);
//獲取調用對象中的證書數值,相當於Integer類型到int類型的對象的轉換,這個過程叫拆箱
Int ia=it.intValue();
//從java5開始增加了自動裝箱和拆箱機制
Integer it=100;//直接通過賦值運算符實現自動裝箱
Int ib=5;//直接通過賦值運算實現自動拆箱
裝箱和拆箱的筆試題:
Integer it6=128;
Integer it7=128;
Integer it8=new integer(value:128);
Integer it9=new integer(value:128);
System.out.println(it6==it7); //比較地址 false
System.out.println(it6.equals(it7)); //比較內容 true;
System.out.println(it8==it9); //比較地址 false
System.out.println(it8.equals(it9)); //比較內容 true;
Integer it6=127;
Integer it7=127;
Integer it8=new integer(value:127);
Integer it9=new integer(value:127);
System.out.println(it6==it7); //比較地址 true (自動裝箱池)
System.out.println(it6.equals(it7)); //比較內容 true;
System.out.println(it8==it9); //比較地址 false
System.out.println(it8.equals(it9)); //比較內容 true;
4.裝箱和拆箱的概念
在Java5發佈之前使用包裝類對象進行運算時,需要較爲繁瑣的“拆箱”和“裝箱”操作;即運算前先將
包裝類對象拆分爲基本類型數據,運算後再將結果封裝成包裝類對象。
從Java5開始增加了自動拆箱和自動裝箱的功能。
5.自動裝箱池
在Integer類的內部提供了自動裝箱池技術,將-128到127之間的整數已經裝箱完畢,當程序中使用
該範圍之間的整數時,無需裝箱直接取用自動裝箱池中的對象即可,從而提高效率
Double類的概念:
1.基本概念
java.lang.Double類型內部包裝了一個double類型的變量作爲成員變量,主要用於實現對double
類型的包裝並提供double類型到String類之間的轉換等方法。
2.常用的常量
3.常用的方法:
擴展:
java.lang.Number類是個抽象類,是上述類的父類來描述所有類共有的成員。
//實現了從double到Double類型的轉換,裝箱
Double db1=Double.valueOf(3.14);
//實現了Double到double類型的轉換,拆箱
double db1=doubleValue();
//從java5開始實現自動裝箱和自動拆箱
Double db2=3.14;
Double d2=db2;
Boolean類的概念和使用
基本概念:
java.lang.Boolean類型內部包裝了一個boolean類型的變量作爲成員變量,主要用於實現對
boolean類型的包裝並提供boolean類型到String類之間的轉換等方法。
常用的常量
常用的方法:
Character·類的概念和使用
1.基本概念:
java.lang.Character類型內部包裝了一個char類型的變量作爲成員變量,主要用於實現對char類型
的包裝並提供字符類別的判斷和轉換等方法。
2.常用的常量:
3.常用的方法:
包裝類的總結:
1.基本數據類型轉換爲對應包裝類的方式
調用包裝類的構造方法或靜態方法即可
2.獲取包裝類對象中基本數據類型變量數值的方式
調用包裝類中的xxxValue方法即可
3.字符串轉換爲基本數據類型的方式
調用包裝類中的parseXxx方法即可