NowCoder-Java-Note(一)

作者: 路卡利欧Mega | 来源:发表于2017-12-04 08:28 被阅读26次

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

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

答案:B

解析:
  • A.抽象类是可以实现接口的,而且抽象类也可以继承自抽象类
  • B.对
  • C.抽象类指有abstract修饰的class,其可以包含抽象方法,也可以不包含
  • D.抽象类和接口都是不能被实例化的,只有具体的类才可以被实例化
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眼中,万物皆为对象,数组自然是对象
  • 原生类是指Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。
  • java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。

三、 在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

  • 因为String是被final修饰的类,所以本身的内容是不会改变的,相当于基本数据类型的值传递,在changge方法中给str赋值了“test”,相当于重新创建了一个string类型的变量.

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

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

答案:A

解析:
  • java的数据类型分为两大类:基本类型和引用类型;
  • 基本类型只能保存一些常量数据,引用类型除了可以保存数据,还能提供操作这些数据的功能;

  • 为了操作基本类型的数据,java也对它们进行了封装, 得到八个类,就是java中的基本类型的封装类;

  • 八种基本类型: byte short int long float double char boolean
    对应的包装类 : Byte Short Integer Long Float Double Character Boolean

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

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

答案:D

解析:
  • MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

  • MVC只是将分管不同功能的逻辑代码进行了隔离,增强了可维护和可扩展性,增强代码复用性,因此可以减少代码重复。但是不保证减少代码量,多层次的调用模式还有可能增加代码量。

    MVC.png

七、 假设如下代码中,若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

解析:
  • 1.“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象吗?
  • 2.前半句话讲的是创建线程的方式,后半句讲的是锁定,驴头不对马嘴。
  • 3.正确
  • 4.线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。

十、Java程序的种类有( )

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

答案:B C D

解析:
Java程序的种类有:

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

(b)可独立运行的 Application

(c)服务器端的 Serverlets

相关文章

  • NowCoder-Java-Note(一)

    一、 关于抽象类叙述正确的是? (B) A.抽象类不能实现接口B.抽象类必须有“abstract class”修饰...

  • NowCoder-Java-Note(二)

    一、 Java Application 中的主类需包含main方法,以下哪项是main方法的正确形参?( ...

  • NowCoder-Java-Note(三)

    一、 以下的变量定义语句中,合法的是() A.byte=128B.boolean=nullC.long a=12...

  • 。一一,一,一,一。

    一,、

  • 一 一

    2018年6月22日 星期五 雨 一水一万物 一星一宇宙 一字一文章 一书一世界 一读一微笑 一赞一知音

  • 一 一

    杨德昌《一 一》,早年曾看过一遍。 婷婷短发,白净,蓝色衬衫,学生裙,黑皮鞋,白袜子,学习很好的中学女生。温柔,懂...

  • 一 一

    给自己无处安放的灵魂找到了家!简书,我的新写作时光!继续,在流年里拾荒,禅落一身的光!

  • 一.一

  • 一.一

    一节车厢,一只行囊,肯为当时一念疯狂。 一根点燃,一缕惆怅,不许未来一片迷茫。 一眼远看,一众不详,哪知各位一去何...

  • 一(一)

    我叫一,总有人喜欢在背后说我,因为很多时候我都是自己一个人。很多人都说我很孤单,看起来很可怜,但我觉得很奇怪,他们...

网友评论

    本文标题:NowCoder-Java-Note(一)

    本文链接:https://www.haomeiwen.com/subject/ekszbxtx.html