北大青鸟推举: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 能不能不通过构造函数创建