美文网首页面试题
Java 面试问题系列四(基础)

Java 面试问题系列四(基础)

作者: 小G哥哥 | 来源:发表于2017-11-20 16:08 被阅读13次

    1、Java 中异常机制。

    Java 中所有异常都是Throwable的子类,他的直接子类有两个,一个是Error, 一个是Exception。Error一般表示 JVM 出现了严重问题,比如说栈溢出或 OOM,Exception中异常分为两类,一类是RuntimeException表示运行期间出现的错误,比较常见的是空指针异常和数组下标越界,出现这种异常一般是程序出现了逻辑错误,也就是代码有 Bug。另一类是编译时异常(除了RuntimeException以外的异常),常见的一般有IOException等, 出现这种错误程序编译会不通过。

    还有一种分类方式是checked exception和uncheck exception。unchecked exception包括Error和RuntimeExcetion,checked exception指之前所说的编译时异常。

    2、Java 中异常怎么处理,什么时候抛出,什么时候捕获;

    一般原则是提早抛出,延迟捕获

    出现异常时,若当前无法处理则抛,否则捕获异常,尝试恢复。

    3、说一说对 java io 的理解

    Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:

    基于字节操作的 I/O 接口:InputStream 和 OutputStream

    基于字符操作的 I/O 接口:Writer 和 Reader

    基于磁盘操作的 I/O 接口:File

    基于网络操作的 I/O 接口:Socket

    4、知不知道 NIO

    三个特点:

    Channels and Buffers // 通过 Channels 访问 Buffers

    Non-blocking IO // 非阻塞 IO

    Selectors // 单线程,监控 nultiple Channels

    5、说下 IO 模型。

    BIO:JDK1.4 之前的阻塞 IO

    NIO:JDK1.4 及以后的版本,非阻塞 IO

    AIO:JDK1.7 之后,又叫 NIO.2,异步 IO

    整个Java I/O模型,大致可以分为三类:

    6、Java 锁机制

    7、重入锁、对象锁、类锁的关系

    8、哪些方法实现线程安全?

    synchronized,volatile,然后重点说了下 volatile 在某些情况下可以实现线程安全,然后就把面试官注意力往 volatile 上引,因为volatile 这个专门看了一下,果然,面试官马上问了 volatile。

    9、Java 中的同步机制,synchronized 关键字,锁(重入锁)机制,其他解决同步的方 volatile 关键字 ThreadLocal 类的实现原理要懂。

    10、Synchronized 和 lock 区别

    11、锁的优化策略

    读写分离

    分段加锁

    减少锁持有的时间

    多个线程尽量以相同的顺序去获取资源

    12、Java线程阻塞调用 wait 函数和 sleep 区别和联系,还有函数 yield,notify 等的作用。

    sleep时线程的方法(让出 CPU),wait是对象的方法。

    13、谈谈的 Java 反射的理解,怎么通过反射访问某各类的私有属性

    通过反射,我们可以获取类的运行时内部结构。

    反射 API 中有个方法getDeclaredFields()

    14、动态代理的原理

    动态代理基于反射实现,调用者通过代理对象来访问方法的时候,代理对象可以做相应的处理,然后通过反射调用被代理对象的方法。

    关注重庆java圈

    相关文章

      网友评论

        本文标题:Java 面试问题系列四(基础)

        本文链接:https://www.haomeiwen.com/subject/ynbvvxtx.html