Java基礎易漏易錯知識點總結
JAVA基礎易漏易錯知識點彙總
一、資料型別的對比
1. byte型:8位 2. short型:16位 3. int型:32位 4. long型:64位 5. 浮點型: float型:單精度,32位,建立形式:**float f1=1.2f**; double型:雙精度,64位,建立形式:**double d1=1.234**; 6.布林型 boolean a=true; 7. 字元型:char:16位,單一的字元型,建立形式:**char a=‘A’**; 8. 字元型的易漏點: 8.1 2.34E308=2.34x10的308次冪 8.2 浮點型轉換成整數型的話是直接捨棄了小數點後面的數得來的,不是通過四捨五入而來的。 8.3 自動型別轉換的前提是**轉換前的數的位數低於轉換後的數**,可以簡單地理解符合一個**自下向上**的轉換規則。 8.4 強制轉換的規則:一個是**資料型別相容的**,一個是**轉換前的數的位數高於轉換後的數的位數**。格式為:int a=3; byte b=(byte)a; 8.5 整數的預設型別是int型別
二、區域性變數、成員變數、例項變數、類變數
1.區域性變數不能用訪問修飾符來修飾,原因是訪問修飾符是用來修飾屬性和方法的,區域性變數本身就是儲存在方法體內,在變數呼叫完成之後就不存在了。
2.區域性變數是在棧儲存中的,成員變數是在堆儲存中的。
3.例項變數一般情況下是設定為私有的,因為例項變數在具體的實現的時候才會實現。
4.例項變數是具有預設值的,數值型的變數預設值為0,布林型變數的預設值為false,引用型變數的預設值為null。變數的值可以在宣告時指定,也可以在構造方法中指定。
5.類變數必須用static關鍵字來宣告,在構造方法和語句塊之外。
6.一般當類變數為public static final
三、為什麼使用get和set方法而不是直接用public來公開這個值呢?
答:3.1、從使用原則上來講,設計類的人只需要告訴使用類的人類裡有什麼功能就好,不需要把具體的值給公開,使用類的人也是隻需要明白一個類能夠做什麼就ok,這個也是各個部門之間的合作準則。
3.2、get和set方法可以直接控制輸入的值,直接公開的話會有可能造成輸入不規範。
四、修飾符的使用
4.1
4.2 注意點:
4.2.1 protected
4.2.2 父類和子類的繼承遵循著自低向高的原則,特殊的是private不能被繼承。
4.2.3 靜態方法不能使用類的非靜態變數,靜態方法從引數列表中得到這些資料。
4.2.4 final方法可以被繼承,不能被修改,final類不能被繼承。
4.2.5 一個類不能同時被abstract類和final來修飾。
4.2.6 如果一個類中有抽象方法,則一定為抽象類。
4.2.7 synchronized同一時間只能被同一個執行緒訪問。
4.2.8 transient該修飾符不會被持久。
五、運算子
5.1 條件運算子(?:)
運算規則:a=1;b=(a==10)?20:30,結果:30
5.2 instanceof 比較符
boolean result =a instanceof b;
六、構造方法和普通方法的總結
6.1 構造方法的作用是為了建立一個新的物件,方便呼叫類中的方法。普通方法也可以叫做普通函式,目的就是為了封裝一些操作的方法。
6.2 子類中繼承了父類後,如果子類要過載父類的構造方法的話需要用到super()這個方法的。
七、抽象類和介面的區別與作用。
1.抽象類是用來繼承的,介面是用來實現的。
2.介面中必須都是抽象方法,抽象類中可以抽象方法也可以有非抽象方法。但是如果是抽象方法的話一定是抽象類。
3.繼承了抽象類後,在實現的過程中是需要確確實實的方法。
八、靜態的運用
(1)不推薦使用物件的方式來訪問靜態欄位。
(2)如果final變數為空,則需建立物件形式來引用。
(3)靜態變數和例項變數的區別:
靜態變數就會建立物件,只分配一次記憶體,例項變數在建立了對 象的時候就會建立了記憶體。
九、內部類
內部類分為四種,成員內部類,區域性內部類,靜態內部類,匿名內部類。
(1)成員內部類的用法(類似於成員變數)
區域性和成員內部類都不能定義靜態成員,原因就是靜態是優於物件存在的,如果先有了靜態,則說明這個類是先建立了出來,但實際上是不知道這個類是屬於誰的,所以說不能建立static關鍵字。
成員內部類的用法和作用的總結:
1./*外部類中的靜態成員方法訪問內部類*/
public static void Method_01(){
Outer outer=new Outer();
Inner inner=outer.new Inner();
inner.InnerClass();
}
其他的用法很簡單。
2.區域性內部類的用法與總結
在區域性內部類中訪問到外部類的區域性變數的話,這個變數需要是final型的,只有帶上外部類的類名的時候才是訪問到外部類的區域性變數。
3.靜態內部類的用法與總結
靜態內部類是優於物件存在的,所以訪問的話只能先是訪問到外部類的靜態變數和靜態方法。
外部類中訪問靜態類的靜態方法的時候,直接是內部類.靜態方法名,外部類訪問靜態類中的非靜態方法的時候,先是創建出物件,然後再呼叫方法。
4.匿名靜態類的特點與運用
只用到類的一個例項。
類在定義後馬上用到。
類非常小(SUN推薦是在4行程式碼以下)
給類命名並不會導致你的程式碼更容易被理解。
在使用匿名內部類時,要記住以下幾個原則:
匿名內部類不能有構造方法。
匿名內部類不能定義任何靜態成員、方法和類。
匿名內部類不能是public,protected,private,static。
只能建立匿名內部類的一個例項。
一個匿名內部類一定是在new的後面,用其隱含實現一個介面或實現一個類。
因匿名內部類為區域性內部類,所以區域性內部類的所有限制都對其生效。