首页投稿(暂停使用,暂停投稿)Java 杂谈

NowCoder-Java-Note(一)

2017-12-04  本文已影响26人  路卡利欧Mega

一、 关于抽象类叙述正确的是? (B)

A.抽象类不能实现接口
B.抽象类必须有“abstract class”修饰
C.抽象类必须包含抽象方法
D.抽象类也有类的特性,可以被实例化

答案:B

解析:
interface A{
    public void oneFun();
}
//抽象类可以实现接口
abstract class B implements A{
    public void twoFun(){}
}
//抽象类可以继承抽象类
abstract class C extends B{
        
}
public class Test01 {
    public static void main(String[] args) {
        //尝试实例化抽象类,报错
        B b = new B();
    }
}

二、 下列说法正确的有(A)

A.数组是一种对象
B.数组属于一种原生类
C.int number=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变

解析:

三、 在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,语句为:

class A implements B,C

四、 指出下来程序运行的结果是:

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.println(ex.ch);
    }
    private void change(String str, char[] ch) {
        str = "test ok";
        ch[0] = 'g';
    }
}

结果:good and gbc

五、 Java 语言用以下哪个类来把基本类型数据封装为对象()

A.包装类
B.Class
C.int number=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变

答案:A

解析:

六、 使用mvc模式设计的web应用程序具有以下优点,除了?

A.可维护行强
B.可扩展性强
C.代码重复少
D.大大减少代码量

答案:D

解析:

七、 假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是()

public static void main(String[]args)throws Exception {
   final Object obj = new Object();
     Thread t1 = new Thread() {
         public void run() {
             synchronized (obj) {
                 try {
                     obj.wait();
                     System.out.println("Thread 1 wake up.");
                 } catch (InterruptedException e) {
                 }
             }
         }
     };
     t1.start();
     Thread.sleep(1000);
     Thread t2 = new Thread() {
         public void run() {
             synchronized (obj) {
                 obj.notifyAll();
                 System.out.println("Thread 2 sent notify.");
             }
         }
     };
     t2.start();
}

A.Thread 1 wake up.Thread 2 sent notify.
B.Thread 2 sent notify.Thread 1 wake up.
C.A、B皆有可能
D.程序无输出卡死

答案:B

解析:

执行obj.wait();时已释放了锁,所以t2可以再次获得锁,然后发消息通知t1执行,但这时t2还没有释放锁,所以肯定是执行t2,然后释放锁,之后t1才有机会执行。

八、下列 java 程序输出结果为______。

int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));

A.true,false
B.true,true
C.false,true
D.false,false
E.对于不同的环境结果不同
F.程序无法执行

答案:B

解析:
本题是一个自动拆装箱的考题(自动拆装箱JDK需在1.5上):
  1. 基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true;

  2. 两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。

  3. 两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true

  4. 基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。 上述结果为:true、false、false、true。

九、有关线程的叙述正确的是()

A.可以获得对任何对象的互斥锁定
B.通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
C.线程通过调用对象的synchronized方法可获得对象的互斥锁定
D.线程调度算法是平台独立的

答案:C D

解析:

十、Java程序的种类有( )

A.类(Class)
B.Applet
C.Application
D.Servlet

答案:B C D

解析:
Java程序的种类有:

(a)内嵌于Web文件中,由浏览器来观看的_Applet

(b)可独立运行的 Application

(c)服务器端的 Serverlets

上一篇下一篇

猜你喜欢

热点阅读