Java错题归纳day19

1. 下面关于程序编译说法正确的是()

A java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
B java编译出来的目标文件与具体操作系统有关
C java在运行时才进行翻译指令
D java编译出来的目标文件,可以运行在任意jvm上
答案:C
解析:
A:注意java编译成的是字节码,(而不是直接的二进制机器码。不然要JVM是吃干饭的嘛),被JVM翻译为机器码,所谓的一次编程多平台应用
B:java源文件生成的是class文件,与系统无关
C:字节码和机器码不是一回事,java运行时字节码才会被jvm翻译成机器码,所以说java是解释性语言。
D:jvm的版本是会影响的,就像这衣服你能穿不代表他能穿啊

2. 下面那些情况可以终止当前线程的运行?

A 当一个优先级高的线程进入就绪状态时
B 抛出一个异常时
C 当该线程调用sleep()方法时
D 当创建一个新线程时
答案:B
解析:
优先级高的并不一定会马上执行。
sleep方法阻塞一个线程并不会终止
创建一个新的线程时也不会终止另一个线程
当抛出一个异常后程序会结束,所以线程也会被终止

注意:
要区分“终止” 和 “阻塞”:
终止:这个线程不会在进入“就绪态”,宣告死亡,即“死亡状态”。
阻塞:进入阻塞态的线程还可以再进入“就绪态”,等待下一次 CPU 时间。
然后是对线程的 5 个状态的理解:

  1. 新建,刚刚新建的线程,还未进入就绪队列
  2. 就绪,进入就绪队列的线程拥有了获得 CPU 时间的机会,但不是一定会马上执行,与线程调度有关。
  3. 运行,获得了 CPU 时间,正在被执行的线程。
  4. 阻塞,进入阻塞状态的线程只是暂时失去了 CPU 时间,该类线程没有结束,“阻塞态”的线程只能进入到“就绪态”。
  5. 死亡,死亡的线程即彻底结束了。

下面总结下使一个线程进入阻塞状态的方法:

  1. sleep() / suspend()
  2. 发生IO阻塞
  3. 等待同步锁
  4. 等待通知

解除一个线程的阻塞状态,使之进入就绪态的方法:

  1. sleep() 指定的睡眠时间到了
  2. IO阻塞解除
  3. 获得同步锁
  4. 收到通知
  5. 调用了 suspend() 的线程阻塞后,再调用 resume() 解除阻塞

3. 下面程序的运行结果:()

public static void main(String args[]) {
Thread t=new Thread(){
public void run(){
dianping();
}
};
t.run();
System.out.print("dazhong"); }
static void dianping(){
System.out.print("dianping");
}

A dazhongdianping
B dianpingdazhong
C a和b都有可能
D dianping循环输出,dazhong夹杂在中间
答案:B
解析:本题中,线程t并没有启动,只是调用了run()方法,程序中运行的线程依然只有一个,那么程序会按照顺序执行,即先运行run(),run()方法调用dianping()方法输
出"dianping",程序继续向下执行输出"dazhong"。如果本题中t线程调用start()方法,就会出现C选项的情况。

4. public interface IService {String NAME=“default”;}默认类型等价表示是哪一项:

A public String NAME=“default”;
B public static String NAME=“default”;
C public static final String NAME=“default”;
D private String NAME=“default”;
答案:C
解析:接口中的变量默认是public static final 的,方法默认是public abstract 的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值