大华笔试整理+同花顺笔试整理
1.以为程序输出的是什么?
public static void main(String[] args) { List<String> list = new LinkedList<>(); list.add("null"); list.add("ths"); list.add("null"); filter(list); } public static void filter(List<String> list){ for(String str:list){ if("null".equals(str)){ list.remove(str); } } System.out.println(list.get(0)); }答案:ConcurrentModificationException,ConcurrentModificationException是基于java集合中的 快速失败(fail-fast) 机制产生的,
在使用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了增删改,就会抛出该异常。快速失败机制使得java的
集合类不能在多线程下并发修改,也不能在迭代过程中被修改。
2.以下程序输出的是什么?
public class B { public static B t1 = new B(); public static B t2 = new B(); { System.out.println("构造代码块"); } static { System.out.println("静态代码块"); } public B() { System.out.println("构造方法A"); } public static void main(String[] args) { B t = new B(); } }
在创建一个新的对象时,以下
静态代码块、构造代码块、构造方***依次执行,但是
#笔试#public static B t1 = new B();执行的时候,并不牵扯到静态代码块,所以只有构造代码块与构造方法,之后创造对象的时候,才需要进行静态代码块的执行
我的个人秋招笔试知识点记录 文章被收录于专栏
秋招笔试记录