java常见的120道面试题第三季

问答题61 /120

说出三种支持重绘(painting)的组件。

参考答案

Canvas, Frame, Panel,Applet支持重绘。

 

问答题62 /120

什么是裁剪(clipping)?

参考答案

限制在一个给定的区域或者形状的绘图操作就做裁剪。

 

问答题63 /120

MenuItemCheckboxMenuItem的区别是什么?

参考答案

CheckboxMenuItem类继承自MenuItem类,支持菜单选项可以选中或者不选中。

问答题64 /120

边缘布局(BorderLayout)里面的元素是如何布局的?

参考答案

BorderLayout里面的元素是按照容器的东西南北中进行布局的。

问答题65 /120

网格包布局(GridBagLayout)里面的元素是如何布局的?

参考答案

GridBagLayout里面的元素是按照网格进行布局的。不同大小的元素可能会占据网格的多于1行或一列。因此,行数和列数可以有不同的大小。

问答题66 /120

WindowFrame有什么区别?

参考答案

Frame类继承了Window类,它定义了一个可以有菜单栏的主应用窗口。

问答题67 /120

裁剪(clipping)和重绘(repainting)有什么联系?

参考答案

当窗口被AWT重绘线程进行重绘的时候,它会把裁剪区域设置成需要重绘的窗口的区域。

问答题68 /120

事件监听器接口(event-listener interface)和事件适配器(event-adapter)有什么关系?

参考答案

事件监听器接口定义了对特定的事件,事件处理器必须要实现的方法。事件适配器给事件监听器接口提供了默认的实现。

问答题69 /120

GUI组件如何来处理它自己的事件?

参考答案

GUI组件可以处理它自己的事件,只要它实现相对应的事件监听器接口,并且把自己作为事件监听器。

问答题70 /120

Java的布局管理器比传统的窗口系统有哪些优势?

参考答案

Java使用布局管理器以一种一致的方式在所有的窗口平台上摆放组件。因为布局管理器不会和组件的绝对大小和位置相绑定,所以他们能够适应跨窗口系统的特定平台的不同。

问答题71 /120

JavaSwing组件使用了哪种设计模式?

参考答案

Java中的Swing组件使用了MVC(视图-模型-控制器)设计模式。

问答题72 /120

什么是JDBC

参考答案

JDBC是允许用户在不同数据库之间做选择的一个抽象层。JDBC允许开发者用JAVA写数据库应用程序,而不需要关心底层特定数据库的细节。

问答题73 /120

解释下驱动(Driver)JDBC中的角色。

参考答案

JDBC驱动提供了特定厂商对JDBC API接口类的实现,驱动必须要提供java.sql包下面这些类的实现:Connection, Statement, PreparedStatement,CallableStatement, ResultSetDriver

问答题74 /120

Class.forName()方法有什么作用?

参考答案

初始化参数指定的类,并且返回此类对应的Class 对象

问答题75 /120

PreparedStatementStatement有什么优势?

参考答案

PreparedStatements是预编译的,因此,性能会更好。同时,不同的查询参数值,PreparedStatement可以重用。

问答题76 /120

什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?

参考答案

CallableStatement用来执行存储过程。存储过程是由数据库存储和提供的。存储过程可以接受输入参数,也可以有返回结果。非常鼓励使用存储过程,因为它提供了安全性和模块化。准备一个CallableStatement的方法是:
CallableStament.prepareCall();

问答题77 /120

数据库连接池是什么意思?

参考答案

像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时候,会消耗大量的资源,成本是非常高的。可以在应用服务器启动的时候建立很多个数据库连接并维护在一个池中。连接请求由池中的连接提供。在连接使用完毕以后,把连接归还到池中,以用于满足将来更多的请求。

问答题78 /120

什么是RMI

参考答案

Java远程方法调用(Java RMI)Java API对远程过程调用(RPC)提供的面向对象的等价形式,支持直接传输序列化的Java对象和分布式垃圾回收。远程方法调用可以看做是激活远程正在运行的对象上的方法的步骤。RMI对调用者是位置透明的,因为调用者感觉方法是执行在本地运行的对象上的。看下RMI的一些注意事项。

问答题79 /120

RMI体系结构的基本原则是什么?

参考答案

RMI体系结构是基于一个非常重要的行为定义和行为实现相分离的原则。RMI允许定义行为的代码和实现行为的代码相分离,并且运行在不同的JVM上。

问答题80 /120

RMI体系结构分哪几层?

参考答案

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

问答题81 /120

RMI中的远程接口(Remote Interface)扮演了什么样的角色?

参考答案

远程接口用来标识哪些方法是可以被非本地虚拟机调用的接口。远程对象必须要直接或者是间接实现远程接口。实现了远程接口的类应该声明被实现的远程接口,给每一个远程对象定义构造函数,给所有远程接口的方法提供实现。

问答题82 /120

java.rmi.Naming类扮演了什么样的角色?

参考答案

java.rmi.Naming类用来存储和获取在远程对象注册表里面的远程对象的引用。Naming类的每一个方法接收一个URL格式的String对象作为它的参数。

问答题83 /120

RMI的绑定(Binding)是什么意思?

参考答案

绑定是为了查询找远程对象而给远程对象关联或者是注册以后会用到的名称的过程。远程对象可以使用Naming类的bind()或者rebind()方法跟名称相关联。

问答题84 /120

Naming类的bind()rebind()方法有什么区别?

参考答案

bind()方法负责把指定名称绑定给远程对象,rebind()方法负责把指定名称重新绑定到一个新的远程对象。如果那个名称已经绑定过了,先前的绑定会被替换掉。

问答题85 /120

RMI程序能正确运行有哪些步骤?

参考答案

为了让RMI程序能正确运行必须要包含以下几个步骤:
编译所有的源文件。
使用rmic生成stub
启动rmiregistry
启动RMI服务器。
运行客户端程序。

问答题86 /120

RMIstub扮演了什么样的角色?

参考答案

远程对象的stub扮演了远程对象的代表或者代理的角色。调用者在本地stub上调用方法,它负责在远程对象上执行方法。当stub的方法被调用的时候,会经历以下几个步骤:
初始化到包含了远程对象的JVM的连接。
序列化参数到远程的JVM
等待方法调用和执行的结果。
反序列化返回的值或者是方法没有执行成功情况下的异常。
把值返回给调用者。

问答题87 /120

什么是分布式垃圾回收(DGC)?它是如何工作的?

参考答案

DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。

问答题88 /120

RMI中使用RMI安全管理器(RMISecurityManager)的目的是什么?

参考答案

RMISecurityManager使用下载好的代码提供可被RMI应用程序使用的安全管理器。如果没有设置安全管理器,RMI的类加载器就不会从远程下载任何的类。

问答题89 /120

解释下Marshallingdemarshalling

参考答案

当应用程序希望把内存对象跨网络传递到另一台主机或者是持久化到存储的时候,就必须要把对象在内存里面的表示转化成合适的格式。这个过程就叫做Marshalling,反之就是demarshalling

问答题90 /120

解释下SerializationDeserialization

参考答案

Java提供了一种叫做对象序列化的机制,他把对象表示成一连串的字节,里面包含了对象的数据,对象的类型信息,对象内部的数据的类型信息等等。因此,序列化可以看成是为了把对象存储在磁盘上或者是从磁盘上读出来并重建对象而把对象扁平化的一种方式。反序列化是把对象从扁平状态转化成活动对象的相反的步骤。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值