Java常考面试题整理(六)
101.HTTP相应的结构是怎么样的?
参考答案:
HTTP相应由三个部分组成:
1.状态码(status code):描述了相应的状态,可以用来检查是否成功的完成了请求.请求失败的情况下,状态码可以用来找出失败的原因.如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK.
2.HTTP头部(HTTP Header):它们包含了更多关于响应的信息.比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输实体内容的编码格式.
3.主题(Body):它包含了相应的内容.他可以包含HTML代码,图片.等等.主题是由传输在HTTP消息中紧跟在头部后面的数据字节组成的.
102.什么是cookie?session和cookie有什么区别?
参考答案:
cookie是web服务器发送给浏览器的一块信息.浏览器会在本地文件中给每一个web服务器存储cookie.以后浏览器在给特定的web服务器发请求的时候,同时会发送所有为该服务器存储你cookie,下面列出session和cookie的区别:
无论客户端浏览器做怎么样的设置,session都应该能正常工作.客户端可以选择禁用cookie,但是,session仍然是能够工作的,因为客户端无法替用服务端的session.
在存储的数据量方面session和cookies也是不一样的,session能够存储任意的java对象,cookie只能存储String类型的对象.
103.浏览器和Servlet通信使用的是什么协议?
参考答案:
浏览器和Servlet通信使用的是HTTP协议.
104.什么事HTTP隧道?
参考答案:
HTTP隧道是一种利用HTTP或者是HTTPS把多种网络协议封装起来进行通信的技术.因此,HTTP协议扮演了一个打通用于通信的网络协议的管道的包装器角色.把其他协议的请求掩盖称HTTP的请求是HTTP隧道.
105.sendRedirect()和forward()方法有什么区别?
参考答案:
sendRedirect()方法会创建一个新的请求,而forward()方法只是把请求转发到一个新的目标上.重定向(redirect)以后,之前请求作用域范围以内的对象就失效了,因为会产生一个新的请求,而转发(forwardding)以后,之前请求作用域范围以内的独享还是能访问的.一般认为sendRedirect()比forwar()要慢.
106.什么事URL编码和URL解码?
参考答案:
URL编码是负责把URL里面的空格和其他的特殊字符替换成对应的十六进制表示,反之就是解码.
107.什么事JSP页面?
参考答案:
JSP页面是一种包含了静态数据和JSP元素两种类型文本的文本文档.静态数据可以用任何基于文本的格式来表示,比如:HTML或者XML.JSP是一种混合了静态内容和动态产生的内容的技术.
108.JSP请求是如何被处理?
参考答案:
浏览器首先要请求一个以JSP扩展名即为的页面,发起JSP请求,然后,Web服务器读取这个请求,使用JSP编译器把JSP转化成一个Servlet类.需要注意的是,只有当第一次请求页面或者是JSP文件发生改变的时候JSP文件才会被编译,然而服务器调用servlet类,处理浏览器的请求,一旦请求执行结束,Servlet会把相应发送给客户端.
109.JSP有什么优点?
参考答案:
下面列出了使用JSP的有点:
JSP页面是被动态编译成Servlet的,因此,开发者可以很容易的更新展现代码.
JSP页面可以被预编译.
JSP页面可以很容易的和静态模块结合,包括:HTML或者XML.也可以很容易的和产生动态内容的代码结合结合起来.
开发者可以提供让页面设计者以类XML格式来访问的自定义的JSP标签库.
开发者可以在组件层做逻辑上的改变,而不需要编辑单独使用了应用逻辑的页面.
110.什么是JSP指令(Directive)?JSP中有哪些不同类型的指令?
参考答案:
Driective是当JSP页面被编译成Servlet的时候,JSP引擎要处理的指令.Directive用来设置页面级别的指令.从外部文件插入数据,指定自定义的标签库.Directive是定义在<%@和%>之间的.下面列出了不同类型的Directive:
包含指令(include Directive):用来包含文件和合并文件内容到当前的页面.
页面指令(page directive):用来定义JSP页面的特定属性,比如错误页面和缓冲区.
Taglib指令:用来声明页面中使用的自定义标签库.
111.什么是JSP动作(JSP action)?
参考答案:
JSP动作以XML语法的结构来控制Servlet引擎的行为.当JSP页面被请求的时候,JSP动作会被执行.它们可以被动态的插入到文件中.重用JavaBean组件,转发用户到其他的页面,或者是给Java插件差生HTML代码,下面列出了可用的动作:
jsp;include-当JSP页面被请求的时候包含一个文件
jsp:useBean-找出或者是初始化JavaBean.
jsp:setProperty-设置javaBean属性.
jsp:getProperty-获取JavaBean属性.
jsp:forward-把请求转发到新的页面
jsp:plugin-产生特定浏览器代码.
112.什么事Scriptlets?
参考答案:
JSP技术中,scriptlet是嵌入在JSP页面种的一段Java代码.scriptlet是位于标签内部的所有的东西,在标签与标签之间,用户可以添加任意有效的scriptlet.
113.声明(Decalaration)在哪里?
参考答案:
声明跟Java中的变量声明很相似,它用来声明随后要被表达式或者scriptlet使用的变量.添加的声明必须要用开始和结束标签包起来.
114.什么是表达式(Expression)?
参考答案:
JSP表达式是web服务器把脚本语言表达式的值转化成一个String对象,插入到返回给客户端的数据中,表达式是在<%=和%>这两个标签之间定义的.
115.隐含对象是什么意思?有哪些隐含对象?
参考答案:
JSP隐含对象是页面的一些Java对象,JSP容器让这些Java对象可以为开发者所使用.开发者不用明确的声明就可以直接使用他们,JSP隐含对象也叫做预定义变量,下面列出了JSP页面中隐含对象:
application,page,request,response,session,exception.out,config,pageContext
116.面向对象软件开发的优点有哪些?
参考答案:
代码开发模块化,更易维护和修改.
代码复用.
增强代码的可靠性和灵活性.
增加代码的可理解性.
面向对象编程有很多重要的特性,比如;继承封装多态和抽象.
117.封装的定义和好处有哪些?
参考答案:
封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在Java当中,有3种修饰符:public,private和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。
下面列出了使用封装的一些好处:
通过隐藏对象的属性来保护对象内部的状态。
提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
禁止对象之间的不良交互提高模块化。
一是用private把类的细节与外界隔离起来,从而实现数据项和方法的隐藏,而要访问这些数据项和方法唯一的途径就是通过类本身,类才有资格调用它所拥有的资源(方法,数据项属性等等)。所以第一个好处就是数据的安全性提高了。
二是通过隐藏隔离,只允许外部对类做有限的访问,开发者可以自由的改变类的内部实现,而无需修改使用该类的那些程序。只要那些在类外部就能被调用的方法保持其外部特征不变,内部代码就可以自由改变,各取所需,利于分工。
118.多态的定义?
参考答案:
多态是编程语言给不同的底层数据类型做相同接口展示的一种能力,一个多态类型上的操作可以应用到其它类型的值上面.
119.继承的定义?
参考答案:
继承给对象提供了从基类获取字段和方法的能力.继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加特性.
120.抽象的定义?抽象和封装的不同点?
参考答案:
抽象把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类.Java支持创建只暴漏接口而不包含方法实现的抽象的类.这种抽象技术的主要目的是把类的行为和实现细节分离开.
抽象和封装是互补的概念.一方面,抽象关注对象的行为,另一方面,封装关注对象行为的细节.一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略.
Java常考面试题整理(六)的更多相关文章
- Java常考面试题整理(四)
有关所有Swing相关的面试题,都可以说是凑数的,感觉自己在敲这些的时候感觉一点用处都没有,可以从第72条开始看. 61.说出三种支持重绘(painting)的组件. 参考答案: Canvas,Fra ...
- Java常考面试题整理(五)
81.RMI中的远程接口(Remote Interface)扮演了什么样的角色? 参考答案: 远程接口用来标识哪些方法是可以被非本地虚拟机调用的接口.远程对象必须要直接或者是间接实现远程接口.实现了远 ...
- 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常考面试题及汇总答案
一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答: 1.String是字符串常量,StringBuffer和StringB ...
- Java常考面试题(二)
序言 昨天刚开始的”每日5题面试“这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看做过的面试题,试着用 ...
- Java常考面试题(二)(转)
序言 昨天刚开始的"每日5题面试"这类文章,感觉还不错,把一些平常看似懂了的东西,弄清楚了.就像什么是虚拟机?这个问题,看起来知道,但是要说出个所以然来,又懵逼了,经常回过头来看看 ...
随机推荐
- etcd集群安装
etcd 是一个分布式一致性k-v存储系统,可用于服务注册发现与共享配置,具有以下优点:1.简单:相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的raft算法实现一致性,并通过gRPC提 ...
- 加快ALTER TABLE 操作速度
mysql的alter table操作的性能对于大表来说是个大问题.mysql大部分修改表结构操作的方法都是用新的结构创建一个 新表,从旧表中查出数据插入新表,然后在删除旧表.这样的操作很耗费时间,而 ...
- 导出excel-文件流
后台代码(控制器或者dao层) public void Excel(){ //第一步:(1)以虚拟表的形式获取导出数据 DataTable dt_0 = this.service.Excel(); / ...
- Maven将java打包成jar并且运行笔记
Maven项目打包成jar并且运行笔记 首先创建一个maven项目 运行成功后,有两种方式将项目进行打包. 第一种方式: 在IDEA编辑器中maven项目进行打包: 这里显示jar包中没有主清单属性, ...
- react 不同环境配置不同域名
npm eject 先将配置文件暴露出来 将scripts中的build文件复制一份,改名为你需要的名字 将其中的 process.env.NODE_ENV 赋值为你需要的环境 在package.js ...
- 为了保护dll这么做吗?
生成dll时候 附带生成的lib文件
- Spring相关概念
DIP: Dependency Inversion Principle.翻译过来是依赖反转原则,也叫依赖倒置原则. 依赖倒置原则是设计模式几个重要原则之一.具体定义就是,底层模块依赖高层模块定义的接口 ...
- Gym - 101908H Police Hypothesis (树链剖分/LCT+字符串哈希)
题意:有一棵树,树上每个结点上有一个字母,有两种操作: 1)询问树上两点u,v间有向路径上有多少个字母和某个固定的字符串相匹配 2)将结点u的字母修改为x 树剖+线段,暴力维护前缀和后缀哈希值(正反都 ...
- 【CF1181D】Irrigation
题目大意:给定 M 个城市,每年会选出一个城市举办比赛,现给出前 N 年城市举办比赛的情况.在接下来的年份中,每年会在举办比赛次数最小的城市举办比赛,如果有很多城市举办次数均为最小值,则在编号最小的城 ...
- 基于角色权限管理:rbac具体代码实现
权限管理 创建一个rbac和app的应用,这个rbac主要是用来存放权限的,全称叫做基于角色权限控制 一.先看配置文件合适不,给创建的rbac在配置文件里面设置一下 找到INSTALLED_APPS= ...