测验笔试常见题.docx
- 文档编号:27505659
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:14
- 大小:25.82KB
测验笔试常见题.docx
《测验笔试常见题.docx》由会员分享,可在线阅读,更多相关《测验笔试常见题.docx(14页珍藏版)》请在冰豆网上搜索。
测验笔试常见题
第一部分:
填空题(每空2分,共20分)
1、执行代码int[]x=newint[10]后,x[9]的值是__0__
数组默认值是0
2、经过以下语句Stringmyflag=(20*5>=100)?
"A":
"B";后,字符串myflag的值是A_
3、在数据库中外键是指__表表之间的关联
4、Java中引入泛型的主要目的是加强类型安全___________。
5、面向对象编程的三个基本概念是封装、继承、多态,其中多态是指相同消息产生不同的响应。
6、数据库中需要建立主键的目的是_实现实体完整性。
7、在Java语言中,Integer和int的主要区别是引用类型,基本类型实现对数据的拆箱与封箱。
8、在web.xml中,有如下代码:
以上配置代码段的作用是___指session的连接时间为30分钟
9、在JSP程序中,页面404错误是指_500,405,200_
404指找不到资源;500异常;405在servlet中常见列入使用post时servlet中只有get方法;200指请求状态成功;
10、AOP的全称是____面向切面的编程是基于代理___
11、在数据库中触发器的作用是__当促发事件发生时促发触发器,并运行,是命名层序的一种_。
12、“高内聚、低耦合”指的是_组件内部严谨组件组件之间的联系尽松散
13、Form表单的method属性定义表单的提交方法,有__post_和get两种。
请求的后面大小2KBpost封装大小无限制
14、单元格垂直合并所用的属性是______rowspan_______,单元格横向合并所用的属性是__colspan_____。
15、经过以下语句Stringmyflag=(20*5>100)?
"A":
"B";后,字符串myflag的值是______
&&与&前者是逻辑与运算符采用短路法
16、在Javascript中,表示“与”、“或”、“非”的逻辑运算符分别为___&&___、__||_____、___!
__
17、在安装JDK后,用户需对JDK设置三个系统变量分别是JAVA_HOME__path____、__classpath______
18、JSP规范规定了四种变量的作用域范围,分别是page、application、__session______、__request______
19、在SQL语言中,运算符like可以实现模糊匹配,其匹配符有%和____下划线___两种。
20、Java中GC指垃圾回收
21、Hibernate中PO是指___持久化对象。
22、JSP的隐含对象request、session、application,我们可以使用setAttribute()方法往这些对象中添加属性,而用___getAttriibute()_方法从这些对象中获得属性。
23、Hibernate对象有三种状态,分别是transient(瞬态或者自由态)、persistent(持久化状态)、_托管状态__。
24、Spring中的“依赖注入”指的是___实现对依赖对象的初始化
25、四层J2EE体系结构模型分为表示层、业务逻辑层、持久层、数据层。
26、Java语言具有许多优点和特点,其中多线性反映了Java程序并行机制的特点:
27、Java中通过return,breake跳出多重循环嵌套
第二部分:
简答题(每题5分,8题共40分)
1、请描述数据库的第三范式?
1)第一范式:
表中的列是唯一的不可再分的。
2)第二范式:
在第一范式的基础之上,存在非主属性对主属性的函数依赖,通俗说表中要有主键
3)第三范式:
在第二范式的基础之上不存在对非主属性的函数传递依赖。
通俗说表中要有外键。
2、请简述SpringIOC的设计思想和实现方式。
组件内部实现高内聚;组件之间实现低耦合;
DI依赖注入,SET注入或构造器注入
3、简述几种Java语言访问限制修饰符的作用范围。
public:
Java语言中访问限制最宽的修饰符,一般称之为“公共的”。
被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
private:
Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。
被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect:
介于public和private之间的一种访问修饰符,一般称之为“保护形”。
被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default:
即不加任何访问修饰符,通常称为“默认访问模式“。
该模式下,只允许在同一个包中进行访问。
4、什么是数据库中的事务?
数据库的事务处理必须满足ACID原则,ACID分别是指什么?
事务也称为一个工作单元,是一个或者一组SQL语句组成的序列,这些操作是一个完整的工作单元要么都执行,要么都不执行,引入事务管理主要是避免出现数据的不一致性
1)原子性(Atomicity):
每个事务要么都成功要么都失败.
(2)一致性(Consistency):
一旦一个事务完成,整个系统都处于一个统一的状态
(3)隔离性(Isolation):
事务之间彼此独立,互不干扰
(4)持久性(Durability):
一旦事务提交对于数据库中的改变是永久的。
5、请阐述抽象类和接口的区别。
(3)接口与抽象类的区别:
1)抽象类定义继承同一个类的子类(相关类)的共同行为,接口定义了不相关类的共同行为。
2)抽象类中允许定义抽象方法非抽象方法,静态成员变量和非静态成员变量,或者常量,接口只允许定义public抽象方法和public静态常量。
3)抽象类不允许多继承,而接口允许多继承
6、在JDBC编程时为什么要养成释放连接的习惯?
链接是宝贵的资源,提高数据库的响应的速度与效率;
7、什么是数据库索引?
优点缺点是什么?
是一种数据库对象,索引中保存数据,类似图书的目录,目的是加快数据查询速度。
当表中有主键时默认以主键列创建索引。
索引一旦创建无须维护,都由数据库管理系统完成
大数据量查询时提高性能;数据量小时耗内存;
8、Connection、PreparedStatement、Statement、ResultSet是JDBC编程常用的接口,请分别简述它们的作用?
Connection连接对象,数据库的链接与关闭,并串接SQl容器设置实物的提交方式;
PrepareedStatement动态SQl语句支持使用占位符;
Statement静态发送SQL语句;
ResultSet保存结果查询语句,通过,it.next遍历结果集
9、Hibernate号称是数据库无关的,那么已有系统从MySQL数据库迁移到Oracle,会出错吗?
需要做哪些修改?
修改url;
修改方言;
主键生测过策略可能要修改
10、Java中的List和Map有什么区别?
List,Set,Map是否继承自Collection接口?
一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的;
List,Set继承自Collection,Map继承自Map接口
11、ArrayList和Vector的区别
这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本来题目问的与hashset没有任何关系,但为了说清楚ArrayList与Vector的功能,我们使用对比方式,更有利于说明问题)。
ArrayList与Vector的区别,这主要包括两个方面:
.
1)同步性:
Vector是线程安全的,即线程同步,而ArrayList非线性安全,方法之间不同步;最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。
2)数据增长:
ArrayList与Vector都有一个初始的容量大小,当存储进它们里面的元素的个数超过了容量时,就需要增加ArrayList与Vector的存储空间。
Vector增长原来的一倍,ArrayList增加原来的0.5倍
12、为什么要使用MVC框架?
为什么要使用ORM框架?
MVC使得系统开发结构结构清晰,结构分层,M为模型层对数据库底层数据进行操作,V视图层,是对数据模型层状态的显示,C为控制层,是连接模型层与显示层的中间桥梁;而ORM,为对象依赖注入,该框架使得对象操作更加方便,
13、Hiberate缓存:
(1)session缓存(一级缓存):
当想使用session从数据库中查询出一个对象时,Session也是先从自己内部查看是否存在这个对象,存在则直接返回,不存在才去访问数据库,并将查询的结果保存在自己内部,由于Session代表一次会话过程,并且不是线程安全的,当被多个线程共享时容易出现问题,通常具全局应用的缓存才具有缓存价值,而二级缓存SessionFactory主要为hibernate配置全局缓存,多个线程和多个事务都可以共享这个缓存。
(2)sessionFactory缓存(二级缓存)
14、Hibernate的对象的三种状态:
(1)瞬时状态:
通过new调用构造方法获得的对象;出于持久化状态的对象被delete;瞬时对象被save、update、saveOrUpdate()、get()、load()
(2)持久化状态:
具有持久化标识,纳入session管理clear()、close()、evict()等
(3)脱管状态:
具有持久化标识,不在session缓存中
15、请简述Servlet的生命周期。
当第一次请求时会首先调用Init方法进行必要的初始化,该方法只执行一次,接下来调用service方法完成请求的处理及响应;当服务器重启或者项目被卸载时调用destory()方法销毁servlet()对象;
16、SERVLETAPI中forward()与redirect()的区别?
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
17、Java中什么是多态性?
多态性有什么好处?
相同的消息被不同的对象接受产生不同的行为结果,通谷继承机制或实现公共的接口机制完成多台调用,好处是统一规范或协议,建华调用,
18、简述JSP中Filter的作用及创建步骤。
Filter成为过滤器,对敏感信息进行过滤,同时好可以设置统一的编码,防止乱码的乱码的发生。
定义一个雷实现Filter并实现全部的抽象方法,并在doFilter(Servletrequerstrequest,ServletResponseresponse,FilterChainchain)方法的实现中加入如下代码chain.doFilter(request,reponse),
在web.xml中进行如下配置
19、请简述SpringAOP的概念及使用方法,并列举2种应用。
面向切面的编程,易通明的方式在业务代码中不影响业务代码情况下执行的情况下加入其它代码;这些代码根据通知种类的不同在业务方法被执行过程中执行;通知分为前通知后通知环绕通知抛出异常后通知等;
列入权限验证日志记录。
申明式的事务控制
20、Session中get方法与load方法的区别:
get方法首先会会到session中查找,找不到时道二级缓存中查找,最后才到数据库中查找,当数据库中找不到数据时,返回null;
load方法认定数据库中一定存在索要查询的值,如果没有值则抛出ObjectNotFoundException异常.load方法默认不发送查询语句,当使用sql语句时发送查询语句。
21、方法重写override与方法重载overload
1)方法重写,存在于继承类中,子类覆盖了父类的方法,子类方法访问权限大于父类,当发生异常时,子类的异常小于父类
2)方法重载(Overloading):
方法名相同,参数的个数或者类型不同,重载是在一个类中实现。
注意当参数类型个数相同时,通过改变返回值类型不构成方法重载,同一方法内参数类型不能相同,即不能通过访问权限、返回类型、抛出的异常进行重载;
22、简述几种客户端状态的跟踪方式(会话跟踪)
(1)通过Cookie
(2)通过session
(3)通过隐藏表单域
(4)URL重写
23、“==”和equals方法有什么区别?
==如果操作数是基本类型是比较值如果操作数是引用类型;比较地址
Equal比较的是调用对象与参数对象的的地址
24.jsp有哪些内置对象?
作用分别是什么?
分别有什么方法?
JSP共有以下9个内置的对象:
request用户端请求,此请求会包含来自GET/POST请求的参数
response网页传回用户端的回应
pageContext网页的属性是在这里管理
session与请求有关的会话期
applicationservlet正在执行的内容
out用来传送回应的输出
config servlet的构架部件
pageJSP网页本身
exception针对错误网页,未捕捉的例外
25.jsp有哪些动作?
作用分别是什么?
jsp:
include:
在页面被请求的时候引入一个文件。
jsp:
useBean:
寻找或者实例化一个JavaBean。
jsp:
setProperty:
设置JavaBean的属性。
jsp:
getProperty:
输出某个JavaBean的属性。
jsp:
forward:
把请求转到一个新的页面。
jsp:
plugin:
根据浏览器类型为Java插件生成OBJECT或EMBED标记
26.JSP中动态INCLUDE与静态INCLUDE的区别?
includepage="">动态包含,在运行阶段完成包含,被包含的页面与包含的页面转换成各自对应的Servlet. <%@includefile=""%>---静态包含,不包含
27、什么是运行时异常,他与一般异常有何区别,请写出最常见到的5个runtimeexception。
运行时异常RuntimeException:
编译阶段不能发现,只有在运行时才能发现,发生的原因多数是由于程序设计中存在重大的逻辑错误而导致的,出现运行时异常,修改源代码,纠正存在的逻辑错误。
非RuntimeException:
有可能发生,也有可能不发生,但是在编译阶段就能发现,这样的异常类型必须进行异常处理
NullPointerException、
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException、
ClassCastException。
28、throws,throw,throwable的区别
通过throws用来表明一个成员函数中可能抛出的各种异常;
Throw明确抛出某个异常;
Throwable是各种异常类的父类
29、字节流与字符流
字节流继承于InputStreamOutputStream,
字符流继承于InputStreamReaderOutputStreamWriter。
30、Finalfinallyfinalize的区别
Final用于声明属性方法和类,表示其属性不可变,方法不可覆盖,类不可继承;
Finally为异常处理无条件执行的语句;
Fianlize为Object类的一个方法,当使用垃圾回收时,会调用被回收对象的此方法,
31、什么是线程,线程的状态与生命周期,使用线程所需要实现的接口,什么是线程的同步?
一个进程中有多个执行的线索,这些线索根据分配的时间片可以启动运行充分利用空闲资源,达到并行的运行目的县城依赖于进程而存在,分守护线程与用户线程,其生命周期分为新建态就绪态,运行态(run()阻塞挂起态joinsuspend()),终止态(方法正常运行并调用stop()方法),
线程的两种方式继承实现Thread类或实现Runnable接口;
线程同步:
有一个共享资源对象,该对象中有两个同步方法,当一个线程使用这个对象调用其中的某一个同步方法,在该方法执行过程中,共享资源对象被锁定,其他线程不能使用这个对象
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
32、sleep()和wait()有什么区别?
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。
调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
33、java中XML文档定义有几种形式,他们之间有何区别,java是如何解析xml文件的
有两种形式:
dtd,schem;
本质区别是schema本身是XML文件,可以被解析器解析
通过DOM(DocumentObjectMapping),SAX(simpleAPIforXML),StAX(StreamingAPIforXML)进行解析;
DOM:
为树状结构,其访问是随机的,且需要一次性加载XML文件,当使用大型数据时,其性能下降的十分厉害因此十分耗内存,
SAX为事件型驱动,顺序读取XML文件,当遇到标签开头,结束时会触发一个事件,用户可以通过其回调事件中写入代码,来处理XML文件,完成顺序访问;
StAX:
在StAX中,程序的切入点是表示XML文档中一个位置的光标。
应用程序在需要时向前移动光标,从解析器拉出信息。
与基于事件的API(如SAX)将“数据推送”给应用程序不同的是,SAX需要应用程序维持时间间的状态,以保持文档内的位置信息。
-它位于javax.xml.stream包中。
XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个XML文档。
XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制形成对照。
34、什么是java序列化,如何实现java序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:
FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
35、什么是内存溢出什么是内存泄漏
内存溢出多发生与C/C++是其语言环境固有的缺陷,堆由程序员分配,栈由系统分配
内存泄露指一个不再被程序使用的对象或变量一直被占据在内存中。
java中有垃圾回收机制,它可以保证一对象不再被引用的时候被回收
36、java中特殊的关键字
this:
在类的非静态成员方法中使用this.xxx表示调用该方法的本类对象的引用,在类的构造方法的第一条语句处可以使用this(),表示对本类其他构造方法的调用
super:
在子类的构造方法的第一条语句处super(),表示对父类的构造方法的调用,在子类的成员方法中使用super.xxx,表示调用被子类覆盖的父类的成员
static:
修饰成员变量,变成类变量,在类加载时完成空间分配和初始化,修饰普通的成员方法,方法是静态方法,一般使用类名来调用,也允许使用对象来调用(不常用),不允许出现this或者super关键字
final:
修饰成员变量或者局部变量常量,子类不能重写,类不能被继承
37、几种常见的设计模式
单例模式
Dao模式;模型层
适配器模式
工厂模式
代理模式:
连个具有依赖关系的对象,一个对象发生改变,自动通知另一个对象进行更新
观察者模式
38、简述代理模式
(1)静态代理,基于对类的代理,每一个类需要一个代理类
(2)动态代理:
基于对接口的代理,一个类可以代理多个接口,动态代理与反射配合使用。
1)反射:
根据给定的对象可以获得这个对象所属的类的内部信息,包括Field、Method等,通过反射获得方法信息所对应的对象(Method)后,可以通过这个Method对象调用invoke()方法与这个类的对象直接调用方法一样。
2)动态代理类必须实现InvocationHandler接口。
典型的应用SpringAOP部分使用这种设计模式
37、J2EE是什么?
Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprieseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。
所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测验 笔试 常见
![提示](https://static.bdocx.com/images/bang_tan.gif)