1.下面代码结果为
public static void main(String[] args) {
System.out.println(val());
}
public static int val() {
int num = 5;
try {
num = num / 0;
} catch (Exception e) {
num = 10;
} finally {
num = 15;
}
return num;
}
2.根据以下代码段,执行new Child(“John”, 10); 要使数据域data得到10,则子类空白处应该填写( )。
class Parent {
private int data;
public Parent(int d){ data = d; }
}
class Child extends Parent{
String name;
public Child(String s, int d){
___________________
name = s;
}
}
3.下面有关servlet中init,service,destroy方法描述错误的是?
A.init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
B.service()方法处理客户机发出的所有请求
C.destroy()方法标志servlet生命周期的结束
D.servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的
4.ArrayLists和LinkedList的区别,下述说法正确的有?
A.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
B.对于随机访问get和set,ArrayList绝对优于LinkedList,因为LinkedList要迭代器。
C.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
D.ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
5.类之间存在以下几种常见的关系:
A.“USES-A”关系
B.“HAS-A”关系
C.“IS-A”关系
D.“INHERIT-A”关系
6.如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是
7.
访问权限控制从最大权限到最小权限依次为:public、 包访问权限、protected和private 。( )
A.正确
B.错误
8.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。
public class Example {
String str = new String("good");
char[] ch = {'a','b','c'};
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str +"and");
System.out.print(ex.ch);
}
public void change(String str, char ch[]){
str= "test ok";
ch[0]= 'g';
}
}
9.子类要调用继承自父类的方法,必须使用super关键字。
A.正确
B.错误
10.当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
A,.CountDownLatch
B.CyclicBarrier
C.Semaphore
D.Future
(1)程序正常运行,输出值为15
try和catch两位大佬执行完毕后
都需要finally小弟在后面帮忙擦屁股
(2)super(d);
1.子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员,格式:super.xx (注:xx是成员名);
2.创建子类对象时,默认会调用父类的无参构造方法,可通过super指定调用父类其他构造方法,格式:s uper(yy) (注:yy是父类构造方法需要传递的参数)
(3)答案为D。
servlet在多线程下其本身并不是线程安全的。
如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。
(4)正确答案: A B C D
(5)正确答案: A B C
(6)++y,则y=5
int的5转成double的5
x=2.0/5=0.4(这里是double的5 )
(7)B
public>protected>默认>private
原因:protected修饰的类,不仅仅可以被本包访问,还可以被其他包中的子类访问 来源
(8)goodandgbc
String类型和数组属于引用传递,但执行change方法后,数组改变的是ch[0],也就是ch数组引用未改变,但其所指向内容的值被改变
(9)B
super是父类空间的引用 1.当子类重写了父类的方法 如果子类还想调用父类该方法 必须 super 2.在子类的构造方法里调用父类的构造方法 要super 3.换言之,当子类有不同于父类的东西时才需要super
(10)B
CountDownLatch 和 CyclicBarrier 的区别
CountDownLatch的作用是允许一个或多个线程等待其他线程完成执行;CyclicBarrier则允许多个线程相互等待。
CountDownLatch的计数器无法被重置;CyclicBarrier的计数器可以被重置。