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的
 
--------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章
相关标签/搜索