没有合适的资源?快使用搜索试试~ 我知道了~
java面试题集重要.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 56 浏览量
2022-07-14
06:17:36
上传
评论
收藏 250KB PDF 举报
温馨提示
试读
28页
java面试题集重要.pdf
资源推荐
资源详情
资源评论
2. 如果 2 个对象 ==,则他们一定 equals,hashCode一定相等吗 ?
class Test {
public static void main(String args[]) {
Test a = new Test();
Test b = a;
System.out.println(a == b); // true
System.out.println(a.equals(b)); // false
System.out.println(a.hashCode() == b.hashCode()); // false
}
public boolean equals(Object obj) {
return false;
}
private static int num = 0;
public int hashCode() {
super.hashCode();
return num++;
}
}
3. 下面的程序输出什么?
public class T {
public static void main(String[] args) {
certkiller("four");
certkiller("tee");
certkiller("to");
}
public static void certkiller(String str) {
int check = 4;
if (check = str.length()) {
System.out.print(str.charAt(check -= 1) + " ");
} else {
System.out.print(str.charAt(0) + " ");
}
}
}
5. 从字符串 ”ABCDEFGH” 里找出 ”DEF”来
String str1=str.substring(3,6);
8. 什么是模块的独立性?
模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。而内聚性是信
息隐蔽和局部化概念的自然扩展。
面向对象的设计方法与传统的的面向过程的方法有本质不同, 它的基本原理是, 使用现实世界的概念抽象地思考问题从而自
然地解决问题。 它强调模拟现实世界中的概念而不强调算法, 它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去
思考。
总体设计过程通常由两个主要阶段组成: 系统设计, 确定系统的具体实现方案; 结构设计, 确定软件结构。 为确定软件结构,
首先需要从实现角度把复杂的功能进一步分解。 分析员结合算法描述仔细分析数据流图中的每个处理, 如果一个处理的功能
过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。
***9. java.awt.event 包中定义的事件适配器类包括哪些?
Java 语言为一些 Listener 接口提供了适配器( Adapter )类。可以通过继承事件所对应的 Adapter 类,重写需要的方法,
无关方法不用实现。
java.awt.event 包中定义的事件适配器类包括以下几个:
1、ComponentAdapter ,构件适配器。
2、ContainerAdapter ,容器适配器。
3、FocusAdapter ,焦点适配器。
4、KeyAdapter ,键盘适配器。
5、MouseMotionAdapter ,鼠标运动适配器。
6、MouseAdapter ,鼠标适配器。
7、WindowAdapter ,窗口适配器。
10. Java 对"+" 进行了哪些扩展?
Java 对"+" 进行了扩展,不仅可以连接字符串,而且还能将字符串与其它类型数据进行连接,结果是字符串。
若"+" 的第一个操作数是字符串, Java 会自动将后面的操作数类型转换成字符串类型。
11. 什么是满二叉树?
所谓满二叉树是指:除最后一层外,每层上的所有结点都有两个子结点。满二叉树中,每一层上的结点数都达到最大值,即
在满二叉树的第 K 层上有 2^(K-1) 个结点,且深度为 m的满二叉树有 2^m-1 个结点。
在满二叉树中,最后一层的结点个数就是叶子结点的个数,比如深度为 5,故叶子结点数为 2^(5-1)=2^4=16 。
12. 调式的关键在于推断程序内部的错误位置及原因。其主要的调试方法有哪些?
调式的关键在于推断程序内部的错误位置及原因。
其主要的调试方法有: 强行排错法、回溯法和原因排除法。
1 强行排错法:是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用
较多、效率较低的调试方法。
2 回溯法:该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现 "症状 " 的位置。然后,从
发现 " 症状 " 的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。
3 原因排除法:是通过演绎和归纳,以及二分法来实现的。
数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。
13. 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为哪几种?
在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。
1 前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;
并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
2 中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并
且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
3 后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点 ,最后遍历左子树;并
且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。
14. 软件的需求分析阶段的工作有哪些?
软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。
1 需求获取的目的是确定对目标系统的各方面需求。 涉及到的主要任务是建立获取用户需求的方法框架, 并支持和监控需求
获取的过程。
2 需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
3 编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目
标软件系统的确认,又可以作为控制软件开发进程的依据。
4 需求评审是对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。
16 数据流图中的主要图形元素有
数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转
换)、数据流、存储文件(数据源)、源和潭。
17. 软件生命周期的主要活动阶段为?
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开
始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
(1)可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等
方面的可能方案,制定完成开发的实施计划。
(2)需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说
明书及初步的用户手册,提交评审。
(3)软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功
能的分配以及处理流程。
(4)软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面
向用户的文档,编写单元测试计划。
(5)软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
(6)运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩
充和删改。
18. 算法的空间复杂度是指什么?
算法的空间复杂度是指:算法执行过程中所需的存储空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初
始数据所占的存储空间以及算法执行过程中所需要的额外空间。
19. JSP 四种会话跟踪技术,会话作用域
page
代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有
include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面
request
代表与 Web 客户机发出的一个请求相关的对象和属性。 一个请求可能跨越多个页面, 涉及多个 Web 组件(由于 forward 指
令和 include 动作的关系)
session
代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求
application
代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全
局作用域
20. xml 有哪些解析技术 ?区别是什么 ?
有 DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由 DOM的树结构所造成的,这种结构占用的内存较多,而且 DOM必
须在解析文件之前把整个文档装入内存 , 适合对 XML的随机访问
SAX:不同于 DOM,SAX是事件驱动型的 XML解析方式。它顺序读取 XML文件,不需要一次全部装载整个文件。当遇到像文件开
头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理 XML文件,
适合对 XML的顺序访问
STAX:Streaming API for XML (StAX)
21. UTF-8 的介绍
使用 UTF-8 编码唯一的好处是:国外的用户如果使用 Windows XP 英文版,浏览 UTF-8 编码的任何网页,无论是中文、还
是日文、韩文、阿拉伯文,都可以正常显示, UTF-8是世界通用的语言编码。
UTF-8 的推广要归功于 Google 的应用,以及 Blog 开发者。而如果用 Windows XP英文版的 IE6.0 浏览 gb2312 语言编码的
网页,则会提示是否安装语言包。因此,可能会失去很多的国外浏览者。 使用 gb2312 编码的好处是,因为程序产生的网
页文本使用 ANSI 编码格式,会比 UTF-8 文本编码节省一些体积,访问速度会稍微快一点点,大约是 30:38 的比例,也就
是 30K 的 ANSI编码,转为 UTF-8 编码是 38K,当然,这个比例并不准确,是会随 Unicode 字符集区域的不同而变化的。
UTF-8(8 位元 Universal Character Set/Unicode Transformation Format )是针对 Unicode 的一种可变长度字符编码。
它可以用来表示 Unicode 标准中的任何字符,而且其编码中的第一个字节仍与 ASCII 相容,使得原来处理 ASCII 字符
的软件无需或只作少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他储存或传送文字的应用中,优
先采用的编码。 UTF-8 编码提供了一种简便而向后兼容的方法 , 使得那种完全围绕 ASCII 设计的操作系统 , 比如 Unix,
也可以使用 Unicode. UTF-8. UTF_8 字符集
21. 网络蜘蛛系统
网络蜘蛛即 Web Spider ,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么 Spider 就是在网上爬来爬去的蜘蛛。
网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的
其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
对于搜索引擎来说, 要抓取互联网上所有的网页几乎是不可能的, 从目前公布的数据来看, 容量最大的搜索引擎也不过是
抓取了整个网页数量的百分之四十左右。 这其中的原因一方面是抓取技术的瓶颈, 无法遍历所有的网页, 有许多网页无法
从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,
在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)。广度优先是指网络蜘蛛会先抓取起
始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,
因为这个方法可以让网络蜘蛛并行处理, 提高其抓取速度。 深度优先是指网络蜘蛛会从起始页开始, 一个链接一个链接跟
踪下去,处理完这条线路之后再转入下一个起始页, 继续跟踪链接。 这个方法有个优点是网络蜘蛛在设计的时候比较容易。
两种策略的区别,下图的说明会更加明确。
在网络蜘蛛机器人系统里面, 真正起指挥作用的是人工管理系统制定的规则和检索索引数据库。 它可以决定什么样的网站
抓的勤一点,或者干脆不抓 .
22. 关于 DOM 的描述
javascrip 里面的 dom(文档对象模型)它是一种模型,将格式化文档对象化处理。在 xml 和 html 的处理中广泛应用。
//dom 是定义超文本结构的对象及方法,分层次的,有容器类的对象,也有基本元素对象,而这些对象,都包含有相应的属
性和对应的操作方法(接口) 。
//一般而言, DOM 结构准确地反映了 HTML 文档所包含的内容, 也就是说, 每个 HTML 标记表现为一个标记节点 (tag node),
每个文本项内容表现为一个文本项节点( text node)。//是 W3C 组织推荐的处理可扩展置标语言的标准编程接口。
23. 如何理解 MVC
MVC是 Model-View-Controller 的简写。
"Model" 代表的是应用的业务逻辑 (通过 JavaBean,EJB组件实现),
"View" 是应用的表示面(由 JSP 页面产生),
"Controller" 是提供应用的处理过程控制(一般是一个 Servlet ),通过这种设计模型把应用逻辑,处理过程和显
示逻辑分成不同的组件实现。这些组件可以进行交互和重用
24. Struts1 框架的数据验证可分为几种类型 ?
表单验证(由 ActionForm Bean 处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误
业务逻辑验证(由 Action 处理):如果用户在表单中输入的姓名为“ Monster”,按照本应用的业务规则,不允许向
“Monster”打招呼,因此将生成业务逻辑错误。
25. 在 struts1 配置文件中 action 元素包含哪些属性和子元素?
path 属性:指定请求访问 Action 的路径
type 属性:指定 Action 的完整类名
name属性:指定需要传递给 Action 的 ActionForm Bean
scope 属性:指定 ActionForm Bean 的存放范围
validate 属性:指定是否执行表单验证
input 属性:指定当表单验证失败时的转发路径。
<action> 元素还包含一个 <forward> 子元素,它定义了一个请求转发路径。
26. Struts Forward 与 Global-Forward 的区别
Forward 是根据 Action return 的值找到对应的 JSP页。
当多个 Action 共同 return 同一个值时,可将这个 Forward 元素写在 Global-Forward 中
27. 叙述 Struts ActionForm 执行步骤
(1)检查 Action 的映射,确定 Action 中已经配置了对 ActionForm 的映射
(2)根据 name属性,查找 form bean 的配置信息
(3)检查 Action 的 formbean 的使用范围,确定在此范围下,是否已经有此 form bean 的实例。
(4)假如当前范围下,已经存在了此 form bean 的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
(5)否则,就重新构建一个 form bean 的实例
(6) form bean 的 reset() 方法备调用
(7)调用对应的 setter 方法,对状态属性赋值
(8)如果 validatede 的属性被设置为 true ,那么就调用 form bean 的 validate() 方法。
(9)如果 validate ()方法没有返回任何错误,控制器将 ActionForm 作为参数,传给 Action 实例的 execute ()方法
并执行
28. 简单叙述 Struts1 里 ActionForm Bean 的作用
1、ActionForm Bean 也是一种 JavaBean,除了具有一些 JavaBean 的常规方法,还包含一些特殊的方法,用于验证 HTML
表单数据以及将其属性重新设置为默认值。
2、Struts 框架利用 ActionForm Bean 来进行 View 组件和 Controller 组件之间表单数据的传递。
3、Struts 框架把 View 组件接受到的用户输入的表单数据保存在 ActionForm Bean 中,把它传递给 Controller 组件,
Controller 组件可以对 ActionForm Bean 中的数据进行修改, JSP文件使用 Struts 标签读取修改后的 ActionForm Bean
的信息,重新设置 HTML表单。
29. 简述 Struts Form Bean 的表单验证流程
1、当用户提交了 HTML表单, Struts 框架自动把表单数据组装到 ActionForm Bean 中。
2、接下来 Struts 框架会调用 ActionForm Bean 的 validate() 方法进行表单验证。
剩余27页未读,继续阅读
资源评论
xhr131452007
- 粉丝: 7
- 资源: 14万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 简单的Linux C代码,实现链表功能
- 汇编语言探索之旅:从基础到实践,解锁底层奥秘-markdown材料.zip
- Fortran语言:经典与现代交织的编程之旅-markdown材料.zip
- 基于python编写的appium自动化框架,采用PO模式,并集成了日志以及测试报告通过邮件发送的功能
- csdn.apk
- spleeter模型下载
- 微信小程序 - 图书管理系统源码.zip
- 微信小程序 - 图片自适应 ,富文本解析源码.zip
- 微信小程序 - 同乐居商城:购物车合算源码
- 1、根据输入的三条边值判断能组成何种三角形,并设计测试数据进行判定覆盖测试 三条边为变量a、b、c,范围为1≤边值≤10,不在范
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功