Java常考面试题整理(五)
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常考面试题整理(五)的更多相关文章
- Java常考面试题整理(四)
有关所有Swing相关的面试题,都可以说是凑数的,感觉自己在敲这些的时候感觉一点用处都没有,可以从第72条开始看. 61.说出三种支持重绘(painting)的组件. 参考答案: Canvas,Fra ...
- Java常考面试题整理(六)
101.HTTP相应的结构是怎么样的? 参考答案: HTTP相应由三个部分组成: 1.状态码(status code):描述了相应的状态,可以用来检查是否成功的完成了请求.请求失败的情况下,状态码可以 ...
- Java常考面试题整理(三)
明天又要去面试,Good luck to me.,让我在这段时间换个新的工作吧. 41.在Java中,对象什么时候可以被垃圾回收? 参考答案: 当对象对当前使用这个对象的应用程序变得不可触及的时候,这 ...
- Java常考面试题整理(二)
21.Iterator和ListIterator的区别是什么? 参考答案: 下面列出了他们的区别: Iterator可以用来遍历Set和List集合,但是ListIterator只能用来遍历List. ...
- Java常考面试题整理(一)
1.什么是java虚拟机?为什么java被称作是"平台无关的编程语言". 参考答案: java虚拟级是一个可以执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟 ...
- Java常考面试题
Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...
- Java常考面试题(五)
序言 好好努力. ---WH 一.Iterator和ListIterator的区别是什么? 自我解答: Iterator是针对所有collection来使用的,而看名字ListIterator,顾名思 ...
- Java常考面试题(二)
序言 昨天刚开始的”每日5题面试“这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看做过的面试题,试着用 ...
- Java常考面试题(二)(转)
序言 昨天刚开始的"每日5题面试"这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看 ...
随机推荐
- 一份非常完整、详细的MySQL规范
一.数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名 ...
- IDEA + SpringBoot + maven 项目文件说明
Springboot + maven + IDEA + git 项目文件介绍 1..gitignore 分布式版本控制系统git的配置文件,意思为忽略提交 在 .gitingore 文件中,遵循相应 ...
- javaee 自定义标签实战
用过javaee标准标签库的里的标签应该都知道,标签的存在使得页面上的jsp脚本大大减少,甚至说没有了,大大提高了工作效率,使得页面的整洁性也有了很大的提高.下面我们就 模仿核心标签库中choose标 ...
- centos 7 Network 脚本
#!/bin/sh #主动启动网卡 interface=$() ifup $interface #获取当前网络信息 default_route=$(ip route show) default_int ...
- Jenkins+GitHub 项目环境搭建和发布脚本(二)
Jenkins+gitHub项目搭建配置 项目发布脚本 profilesScript.sh (支持不同环境配置文件) #!/bin/bash ACTIVE=$ JENKINS_PATH=/var/li ...
- ntpd服务配置规则
查看是否安装ntp服务 service ntpd status yum -y install ntpd* service ntpd startntpdate ntpd服务配置命令: crontab - ...
- 05-spring框架—— Spring 事务
5.1 Spring 的事务管理 事务原本是数据库中的概念,在 Dao 层.但一般情况下,需要将事务提升到业务层,即 Service 层.这样做是为了能够使用事务的特性来管理具体的业务. 在 Spri ...
- Codeforces Round #581 (Div. 2)A BowWow and the Timetable (思维)
A. BowWow and the Timetable time limit per test1 second memory limit per test256 megabytes inputstan ...
- 【奇淫技巧】Lyndon 分治
目前只见过一道题需要用这玩意,故只放个学习链接 https://blog.csdn.net/hzk_cpp/article/details/86102813
- libcyusb
https://github.com/hmaarrfk/libcyusb/blob/master/include/cyusb.h