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

参考答案:

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

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

参考答案:

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

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

参考答案:

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

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

参考答案:

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

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

参考答案:

为了让RMI程序能正确运行必须要包含以下几个步骤:

编译所有源文件.

使用rmic生成stub文件.

启动rmiregistry.

启动RMI服务器.

运行后客户端程序.

86.RMI的stub扮演了什么样的角色?

参考答案:

远程对象的stub扮演了远程对象的代表或者代理的角色.调用者在本地stub上调用方法,它负责在远程对象上执行方法,当stub的方法被调用的时候,会经历以下几个步骤:

初始化到包含了远程对象的JVM的连接.

序列化参数到远程的JVM.

等待方法调用和执行的结果.

反序列化返回的值或者是方法没有执行成功情况下的异常.

吧值返回给调用者.

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

参考答案:

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

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

参考答案:

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

89.解释下Marshaaling和demarshaling.

参考答案:

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

90.解释下Serialization和Deserialization.

参考答案:

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

91.什么事Servlet?

参考答案:

`    Servlet是用来处理客户端请求并产生动态网页内容的Java类.Servlet主要是用来处理或者是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息.

92.说一下Servlet的体系结构.

参考答案:

所有的Servlet都必须要实现的核心接口时javax,servlet.Servlet.每一个Servlet都必须要直接或者是间接的实现这个接口,或者是继承javax.servlet.GenericServlet或者是javax.servlet.HTTPServlet.最后,Servlet使用多线程可以并行的多个请求服务.

93.Applet和Servlet有什么区别?

参考答案:

`    Applet是运行在客户端主机的浏览器上的客户端Java程序.而Servlet是运行在Web服务器上的服务端的组件.applet可以使用用户界面类,而Servlet没有用户界面,想法,Servlet是等待客户端的HTTP请求,然后为请求产生响应.

94.GenericServlet和HttpServlet有什么区别?

参考答案:

GenericServlet类实现了Servlet和ServletConfig接口.实现了除了service()之外的其他方法,在创建Servlet对象时,可以继承GenericServlet类来简化程序代码,但需要实现service()方法.

HttpServlet类继承了GenericServlet类,为实际开发中大多数Servlet处理HTTP请求的应用灵活的方法.

95.解释下Servlet的生命周期.

参考答案:

`对每一个客户端的请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet初始化,然后,Servlet对象通过每一个请求单独调用service()方法来处理所有随后来自客户端的请求,最后,调用Servlet的destory()方法把Servlet删除掉.

96.doGet()方法和doPost()方法有什么区别?

参考答案:

doGet:GET方法会吧名称对追加在请求URL后面.因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目.并且请求中的参数值是可见,因此,敏感信息不能用这种方式传递.

`    doPost:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送参数的数目是没有限制的.最后,通过POST请求传递的敏感信息对外部客户端是不可见的.

97.什么是Web应用程序?

参考答案:

Web应用程序是对web或者是应用服务器的动态扩展,有两种类型的Web应用:面向表现的和面向服务的.面向表现的WEB应用程序会产生包含了很多中标记语言和动态内容的交互的web页面作为对请求的响应.而面向服务的web应用实现了web服务的短点.一般来说,一个web应用可以看成是一组安装在服务端URL名称空间的特定子集下面的Servlet的集合.

98.什么是服务端包含(Server Side Include)?

参考答案:

服务端包含(SSI)是一种简单的解释型服务端脚本语言,大多数时候仅用在web上,用servlet标签嵌入进来.SSI最常用的情景把一个或者多个文件包含到web服务器的一个web页面中.当浏览器访问web页面的时候,web服务器会用对应的Servlet产生的文本来替换web页面中的servlet.

99.什么是Servlet链(Servlet Chainning)?

参考答案:

