错题纠正笔记(一日十题)
Ⅰ、”hello"instanceof Object 的返回值是(B)。
A. “abcd” B.true C.false D.String
解析:
instanceof是Java语言中的一个二元运算符,它的作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边类的实例,返boolean类型的数据。
常用的用法为:result= object instanceof class,如果object是class的一个实例,那么instanceof运算符返回true;如果object不是指定类的一个实例,或者object是null,那么,此时返回false.
Ⅱ、以下可以对对象加互斥锁的关键字是(A).
A.synchronized B.serialize C.volatile D.static
解析:
synchronized(同步的)是Java语言的关键字,主要用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块时,同一时刻最多只有一个线程执行这段代码。当两个并发线程访问同一个对象中的这个加锁同步代码块时,同一时间只能由一个线程执行。
serialize是序列化的意思,所谓对象的序列化指的是把对象转换为字节序列的过程,所谓对象的反序列化指的是把字节序列恢复为对象的过程。通常,对象的序列化主要由以下两种用途:
①将对象的字节序列永久的保存在硬盘上,通常存放在一个文件中。
②在网络上传送对象的字节序列。在Java语言中,序列化通过Serializable接口来实现。
volatile在由Java语言编写的程序中,有时候为了提高程序的运行效率,编译器会做一些优化操作,把经常被访问的变量缓存起来,程序在读取这个变量的时候有可能会直接从寄存器中读取这个值,而不会去内存中读取。这样做的一个好处是提高了程序的运行效率,但当遇到多线程编程时,变量的值可能被其他线程改变了,而该缓存的值不会做相应的改变,从而造成应用程序读取的值和实际的变量值不一致。关键字volatile正好能够解决这一问题,被关键字volatile修饰的变量编译器不会给予优化,每次都会从内存中读取。
static关键字static主要有以下两种作用:第一,为特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是