java錯題集

A  java是強類型語言,全部的方法必須放在類裏面,包括main
B  java中能夠有多個重載的main方法,只有public static void main(String[] args){}是函數入口
C  內部類的類名通常與文件名不一樣
D  函數都必須用{}括起來,無論是一條語句仍是多條語句
--------------------------------------------------------------------------------------------------------------------------
首先先補充一下arrayList擴容的知識點
java源碼:
public void ensureCapacity(int minCapacity) {
	modCount++;
	int oldCapacity = elementData.length;
	if (minCapacity > oldCapacity) {
	    Object oldData[] = elementData;
	    int newCapacity = (oldCapacity * 3)/2 + 1;
    	    if (newCapacity < minCapacity)
		newCapacity = minCapacity;
            // minCapacity is usually close to size, so this is a win:
            elementData = Arrays.copyOf(elementData, newCapacity);
	}
    }

int newCapacity = (oldCapacity * 3)/2 + 1; 

 假設list初始化默認爲10
當第第10個被賦值時list是不會增加長度的,由於此時不須要開闢新的內存
當第11個時將執行會新開闢內存 (if (minCapacity > oldCapacity) 爲真 )
由於包含第11個,因此新增後數組長度則爲 10 + 10/2 + 1
可是實際上未賦值的爲5
也就是說每次開闢新內存時 都須要多開闢1爲當前賦值用
這裏明顯是50%+1.java

but此題不同sql

ArrayList的構造函數總共有三個: 數據庫

(1)ArrayList()構造一個初始容量爲 10 的空列表。 數組

(2)ArrayList(Collection<? extends E> c)構造一個包含指定 collection 的元素的列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。 函數

(3)ArrayList(int initialCapacity)構造一個具備指定初始容量的空列表。 調用的是第三個構造函數,直接初始化爲大小爲20的list,沒有擴容,因此選擇A ArrayList list=new ArrayList();   這種是默認建立大小爲10的數組,每次擴容大小爲1.5倍 ArrayList list=new ArrayList(20);  這種是指定數組大小的建立,沒有擴充this

--------------------------------------------------------------------------------------------------------------------------spa

橋接模式是結構型模式,關注點在依賴關係的維護。對於jdbc技術來講,它解耦了業務與數據庫通訊協議這兩個緯度之間的關係,因此這兩個緯度之間的關係就須要一個橋,即Driver,至於DriverManager把這個關係接到哪裏就是運行時的事情了。
微觀上,從connection的建立來看,它更像一個抽象工廠模式,特定的Driver建立對應的connection。
宏觀上,從業務代碼與connection的關係來看,關鍵點在於一個sql怎麼轉化爲對應的通訊協議,就屬於橋接
blog

--------------------------------------------------------------------------------------------------------------------------接口

 

效率:System.arraycopy > clone > System.copyOf > for循環內存

--------------------------------------------------------------------------------------------------------------------------

jdk版本的改動,抽象類與接口發生變化

關於抽象類
JDK 1.8之前,抽象類的方法默認訪問權限爲protected
JDK 1.8時,抽象類的方法默認訪問權限變爲default

關於接口
JDK 1.8之前,接口中的方法必須是public的
JDK 1.8時,接口中的方法能夠是public的,也能夠是default的
JDK 1.9時,接口中的方法能夠是private的
 
--------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相關文章
相關標籤/搜索