java基础10题

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的计数器可以被重置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值