北大青鸟推举:Java 精选笔试题(含答案解析)假如你是计算机专业出生,但是还没有找到工作的话,你就得补补技术了,一些关于面试、笔试的题要多刷一刷。有可能你知道答案,但是由于语言组织能力有所欠缺,所以面试官的印象不是很好,下面分享一些 Java 精选的鄙视题,希望对面试这者有帮助。1,volatile 关键字是否能保证线程安全()答案:否volatile 关键字用在多线程同步中,可保证读取的可见性,JVM 只是保证从主内存加载到线程工作内存的值是最新的读取值,而非 cache 中。但多个线程对 volatile 的写操作,无法保证线程安全。假如线程 1,线程 2 在进行 read,load 操作中,发现主内存中 count 的值都是 5,那么都会加载这个最新的值,在线程 1 对 count 进行修改之后,会 write 到主内存中,主内存中的 count 变量就会变为 6;线程 2 由于已经进行 read,load 操作,在进行运算之后,也会更新主内存 count 的变量值为 6;导致两个线程及时 volatile 关键字修改之后,还是会存在并发的情况。2,下面哪个流类属于面对字符的输入流( )A、BufferedWriterB、FileInputStreamC、ObjectInputStreamD、InputStreamReader答案:DJava 的 IO 操作中有面对字节(Byte)和面对字符(Character)两种方式。 面对字节的操作为以 8 位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是 InputStream 和 OutputStream 的子类。 面对字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是 Reader 和 Writer 的子类。3,Java 能不能不通过构造函数创建对象()A、能 B、不能答案:AJava 创建对象的几种方式:(1) 用 new 语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用或者类的 newInstance()实例方法。 (3) 调用对象的 clone()方法。 (4) 运用反序列化手段,调用对象的 readObject()方法。(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。4,下列哪个叙述是正确的()A.子类继承父类的构造方法。类的子类必须是非 abstract 类。C.子类继承的方法只能操作子类继承和隐藏的成员变量。D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量。答案:C子类是不继承父类的构造方法的,而是必...