JAVA細節知識整理

1.java中創建實例的幾種方法:

   a.通過new創建 (調用構造方法)

   b.運用反射。即調用java.lang.Class/java.lang.reflect.Constructor類下的newInstance()方法(調用構造方法)

   c.clone(). (內存上已有的對象的副本)

   d.調用java.io.ObjectInputStream 的readObject 方法 (從文件中還原已有類的對象)

2.  ArrayList 的默認長度是10 例如:ArrayList list = new ArrayList();此時,其默認長度爲10,如果之後要20個空間的話,就要擴充一次。但此時ArrayList list = new ArrayList(20);因爲直接申請20個空間,這時就不需要擴充了,直接分配20個內存空間就行了。

3.常用的對稱加密算法:DES 3DES RC2 RC4 AES TDEA

 非對稱加密算法:RSA DSA ECC(橢圓曲線加密算法)D-H 揹包算法 Rabin

 單向散列函數的加密算法:MD5 SHA

4.

public class Test {
    public static void test(){
        System.out.println("hello");
    }
    public static void main(String[] args) {
        ((Test)null).test();
    }
}

這幾行代碼是可以運行的。因爲null可以強制轉換成任何類型。比如:(int)null 就是一個合法的強制類型轉換。

5.   靜態語句塊,構造語句塊(在大括號裏的語句),構造方法的執行順序。

靜態語句塊,下來執行main方法,如果語句new了自己,就開始執行構造語句塊,構造方法


6.多個catch捕獲語句。此時如果出現錯誤將會從第一個 catch 匹配依次到最後一個,但是如果前面的錯誤類是後面的錯誤類的父類將不會匹配後面的子類錯誤,因此要將父類錯誤放在catch的最後。

7.java裏沒有引用傳遞,只有值傳遞。

8.抽象類和接口的區別

   a).接口是公開的並且不可以私有的變量和方法,抽象類就可以私有的變量或方法

   b).接口只能 implements 實現,抽象類只能 extends 繼承(繼承爲單繼承,實現爲多實現)

   c).抽象類中可以有自己的數據成員,也可以有非 abstract 的方法,而在接口中只有靜態的數據成員(一般不定義)所有的成員方法默認的都是 public abstract類型的。

   d).抽象類表現的是“is - a”的關係,接口表現的是 “has - a”的關係。

   e).實現接口要實現接口中的所有方法,抽象類中的方法可以選擇需要的方法

 f ).接口中的變量默認的是public static final 類型的,一定要賦初值,且在實現類裏面不能改變,而抽象類默認的friendly 類型的,它的值可以在子類中重新定義,也可重新賦值。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章