1. Java 支持的数据类型有哪些?什么是自动拆装箱?

解答:Java 语言支持的 8 种基本数据类型是: byte short int long float double boolean char 自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如: 把 int 转化成 Integer,double 转化成 Double,等等。反之就是自动拆箱。

2.什么是死锁(deadlock)?

解答:两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结 果就是这些线程都陷入了无限的等待中。

3.如何确保 N 个线程可以访问 N 个资源同时又不导致死锁?

解答:使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程 按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出 现死锁了。

4.RMI 体系结构分哪几层?

解答:RMI 体系结构分以下几层: 存根和骨架层(Stub and Skeleton layer):这一层对程序员是透明的,它主要负责拦截客户端发 出的方法调用请求,然后把请求重定向给远程的 RMI 服务。 远程引用层(Remote Reference Layer):RMI 体系结构的第二层用来解析客户端对服务端远程 对象的引用。这一层解析并管理客户端对服务端远程对象的引用。连接是点到点的。 传输层(Transport layer):这一层负责连接参与服务的两个 JVM。这一层是建立在网络上机器 间的 TCP/IP 连接之上的。它提供了基本的连接服务,还有一些防火墙穿透策略。