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常考面试题整理(六)的更多相关文章

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

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

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

    81.RMI中的远程接口(Remote Interface)扮演了什么样的角色? 参考答案: 远程接口用来标识哪些方法是可以被非本地虚拟机调用的接口.远程对象必须要直接或者是间接实现远程接口.实现了远 ...

  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常考面试题及汇总答案

    一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答:   1.String是字符串常量,StringBuffer和StringB ...

  8. Java常考面试题(二)

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

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

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

随机推荐

  1. web-CSS居中大全

    居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...

  2. HTML 5的革新之一:语义化标签一节元素标签。

    摘至于:<HTML 5的革新——语义化标签(一)> HTML 5的革新之一:语义化标签一节元素标签. 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义.(即 ...

  3. git ignore 如何忽略已经提交的文件修改

    git ignore git ignore的作用很简单,本地仓库忽略一些文件的修改. ignore的规格可以按文件匹配,按后缀匹配或者按文件夹匹配. 如果在项目开发过程中,需要忽略某一个文件已经提交的 ...

  4. CenOS7秘钥双向验证的配置

    配置密钥对的双向配置 HOST1配置: root下编辑/etc/ssh/sshd_config  RSAAuthentication  yes              //启用RSA算法 Pubke ...

  5. ntpd服务配置规则

    查看是否安装ntp服务 service ntpd status yum -y install ntpd* service ntpd startntpdate ntpd服务配置命令: crontab - ...

  6. Jenkins 入门系列--jenkins 介绍

    第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目. l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安 ...

  7. Mac OSX编译安装php5.6

    安装好OSX 10.13以后默认自带的php7.1.7,跟现有环境不兼容,所以准备编译安装php5.6,自带的php7不建议卸载,重新安装一份php5.6 1.安装php的一些依赖,推荐使用brew安 ...

  8. 初学者如何从零学习人工智能?(AI)

    一.机器学习 有关机器学习领域的最佳介绍,请观看Coursera的Andrew Ng机器学习课程. 它解释了基本概念,并让你很好地理解最重要的算法. 有关ML算法的简要概述,查看这个TutsPlus课 ...

  9. [易学易懂系列|rustlang语言|零基础|快速入门|(19)|多线程]

    [易学易懂系列|rustlang语言|零基础|快速入门|(19)|多线程] 实用知识 多线程 我们今天来讲讲Rust中的多线程. 我直接来看看代码: use std::thread; use std: ...

  10. 前端面试题-display:none和visibility:hidden的区别

    一.display:none和visibility:hidden的区别 1.1 空间占据 1.2 回流和渲染 1.3 株连性 二.空间占据 display:none 隐藏后的元素不占据任何空间,而 v ...