一个容器类数据结构,读写平均,使用锁机制保证线程安全。如果要综合提高该数据结构的访问性能,最好的办法是(分区段加锁)
只在影响读写的地方加锁,锁可以用读写锁,可以提高效率
ArrayList list = new ArrayList(20);中的list扩充几次 0次
Arraylist默认数组大小是10,扩容后的大小是扩容前的1.5倍,最大值小于Integer 的最大值减8,如果新创建的集合有带初始值,默认就是传入的大小,也就不会扩容
根据以下代码段,下列说法中正确的是( )。
public class Parent {
private void m1(){}
void m2(){}
protected void m3(){}
public static void m4(){}
}
子类中一定能够继承和覆盖Parent类的m1方法子类中一定能够继承和覆盖Parent类的m2方法子类中一定能够继承和覆盖Parent类的m3方法 对
子类中一定能够继承和覆盖Parent类的m4方法
A.私有方法只能在本类中可见,故不能继承,A错误
B.缺省访问修饰符只在本包中可见,在外包中不可见,B错误
C.保护修饰符凡是继承自该类的子类都能访问,当然可被继承覆盖;C正确
D.static修饰的成员属于类成员,父类字段或方法只能被子类同名字段或方法遮蔽,不能被继承覆盖,D错误
Static:子类重写父类的静态方法,被子类调用时,子类方法并不会生效,而是调用了父类的静态方法。static关键字至关重要,经常在选项中出现,只要记住static属于类,在编译阶段就已经确定函数名和地址,并已经分配了内存,所以不存在运行时期多态的判断,他只是一个静态绑定,所以无法重写。
对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们 √
成员内部类位于外部类内部,可以直接调用外部类的所有方法(静态方法和非静态方法) √
由于匿名内部类只能用在方法内部,所以匿名内部类的用法与局部内部类是一致的 ×
静态内部类可以直接访问外部类的非静态成员 ×