【299天】我爱刷题系列058(2017.12.01)

叨叨两句

  1. 搞定~一晃就是299天,恍如隔世通常,看来,坚持的方法已经算搞明白了。

牛客网——java专项练习038

1

java Thread中,run方法和start方法的区别,下面说法错误的是?
正确答案: Bjava

  1. 经过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状B 态,并无运行。
  2. 他们均可以实现了多线程运行。
  3. run方法是thread的一个普通方法调用。
  4. 调用start方法后,一旦获得cpu时间片,就开始执行run()方法。
两种方法的区别:
    1.start方法
         用 start方法来启动线程,是真正实现了多线程, 经过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并无运行,一旦获得cpu时间片,就开始执行run()方法。但要注意的是,此时无需等待run()方法执行完毕,便可继续执行下面的代码。因此run()方法并无实现多线程。
    2.run方法
         run()方法只是类的一个普通方法而已,若是直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径仍是只有一条,仍是要顺序执行,仍是要等待run方法体执行完毕后才可继续执行下面的代码。

2

关于抽象类与最终类,下列说法错误的是?
正确答案: D 你的答案: C (错误)多线程

  1. 抽象类能被继承,最终类只能被实例化。
  2. 抽象类和最终类均可以被声明使用
  3. 抽象类中能够没有抽象方法,最终类中能够没有最终方法
  4. 抽象类和最终类被继承时,方法能够被子类覆盖
最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。
对于选项B. 抽象类和最终类均可以被声明使用。
这里只是说“声明”,并无说“实例化”;若是只是声明是能够的,最多见的使用方式就是:
一、父类类型的引用指向子类的对象;
二、 接口类型的引用指向该接口的实现类的对象;
以上两种使用方式也就是所谓的“向上转型”。
抽象类时专门拿来被继承的,其实也能够没有抽象方法。抽象类是不能实例化的,实例化必将加载类,而后根本不知道抽象方法的方法体大小,因此不能实例化。
而final类,之因此被定义为final类是认为这个类已经很完美了,不但愿被继承被扩展或者被修改。final方法是能够被继承的,可是不能够被覆盖。