没有合适的资源?快使用搜索试试~ 我知道了~
300+道中高级java工程师面试题大全含答案文档下载
需积分: 5 67 浏览量
2023-02-10
17:10:14
上传
评论
收藏 329.33MB PDF 举报
温馨提示
300+道中高级java工程师面试题大全含答案文档下载 300+道中高级java工程师面试题大全文档下载 300+道中高级java工程师面试题大全文档下载
资源推荐
资源详情
资源评论












1. hibernate 中离线查询去除重复项怎么加条件??
dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
2. http 协议及端口,smtp 协议及端口
http:超文本传输协议 端口 80
smtp:简单邮件传输协议 端口 25
3. 编写程序,完成文件复制功能
4. Servlet 创建过程及生命周期 Servlet 在容器中运行时,其实例的创建及销毁等是由容器进行控制。
Servlet 的创建有两种方法。
1). 客户端请求对应的 Servlet 时,创建 Servlet 实例;大部分 Servlet 都是这种 Servlet 。
2). 通过在 web.xml 中设置 load-on-startup 来创建 servlet 实例,这种实例在 Web 应用启动时,立即
创建 Servlet 实例
Servlet 的运行都遵循如下生命周期:
1). 创建 Servlet 实例。
2). Web 容器调用 Servlet 的 init() 方法,对 Servlet 进行初始化。
3). Servlet 初始化后,将一直存在于容器中,用于响应客户端请求。根据客户端的请求方式通过 Servlet
中 service()方法去相应的 doXXX()方法;
4). Web 容器销毁 Servlet 时,调用 Servlet 的 destroy() 方法,通常在关闭 Web 容器之时销毁
Servlet。
5. 用 sql 语句分页:
Mysql 数据库:
SELECT TOP 页大小 * FROM table1 WHERE id NOT IN (
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id

) ORDER BY id
Oracle 数据库:
在 ORACLE 大数据量下的分页解决方法。一般用截取 ID 方法,还有是三层嵌套方法。
截取 ID 的方法
select * from emp a, (select empno,rownum as num from emp)b where a.empno=b.empno and b.num between
5 and 7;
三层嵌套
SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM emp ) A WHERE rownum <=7 ) B WHERE
r >5;
6. list.map.set 的存储特点?
List 以特定次序来持有元素,可有重复元素.
Set 无法拥有重复元素,内部排序.
Map 保存 key-value 值,value 可多值
7. final,finally,finaliz 的区别
final—修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被
继承。因此一个类不能既被声明为 abstract 的,又被声 明为 final 的。将变量或方法声明为 final,可以保
证它们在使用中不被改变。被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修
改 被声明为 final 的方法也同样只能使用,不能重载。
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常 ,那么相匹配的
catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要
的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定
义的,因此所有的类都继承了它。子类覆盖 ;finalize() 方法以整理系统资源或者执行其他清理工作 finalize()
方法是在垃圾收集器删除对象之前对这个对象调用的。
8. arraylist 和 vector 的区别?
1).同步性:Vector 是线程安全的,也就是说是同步的,而 ArrayList 是线程不安全的,不是同步的
2).数据增长:当需要增长时,Vector 默认增长为原来一培,而 ArrayList 却是原来的一半
9. 说出 ArrayList,Vector, LinkedList 的存储性能和特性?
1). ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是
插入删除时非常麻烦 LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一
个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始
2). ArrayList 和 Vector 都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加
和插入操作,他们都允许直接用序号索引元素,但是插入数据元素涉及到元素移动等内存操作,所以索引
数据快而插入数据慢.
3). Vector 使用了 sychronized 方法(线程安全),所以在性能上比 ArrayList 要差些.
4). LinkedList 使用双向链表方式存储数据,按序号索引数据需要前向或后向遍历数据,所以索引数据慢,是
插入数据时只需要记录前后项即可,所以插入的速度快.
10. HASHMAP,HASHTABLE 区别
1.Hashtable 是 Dictionary 的子类,HashMap 是 Map 接口的一个实现类;
2.Hashtable 中的方法是同步的,而 HashMap 中的方法在缺省情况下是非同步的。
3.在 HashMap 中,null 可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为 null。
11. .描述 Cookie 和 Session 的作用,区别和各自的应用范围,Session 工作原理
Session 用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的
会话 ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是 20 分钟左右).Session

