牛客网错题集(8.9)

牛客网刷题错题集(8.9)

时间:8月9日记一次牛客网刷题错题集。

接口不能扩展(继承)多个接口。( )

正确答案: B 你的答案: A (错误)
A.正确
B.错误
答案解析:

java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……
        不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
        但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。

下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?

正确答案: B 你的答案: C (错误)
A.实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。
B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值
C.类变量指的是用static修饰的属性
D.final变量指的是用final 修饰的变量
答案解析:

局部变量是指类方法中的变量,必须初始化。局部变量运行时被分配在栈中,量大,生命周期短,如果虚拟机给每个局部变量都初始化一下,是一笔很大的开销,但变量不初始化为默认值就使用是不安全的。出于速度和安全性两个方面的综合考虑,解决方案就是虚拟机不初始化,但要求编写者一定要在使用前给变量赋值。

以下哪些类是线程安全的()

正确答案: A D E 你的答案: A D (错误)
A.Vector
B.HashMap
C.ArrayList
D.StringBuffer
E.Properties
答案解析:

A,Vector相当于一个线程安全的List
B,HashMap是非线程安全的,其对应的线程安全类是HashTable
C,Arraylist是非线程安全的,其对应的线程安全类是Vector
D,StringBuffer是线程安全的,相当于一个线程安全的StringBuilder
E,Properties实现了Map接口,是线程安全的

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

正确答案: B F 你的答案: A B D F (错误)
A.所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
B.通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
C.java中所有的数据都是对象
D.Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
E.Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
F.Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的
答案解析:

A.错误(Error)的基类是Throwable
C.基本类型不是对象
D.垃圾回收器并不总是工作,只有当内存资源告急时,垃圾回收器才会工作;即使垃圾回收器工作,finalize方法也不一定得到执行,这是由于程序中的其他线程的优先级远远高于执行finalize()函数线程的优先级。(这是楼下的答案)
E.低版本JRE无法运行高版本JRE

关于下面一段代码,以下说法正确的是: ()

public class Test {
    private synchronized void a() {
    }
    private void b() {
        synchronized (this) {
        }
    }
    private synchronized static void c() {
    }
    private void d() {
        synchronized (Test.class) {
        }
    }
}

正确答案: A C 你的答案: B C (错误)
A.同一个对象,分别调用方法a和b,锁住的是同一个对象
B.同一个对象,分别调用方法a和c,锁住的是同一个对象
C.同一个对象,分别调用方法b和c,锁住的不是同一个对象
D.同一个对象,分别调用方法a、b、c,锁住的不是同一个对象
答案解析:

同步代码块(synchronized(this),synchronized(类实例对象),锁是小括号()中的实例对象)
同步非静态方法(synchronized method),锁的是当前对象的实例对象
获取类锁
同步代码块(synchronized(类.class)),锁是最小括号 () 中的类对象(Class对象)
同步静态方法(synchronized static method),锁是当前对象的类对象(Class 对象)
总结
有线程访问对象的同步代码块时,另外的线程可以访问该对象的非同步代码块
若锁住的是同一个对象,一个线程在访问对象的同步代码块时,另一个访问对象的同步代码块的线程会被阻塞。
若锁住的是同一个对象,一个线程在访问对象的同步方法时,另一个访问对象的同步方法的线程会被阻塞。
若锁住的是同一个对象,一个线程在访问对象的同步代码块时,另一个访问对象同步方法的线程会被阻塞,反之亦然。
同一个类的不同对象的锁互不干扰
类锁由于也是一种特殊的对象锁,因此表现和上述一致,而由于一个类只有一把对象锁,所以同一个类的不同对象使用类锁将会是同步的
类锁和对象锁互不干扰

总结

不积硅步无以至千里,不积小流无以成江海。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值