Java零散知识点
2019獨角獸企業重金招聘Python工程師標準>>>
Java零散知識點
一:數組
1. 數組復制的幾種方法效率比較
效率:System.arraycopy > clone > Arrays.copyOf > for循環
for循環
for循環的話,效率最低.
System.arrycopy()
System.arraycopy()源碼中可以看到是native方法:native關鍵字說明其修飾的方法是一個原生態方法,方法對應的實現不是在當前文件,而是在用其他語言(如C和C++)實現的文件中。 可以將native方法比作Java程序同C程序的接口。
public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length);Arrays.copyOf()
從源碼中可以看到本質上是調用的arraycopy方法。,那么其效率必然是比不上 arraycopy的。
public static int[] copyOf(int[] original, int newLength) {int[] copy = new int[newLength];System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength));return copy; }使用clone方法
clone()的完整定義:protected native Object clone() throws CloneNotSupportedException;只有Object[]數組的clone()方法才返回Object類型,子類重寫了父類的方法。
而clone()和System.arraycopy只是從實驗的結果來看是System.arraycopy的效率高。
2.Arrays.asList()方法
將一個數組轉化為一個List對象,這個方法會返回一個ArrayList類型的對象, 這個ArrayList類并非java.util.ArrayList類,而是Arrays類的靜態內部類!用這個對象對列表進行添加刪除更新操作,就會報UnsupportedOperationException異常。本質上仍是一個數組。
二:類名
1.類名稱名稱相關問題
三: Servlet
1.Servlet的生命周期
Servlet的生命周期可以分為初始化階段,運行階段和銷毀階段三個階段。
初始化階段:Servlet啟動,會讀取配置文件中的信息,構造指定的Servlet對象,創建ServletConfig對象,將ServletConfig作為參數來調用init()方法。
四:參數傳遞
當參數為引用類型時:只有對引用對象的內部做了修改,才會影響原對象,如果直接將引用修改了,則對原對象沒有影響,唯一的影響就是:這個被修改的引用,現在不是原來對象的引用,而是新對象的引用。
引用傳遞指的是傳遞的時候,傳遞的是對象的引用。如果對引用的內部成員進行操作,則會直接影響到原對象,但是如果直接把此引用指向了其他對象,那對不起,這個引用從此以后,便與之前的對象沒有任何關系,當前代表的僅僅是新指向的對象。
轉載于:https://my.oschina.net/PrivateO2/blog/1575760
總結
- 上一篇: Zookeeper详解(一):分布式与Z
- 下一篇: django 内置 admin