2020-10-12 Java练习题

链接:https://www.nowcoder.com/questionTerminal/e1564a3c0f0c41a68972c5cd4bee49f1
来源:牛客网

关于Java的一些概念,下面哪些描述是正确的:( )

A.所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
java异常和错误的基类Throwable,包括Exception和Error

B.通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行

public static String test3() {
    String str = null;
    try {
        System.out.println("try...");
        System.exit(0);//系统退出未执行到finally语句块
        return str;
    } finally {
        System.out.println("finally...");
    }
}

C.java中所有的数据都是对象
基本数据类型就不是对象

D.Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
等待清理队列中如果又被调用,则不会执行finallize方法;finalize在被JVM回收时会进行判断: 1、如果此对象finalize未被执行过,则执行,并放置此对象到F-Queue中,此时,若在下次GC之前,重新与GC ROOTS建立引用连接,则对象"复活",下次GC时如果此对象又被GC,则直接进行回收,因为finalize只执行一次。 2、如果此对象finalize已经执行过一次,则在GC时不执行finalize,直接回收

E.Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
低版本JRE无法运行高版本JRE;采用高版本的JDK编写的程序,在低版本的JRE中无法运行

F.Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的
非静态锁的是实例的对象:多个非静态方法同时加了synchronized,互不影响 静态锁的是类:多个静态方法加了synchronized,如果其中一个方法被锁了,其他的静态方法是拿不到锁的,没法执行,只有等该方法执行结束,其它静态方法才能拿到锁,锁静态方法就相当于锁住了整个类 1.Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。 2.Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。

你可能感兴趣的:(2020-10-12 Java练习题)