java软件工程师实用面试题

上传人:笛音 文档编号:25879007 上传时间:2017-12-19 格式:DOC 页数:72 大小:593KB
返回 下载 相关 举报
java软件工程师实用面试题_第1页
第1页 / 共72页
java软件工程师实用面试题_第2页
第2页 / 共72页
java软件工程师实用面试题_第3页
第3页 / 共72页
java软件工程师实用面试题_第4页
第4页 / 共72页
java软件工程师实用面试题_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《java软件工程师实用面试题》由会员分享,可在线阅读,更多相关《java软件工程师实用面试题(72页珍藏版)》请在金锄头文库上搜索。

1、1. hibernate 中离线查询去除重复项怎么加条件?dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);2. http协议及端口,smtp 协议及端口http:超文本传输协议 端口 80 smtp:简单邮件传输协议 端口 253. 编写程序,完成文件复制功能 4. Servlet创建过程及生命周期 Servlet 在容器中运行时,其实例的创建及销毁等是由容器进行控制。 Servlet 的创建有两种方法。 1). 客户端请求对应的 Servlet 时,创建 Servlet 实例;大部分 Servlet 都是这种 Servlet 。

2、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

3、() 方法,通常在关闭 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.empn

4、o and b.num between 5 and 7;三层嵌套SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM emp ) A WHERE rownum 5;6. list.map.set的存储特点?List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存 key-value值,value 可多值7. final,finally,finaliz的区别final修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abst

5、ract的,又被声 明为 final的。将变量或方法声明为 final,可以保证它们在使用中不被改变。被声明为 final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改 被声明为 final的方法也同样只能使用,不能重载。 finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常 ,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话) 。 finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引

6、用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 ;finalize() 方法以整理系统资源或者执行其他清理工作 finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。8. arraylist和 vector的区别?1).同步性:Vector 是线程安全的,也就是说是同步的,而 ArrayList是线程不安全的,不是同步的2).数据增长:当需要增长时,Vector 默认增长为原来一培,而 ArrayList却是原来的一半9. 说出 ArrayList,Vector, LinkedList的存储性能和特性?1). ArrayList 采用的

7、是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦 LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始2). ArrayList和 Vector都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加和插入操作,他们都允许直接用序号索引元素,但是插入数据元素涉及到元素移动等内存操作,所以索引数据快而插入数据慢.3). Vector使用了 sychronized 方法(线程安全),所以在性能上比 ArrayList要差些.4). LinkedList使

8、用双向链表方式存储数据,按序号索引数据需要前向或后向遍历数据,所以索引数据慢,是插入数据时只需要记录前后项即可,所以插入的速度快.10.HASHMAP,HASHTABLE区别1.Hashtable是 Dictionary的子类,HashMap 是 Map接口的一个实现类;2.Hashtable中的方法是同步的,而 HashMap中的方法在缺省情况下是非同步的。3.在 HashMap中,null 可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为 null。11.描述 Cookie和 Session的作用,区别和各自的应用范围,Session 工作原理Session用于保存每个用户的专

9、用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话 ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是 20分钟左右).Session中的信息保存在 Web服务器内容中,保存的数据量可大可小.当 Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用 Session对象使保存用户数据的方法效率很低.对于小量的数据,使用 Session对象保存还是一个不错的选择Cookie 用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要

10、设置.如果没有设置 Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将 Cookie对象的 Expires属性设置为 Minvalue,则表示 Cookie永远不会过期.Cookie 存储的数据量很受限制,大多数浏览器支持最大容量为 4K,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性session工作原理(1)当有 Session启动时,服务器生成一个唯一值,称为 Session ID(好像是通过取进程 ID的方式取得的)。(2)然后,

11、服务器开辟一块内存,对应于该 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对

12、项内容是不可改变的,StringBuffer 是可以改变的,且高效; 13.什么叫项目? 用有限的资源、有限的时间为特定客户完成特定目标的一次性工作14.J2EE J是什么意思? 2是什么意思 EE是什么意思? Struts的拦截器你是怎么做的,是独立开发的,能够独立开发的到。然后问有哪几种拦截? Java 2 Platform,Enterprise Edition 继承 AbstractInterceptor类,覆盖 intercept()方法有 struts自己的拦截器 如 timer ,i18n,scop,servletconfig,token还有自定义拦截器15.简单介绍下 java?

13、Spring 的 AOP,IOC 的讲述 对 struts2的了解,1,2 的比较 xml的了解 J2ee的webserviced的协议?Spring AOP:代理机制 Spring 提供的自动代理机制Spring的 IoC来实组件之间的依赖关系注入, 使控制层与业务实现分离,即客户通过调用业务委托接口来调用具体的业务组件的实例,避免控制层与业务层的藕合带来的维护或升级困难。由 Spring为 DAO生成代理对象来为 DAO添加事务服务,由 IoC容器 DAO的代理实例注入到业务组件中,业务组件通过 DAO的委托接口调用 DAO对象,使得上层组件不直接依赖于 DAO的实现类,使得持久层更换或修

14、改不影响上层组件。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

15、. 检查数据库 UNDO表空间占用空间情况以及数据文件存放位置; 5. 查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间 6. 检查 UNDO Segment状态18.数据库里面游标,索引是怎么用的? 在 oracle数据库中,用 get 和 load方法 这 2个方法来查没有的数据 那么分别会反馈什么样的结果?declare cur cursor keyset for get返回 null,load classnotfoundException19.在 Oracle中数据库中的一个表中,这个表没有主键 id也没有特定标示来查数据,怎么查?rowid20.简述 pri

16、vate、proteced、public、internal 修饰符的访问权限 同一个类 同一个包 不同包的子类 不同包非子类 private * default * * protected * * * public * * * * 21. 概述反射和序列化Reflection 是 Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的 class的内部信息,包括其 modifiers(诸如 public, static 等等)、superclass(例如 Object) 、实现之 interfaces(例如 Cloneable)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号