2019年11月14日 java2

考点1

有关线程的叙述正确的是()

  • A 可以获得对任何对象的互斥锁定。
  • B 通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。
  • C 线程通过使用synchronized关键字可获得对象的互斥锁定。
  • D 线程的创建只能通过继承Thread类来实现。

解析

显示答案/隐藏答案正确答案: C

采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。
每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池
任何一个对象系统都会为其创建一个互斥锁,这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁

考点2

设int x=1,float y=2,则表达式x/y的值是:()

  • A 0
  • B 1
  • C 2
  • D 以上都不是

解析

显示答案/隐藏答案正确答案: D

直接量2是int类型,可以自动转成float类型
表达式的计算结果的类型为操作数中范围最大的
x/y的结果为float类型,等于0.5

考点3

java接口的方法修饰符可以为?(忽略内部接口)

  • A private
  • B protected
  • C final
  • D abstract

解析

显示答案/隐藏答案正确答案: D

接口方法默认public abstract

考点4

java中提供了哪两种用于多态的机制

  • A 通过子类对父类方法的覆盖实现多态
  • B 利用重载来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
  • C 利用覆盖来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
  • D 通过子类对父类方法的重载实现多态

解析

显示答案/隐藏答案正确答案: AB

多态分为 编译时多态 和 运行时多态 。
其中 编辑时多态是静态的 , 主要是指方法的重载 ,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。
而 运行时多态是动态的 ,它是 通过动态绑定来实现的 ,也就是我们所说的多态性(要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类)

考点5

下列哪个选项是错误的。()

  • A 一个文件中只能有一个public class
  • B 一个文件中可以有多个类。
  • C 一个类中可以有两个main方法。
  • D 若类中只含一个main方法,则必须是public的。

解析

显示答案/隐藏答案正确答案: AD

A.一个文件中,可以有多个public class

1
2
3
4
public class Main {
public class Inner{
}
}

即,外部类为public,还可以有public的内部类
B.一个文件中可以有多个类,可以是多个并列的类,也可以是外部类、内部类结合。
C.一个类中,可以有多个main方法,这是重载,但是
public static void main(String[] args)
的方法只能有一个。
D.类中,可以有main方法,也可以没有main方法,而有一个main()方法的时候,也可以是任意访问权限。因为这个类不一定要执行,可以只是辅助类。

考点6

下面有关java threadlocal说法正确的有?

  • A ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
  • B 线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
  • C 在Thread类中有一个Map,用于存储每一个线程的变量的副本。
  • D 对于多线程资源共享的问题,同步机制采用了”以时间换空间”的方式,而ThreadLocal采用了”以空间换时间”的方式

解析

显示答案/隐藏答案正确答案: ABCD

有空了解一下