- 我发现我对熬夜身体累彻底不担忧,担忧的只是熬夜伤身体
- 原来我是你们的小太阳,哈哈,但愿大家和我相处都暖暖的^-^
下代码对其执行后,NumberList里的元素依次为: List<Integer> NumberList =newArrayList<Integer>(); NumberList.add(2); NumberList.add(4); NumberList.add(1); NumberList.add(3); NumberList.add(5); for(int i =0;i<NumberList.size();++i) { int v = NumberList.get(i); if(v%2==0) { NumberList.remove(v); } } System.out.println(NumberList); 正确答案: D 你的答案: C (错误) A 2,4,1,3,5 B 2,1,3,5 C 4,1,3,5 D 会出现越界状况
这题主要考察两点:
1.ArrayList删除元素后,剩余元素会依次向前移动,所以下标一直在变,size()也会减少;
2.remove()方法调用的是remove(int index),而不是remove(Object o),所以删除的是index索引处的元素;java
该题具体流程:
1.i=0,v=2,remove(2)删除掉了元素1,所以NumberList剩余元素【2,4,3,5】;
2.i=1,v=4,remove(4),此时线性表中只有四个元素,不可能删除索引为4的元素,所以会报数组下标越界异常。数组
关于JAVA堆,下面说法错误的是()? 正确答案: C 你的答案: 空 (错误) A 全部类的实例和数组都是在堆上分配内存的 B 堆内存由存活和死亡的对象,空闲碎片区组成 C 数组是分配在栈中的 D 对象所占的堆内存是由自动内存管理系统回收
在使用super 和this关键字时,如下描述正确的是 正确答案: A 你的答案: A (正确) A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,不然编译不经过 B super()和this()不必定要放在构造方法内第一行 C this()和super()能够同时出如今一个构造函数中 D this()和super()能够在static环境中使用,包括static方法和static语句块
1)调用super()必须写在子类构造方法的第一行,不然编译不经过。每一个子类构造方法的第一条语句,都是隐含地调用super(),若是父类没有这种形式的构造函数,那么在编译的时候就会报错。
2)super()和this()相似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
3)super()和this()均需放在构造方法内第一行。
4)尽管能够用this调用一个构造器,但却不能调用两个。
5)this和super不能同时出如今一个构造函数里面,由于this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,因此在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会经过。
6)this()和super()都指的是对象,因此,均不能够在static环境中使用。包括:static变量,static方法,static语句块。
7)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。函数
关键字super的做用是? 正确答案: D 你的答案: C (错误) A 用来访问父类被隐藏的非私有成员变量 B 用来调用父类中被重写的方法 C 用来调用父类的构造函数 D 以上都是
下列哪一种状况能够终止当前线程的运行? 正确答案: D 你的答案: D (正确) A 当一个优先级高的线程进入就绪状态时 B 当该线程调用sleep()方法时 C 当建立一个新线程时 D 抛出一个异常时
下列选项中是正确的方法声明的是?() 正确答案: A B C D 你的答案: A B C D (正确) A protected abstract void f1(); B public final void f1() {} C static final void fq(){} D private void f1() {}
1.抽象方法只能定义在抽象类中,抽象方法和抽象类必须由abstract修饰,abstract关键字只能描述类和方法,不能描述变量。抽象方法只定义方法声明,不定义方法实现。抽象类不能够被实例化(建立对象),只有经过子类继承抽象类并覆盖抽象类中的全部抽象方法后,该子类才能够被实例化,不然该子类仍是一个抽象类。抽象类中有构造函数用于给子类对象进行初始化,同时抽象类中能够含有非抽象方法。abstract关键字不能够与final,private,static关键字共存,由于被final修饰的方法不能够被重写,意味着子类不能够重写该方法,若是abstract和final共同修饰父类中的方法,子类要实现抽象方法(abstract的做用),而final又不让该方法重写,这相互矛盾。若是private和abstract共同修饰父类中的方法,private修饰则该方法不能够被子类访问,可是abstract修饰须要子类去实现,二者产生矛盾。若是static和abstract共同修饰父类中的方法,static表示是静态的方法,随着类的加载而加载,则该方法不须要在子类中去实现,这与abstract关键字矛盾。 2.static用于修饰成员变量和成员函数,想要实现对象中的共性数据的对象共享,能够将这个数据进行静态修饰,被静态修饰的成员能够直接被类名调用,静态随着类的加载而加载,并且优先于对象存在。静态方法只能访问静态成员(静态方法和静态变量),不能够访问非静态成员,这是由于静态方法加载时,优先于对象存在,因此没有办法访问对象中的成员。静态方法中不能使用this和super关键字,由于this表明本类对象,super表明父类对象,而静态时,有可能没有对象存在,因此this和super没法使用。 3.final关键字能够修饰类,方法,变量(成员变量内,局部变量,静态变量),被final修饰的类是一个最终类,不能够被继承,被final修饰的方法是一个最终方法,不能够被覆盖,可是能够被继承。被final修饰的变量只能是一个常量,只能赋值一次。内部类被定义在类中的局部位置上时,只能访问局部被final修饰的局部变量。