`    Servlet链是把一个Servlet的输出发送给另一个Servlet的方法,第二个Servlet的输出可以发送给第三个Servlet,以此类推.链条上最后一个Servlet负责把响应发送给客户端.

100.如何知道是那一个客户端的机器正在请求你的Servlet?

参考答案:

ServletRequest类可以找出客户端机器的IP地址或者是主机名.getRemoteAddr()方法获取客户端主机的IP地址,getRemoteHost()可以获取主机名.

Java常考面试题整理(五)的更多相关文章

  1. Java常考面试题整理(四)

    有关所有Swing相关的面试题,都可以说是凑数的,感觉自己在敲这些的时候感觉一点用处都没有,可以从第72条开始看. 61.说出三种支持重绘(painting)的组件. 参考答案: Canvas,Fra ...

  2. Java常考面试题整理(六)

    101.HTTP相应的结构是怎么样的? 参考答案: HTTP相应由三个部分组成: 1.状态码(status code):描述了相应的状态,可以用来检查是否成功的完成了请求.请求失败的情况下,状态码可以 ...

  3. Java常考面试题整理(三)

    明天又要去面试,Good luck to me.,让我在这段时间换个新的工作吧. 41.在Java中,对象什么时候可以被垃圾回收? 参考答案: 当对象对当前使用这个对象的应用程序变得不可触及的时候,这 ...

  4. Java常考面试题整理(二)

    21.Iterator和ListIterator的区别是什么? 参考答案: 下面列出了他们的区别: Iterator可以用来遍历Set和List集合,但是ListIterator只能用来遍历List. ...

  5. Java常考面试题整理(一)

    1.什么是java虚拟机?为什么java被称作是"平台无关的编程语言". 参考答案: java虚拟级是一个可以执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟 ...

  6. Java常考面试题

    Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...

  7. Java常考面试题(五)

    序言 好好努力. ---WH 一.Iterator和ListIterator的区别是什么? 自我解答: Iterator是针对所有collection来使用的,而看名字ListIterator,顾名思 ...

  8. Java常考面试题(二)

    序言 昨天刚开始的”每日5题面试“这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看做过的面试题,试着用 ...

  9. Java常考面试题(二)(转)

    序言 昨天刚开始的"每日5题面试"这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看 ...

随机推荐

  1. [转载]汇编语言assume伪指令的作用

    原文:https://blog.csdn.net/u010234808/article/details/38366943 摘出关键部分: 编写程序,是写给编译软件的.由编译软件,编译成机器码,再去控制 ...

  2. 为什么wamp 放两个网站 或者多个网站就很卡很慢,问题在这里

    PHP的配置比较简单,只需要进行一些基本设置的修改就可以了,依次点击—PHP—php.ini,找到这三个地方:short_open_tag = Off(是否允许使用 PHP 代码开始标志的缩写形式(& ...

  3. css 规范标签

    页头:header 登录条:loginBar 标志:logo 侧栏:sideBar 广告:banner 导航:nav 子导航:subNav 菜单:menu 子菜单:subMenu 搜索:search ...

  4. 反selenium关键字

    webdriver __driver_evaluate __webdriver_evaluate __selenium_evaluate __fxdriver_evaluate __driver_un ...

  5. CISCO运维记录之4507设备升级IOS(Version 03.03.02.SG版本存在bug)

    CISCO运维记录之3650堆叠设备升级IOS(Version 03.03.02.SG版本存在bug) 1. 问题详情 思科45系列交换机使用Catalyst 4500 L3 Switch Softw ...

  6. 小程序UI设计(6)-布局分解-九宫格

    今天我们来个庖丁解牛.对于一个完整的组合组件,看看通过工具是如何轻松完成的.首先看看九宫格完整的样子. 结构树是这样的.在结构树中,我们可以看到WViewColumn下面有九个WViewRow.WVi ...

  7. idea集成Jrebel热部署Jrebel 永久免费激活

    安装好idea和Jrebel后,按图示方法打开激活页面 选择License server方式 Url:输入 http://139.199.89.239:1008/88414687-3b91-4286- ...

  8. 屏蔽iOS升级方法

    1.iPhone或者iPad使用safari浏览器打开http://d.updater.i4.cn/i4tools7/temp/tvos.mobileconfig 2.点击[允许] 3.进入[通用]- ...

  9. redis 和 memache 缓存的区别

    总结一: 1.数据类型 Redis数据类型丰富,支持set list等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支持数据落地持久化存储 memcache ...

  10. 执行dlsym()函数出现: undefined symbol

    执行dlsym()函数出现: undefined symbol 执行dlsym()函数出现: undefined symbol 当这个问题出现的时候,可以检查产生so文件的cpp文件,看看是否已经用  ...