中的信息保存在 Web 服务器内容中,保存的数据量可大可小.当 Session 超时或被关闭时将自动释放保存的
数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用 Session 对象使保存用户
数据的方法效率很低.对于小量的数据,使用 Session 对象保存还是一个不错的选择
Cookie 用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,
信息保存的时间可以根据需要设置.如果没有设置 Cookie 失效日期,它们仅保存到关闭浏览器程序为止.如
果将 Cookie 对象的 Expires 属性设置为 Minvalue,则表示 Cookie 永远不会过期.Cookie 存储的数据量很受
限制,大多数浏览器支持最大容量为 4K,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器
都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未
加密的数据,否则会影响网站的安全性
session 工作原理
(1)当有 Session 启动时,服务器生成一个唯一值,称为 Session ID(好像是通过取进程 ID 的方式取得的)。
(2)然后,服务器开辟一块内存,对应于该 Session ID。
(3)服务器再将该 Session ID 写入浏览器的 cookie。
(4)服务器内有一进程,监视所有 Session 的活动状况,如果有 Session 超时或是主动关闭,服务器就释放
改内存块。
(5)当浏览器连入 IIS 时并请求的 ASP 内用到 Session 时,IIS 就读浏览器 Cookie 中的 Session ID。
(6)然后,服务检查该 Session ID 所对应的内存是否有效。
(7)如果有效,就读出内存中的值。
(8)如果无效,就建立新的 Session。
12. String 和 stringbuffer 进行字符串连接时的区别?
String 对项内容是不可改变的,StringBuffer 是可以改变的,且高效;
13. 什么叫项目?
用有限的资源、有限的时间为特定客户完成特定目标的一次性工作
14. .J2EE J 是什么意思? 2 是什么意思 EE 是什么意思? Struts 的拦截器你是怎么做的,是独立开发的,能
够独立开发的到。然后问有哪几种拦截?
Java 2 Platform,Enterprise Edition
继承 AbstractInterceptor 类,覆盖 intercept()方法
有 struts 自己的拦截器 如 timer ,i18n,scop,servletconfig,token
还有自定义拦截器
15. 简单介绍下 java?Spring 的 AOP,IOC 的讲述 对 struts2 的了解,1,2 的比较 xml 的了解 J2ee 的
webserviced 的协议?
Spring AOP:代理机制 Spring 提供的自动代理机制
Spring 的 IoC 来实组件之间的依赖关系注入, 使控制层与业务实现分离,即客户通过
调用业务委托接口来调用具体的业务组件的实例,避免控制层与业务层的藕合带来的维护
或升级困难。由 Spring 为 DAO 生成代理对象来为 DAO 添加事务服务,由 IoC 容器 DAO 的代理实例注入到业务组
件中,业务组件通过 DAO 的委托接口调用 DAO 对象,使得上层组件不直接依赖于 DAO 的实现类,使得持久层更换
或修改不影响上层组件。
16. Collections,collection 的区别
Collection 是个 java.util 下的接口,它是各种集合结构的父接口。Collections 是个 java.util 下的普通类,
它包含有各种有关集合操作的静态方法。Collections 是针对集合类的一个帮助类,它提供一系列的静态方法
实现对各种集合的搜索,排序,线程安全化等操作
17. 如何释放过度使用的 undo 表空间
1. 启动 SQLPLUS,并用 sys 登陆到数据库。 2. 查找数据库的 UNDO 表空间名 3. 确认 UNDO 表空间;SQL>
select name from v$tablespace; 4. 检查数据库 UNDO 表空间占用空间情况以及数据文件存放位置; 5. 查

