选择题 1.  以下可以对对象加互斥锁的关键字是______。
【正确答案】 A
【答案解析】 对于选项A,synchronized(同步的)是Java语言的关键字,主要用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。当两个并发线程访问同一个对象中的这个加锁同步代码块时,同一时间只能有一个线程执行。所以,选项A正确。
   对于选项B,serialize是序列化的意思,所谓对象的序列化指的是把对象转换为字节序列的过程,所谓对象的反序列化指的是把字节序列恢复为对象的过程。通常,对象的序列化主要有以下两种用途:①把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;②在网络上传送对象的字节序列。在Java语言中,序列化通过Serializable接口来实现。所以,选项B不正确。
   对于选项C,在由Java语言编写的程序中,有时候为了提高程序的运行效率,编译器会做一些优化操作,把经常被访问的变量缓存起来,程序在读取这个变量的时候有可能会直接从寄存器中来读取这个值,而不会去内存中读取。这样做的一个好处是提高了程序的运行效率,但当遇到多线程编程时,变量的值可能被其他线程改变了,而该缓存的值不会做相应的改变,从而造成应用程序读取的值和实际的变量值不一致。关键字volatile正好能够解决这一问题,被关键字volatile修饰的变量编译器不会做优化,每次都会从内存中读取。所以,选项C不正确。
   对于选项D,关键字static主要有以下两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关;第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的情况下就可以通过类来直接调用方法或使用类的属性。总之,被static修饰的属性(方法)是类的属性(方法),不属于任何对象。所以,选项D不正确。