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. Java集合框架中的元素

    之前有一篇笔记,讲的是集合和泛型,这几天看Java集合中几个接口的文档,思绪非常混乱,直到看到Oracle的“The Collections Framwork”的页面,条理才清晰些,现在进行整理. 一 ...

  2. 十大经典排序算法(Python,Java实现)

    参照:https://www.cnblogs.com/wuxinyan/p/8615127.html https://www.cnblogs.com/onepixel/articles/7674659 ...

  3. 命名空间System.IO

    基本介绍:System.IO 命名空间提供读写文件和数据流的类型.基本文件和目录支持的类型. 原文:http://blog.sina.com.cn/s/blog_48a45b950100erhz.ht ...

  4. 解决mac下brew install报错

    Error: Another active Homebrew update process is already in progress.Please wait for it to finish or ...

  5. Git复习(一)之简介、安装、集中式和分布式

    简介 Git是分布式版本控制系统,使用C语言开发的,CVS.SVN是集中式的版本控制系统,集中式的版本控制系统不但速度慢,而且必须联网才能使用. Git是分布式版本控制系统,同一个Git仓库,可以 分 ...

  6. js之运算符(逻辑运算符)

    逻辑运算符通常用于布尔型(逻辑)值.这种情况下,它们返回一个布尔值.它经常和关系运算符一起配合使用.“&&” .“!”和“ ||” 运算符会返回一个指定操作数的值,因此,这些运算符也用 ...

  7. python爬去虎扑数据信息,完成可视化

    首先分析虎扑页面数据 如图我们所有需要的数据都在其中![image.png](1)所以我们获取需要的内容直接利用beaitifulsoupui4``` soup.find_all('a',class_ ...

  8. java并发编程:锁的相关概念介绍

    理解同步,最好先把java中锁相关的概念弄清楚,有助于我们更好的去理解.学习同步.java语言中与锁有关的几个概念主要是:可重入锁.读写锁.可中断锁.公平锁 一.可重入锁 synchronized和R ...

  9. 点击切换JS

    $(function(){ var tabnav = $("#tab-nav ul li"); tabnav.click(function(){ $(this).addClass( ...

  10. Hive分区表创建、分类

    一.分区表创建与说明 必须在表定义时创建partition a.单分区建表语句:create table day_table (id int, content string) partitioned ...