看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间 6. 检查 UNDO Segment
状态
18. 数据库里面游标,索引是怎么用的? 在 oracle 数据库中,用 get 和 load 方法 这 2 个方法来查没有的数
据 那么分别会反馈什么样的结果?
declare cur cursor keyset for
get 返回 null,load classnotfoundException
19. .在 Oracle 中数据库中的一个表中,这个表没有主键 id 也没有特定标示来查数据,怎么查?
rowid
20. 简述 private、proteced、public、internal 修饰符的访问权限
同一个类 同一个包 不同包的子类 不同包
非子类
private *
default * *
protected * * *
public * * *
*
21. 概述反射和序列化
Reflection 是 Java 被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过
Reflection APIs 取得任何一个已知名称的 class 的内部信息,包括其 modifiers(诸如 public, static 等
等)、superclass(例如 Object)、实现之 interfaces(例如 Cloneable),也包括 fields 和 methods 的所有信
息,并可于运行时改变 fields 内容或唤起 methods。本文借由实例,大面积示范 Reflection APIs。
22. 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象
进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发
的问题。
序 列 化 的 实 现 : 将 需 要 被 序 列 化 的 类 实 现 Serializable 接 口 , 该 接 口 没 有 需 要 实 现 的 方 法 ,
implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)
来 构 造 一 个 ObjectOutputStream( 对 象 流 ) 对 象 , 接 着 , 使 用 ObjectOutputStream 对 象 的
writeObject(Object obj)方法就可以将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流
23. ORACLE 中 not 和 and 和 or 优先级由高到低?
not and or
24. java 是如何进行异常处理的
Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在 Java 中,
每个异常都是一个对象,它是 Throwable 类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该
对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java 的异常处理是通过 5 个关
键词来实现的:try、catch、throw、throws 和 finally。一般情况下是用 try 来执行一段程序,如果出现异常,
系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处
理器来处理
25. struts2 必备包
commons-fileupload-1.2.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar

xwork-2.1.2.jar
26. dao 是什么及作用
dao 是数据访问对象 DAO 负责管理与数据源的连接来获取和储存其中的数据
27. ibatis 中的#与$的区别
在 Ibatis 中我们使用 SqlMap 进行 Sql 查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,
#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:
select * from table where id = #id# ,其中如果字段 id 为字符型,那么#id#表示的就是'id'类型,如
果 id 为整型,那么#id#就是 id 类型。
select * from table where id = $id$ ,如果字段 id 为整型,Sql 语句就不会出错,但是如果字段 id 为
字符型,那么 Sql 语句应该写成 select * from table where id = '$id$'
28. struts2 的实现原理
1、客户端初始化一个指向 Servlet 容器(例如 Tomcat)的请求
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做 ActionContextCleanUp 的可选过滤器,
这个过滤器对于 Struts2 和其他框架的集成很有帮助,例如:SiteMesh Plugin);
3、接着 FilterDispatcher 被调用,FilterDispatcher 询问 ActionMapper 来决定这个请求是否需要调用某个
Action;
4、如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给 ActionProxy;
5、ActionProxy 通过 Configuration Manager 询问框架的配置文件,找到需要调用的 Action 类;
6、ActionProxy 创建一个 ActionInvocation 的实例。
7、ActionInvocation 实例使用命名模式来调用,在调用 Action 的过程前后,涉及到相关拦截器(Intercepter)
的调用。
8、一旦 Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。返回结果
通常是(但不总是,也可能是另外的一个 Action 链)一个需要被表示的 JSP 或者 FreeMarker 的模版。在表示
的过程中可以使用 Struts2 框架中继承的标签。在这个过程中需要涉及到 ActionMapper
29. 简述 spring 的事务传播行为和 隔离级别
spring 的事务传播行为: Spring 在 TransactionDefinition 接口中规定了 7 种类型的事务传播行为,它
们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务
中。这是最常见的选择。
PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED:如果当 前 存 在 事 务 , 则 在 嵌 套 事务内 执 行 。 如 果 当 前 没 有 事 务,则 执 行 与
PROPAGATION_REQUIRED 类似的操作。
Spring 的隔离级别
1、Serializable:最严格的级别,事务串行执行,资源消耗最大;
2、REPEATABLE READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏
读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
3、READ COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但
未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
4、Read Uncommitted:保证了读取过程中不会读取到非法数据。
30. 写一段把本地文件 formfile 拷贝到本地文件 tofile 的程序
public class ChangeJtdToJava {
剩余71页未读,继续阅读
资源评论


like_mars
- 粉丝: 0
- 资源: 69
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
