面试问题收集
2017面试题总结:
1 执行计划有哪些重要的项? 2 缓存? 3 索引失效? 4 Oracle矩阵? 5 哪些时候没用索引会比索引快? 6 数据传输过程中,如何避免数据不被中途拦截? 7 索引有哪些? 8 Springmvc怎么避免过滤用户输入的内容? 9 什么时候可以避免使用索引? 10 存储过程的缺点? 11 字段值的变化区间很小,会导致建立索引更慢? 12 13 14 接口为什么不能添加额? 15 性能调优? 16 web services? 17 获取指定目录和目录下所有的txt文件? 18 Js让所有的对象下checkbox都选中? 19 Cookie怎么存值的? 20 Struts1和struts2有什么区别? 21 stringbuffer和string builder 有什么区别,为什么是速度快? 22 Map中实现类怎么和插入的结构一样?
1、三大框架中哪个比较熟悉?
2、severlet是如何接收请求?
3、oracle自带函数问题
字符串函数:1、LOWER()转为小写 2、UPPER() 3、substr() 4、instr() 5、initcap()每个单词的第一个字母变为大写 6、abs() 7、mod() 8、floor round() 9、ceil() 10、length()
日期函数:1、to_char(),将日期转为指定的字符串格式 2、sysdate取得相同的日期 3、last_day一个月的最后一天 4、sqrt() 返回一个数的平方根
Count() avg() sum() max() min()
4、javascript的方法
getDay()从0-6,getDate()从1-31,getMonth()0-11,getSeconds()
concat(),trim(),toString(),slice()返回字符串的片段(部分)
toArray()返回一个从VBArray转换为一个标准的JavaScript的数组
split()将字符串分割为若干个子字符串所产生的字符串数组
5、是否熟悉weblogic服务器
6、strut2基本流程
7、怎么定义自定义标签?
1) 声明标签库 2) 使标签库执行对Web应用程序可用 4. 声明标签库 答:1) 使用taglib指令声明标签库 2) 语法:<%@taglib uri="URI" prefix="pre" %>
8、第一次定义标签,是否需要引用jsp的标签?
9、ibatis调用存储过程
创建Contact.xml和SqlMapConfig.xml
创建Contact.java并将其编译
创建IbatisStoredProcedure.java并将其编译
执行IbatisStoredProcedure类文件,所有的Contract信息将在你的命令提示符下显示
Contact.xml有个<procedure id=”storedInfo”>标签在Ibatis调用存储过程
1.IbatisStoredProcedure.java中 Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
2.SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); System.out.println("All Contacts");
3. List<Contact> contacts = (List<Contact>)
4. sqlMap.queryForList("Contact.storedInfo",null);
例如:使用带参数的存储过程
<parameterMap id=”swapParameters” class=”map”>
<parameter id=”email1” jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”INOUT”></parameter>
<parameter id=”email2” jdbcType=”VARCHAR” javaType=”java.lang.String” mode=”INOUT”></parameter>
</parameterMap>
如果调用存储过程返回的是一个结果集,使用queryforList或者queryforObject来调用,如果返回的是一个结果集而且由更新数据库数据的,那么需要配置<transactionManager commitRequired=”true”>,如果仅仅返回的是要输出的结果,那么使用update
<procedure id=”***” parameterMap=”swapParameters”>
{call 存储过程的名称(?,?)}
</procedured>
10、spring事务机制
11、oracle的自动增长如何实现?
1、使用sequence
create sequence sequence_name
increment by 1
start with 1
nomaxValue nocycle nocache
2、使用触发器和序列
Create or replace trigger trigger_name
Before insert on table_name for each row
Begin select sequence_name.nextval into : new.tableId from dual; end
12、外键是否为空?
当外键作为主键时,不能为空。其他情况下可以为空
13、内关连和外关联的差别
14、spring的mvc如何实现?
15、总结三大框架的用法
16、Struts1和struts2有什么区别?
17、在编码中,如何处理异常?
1、使用try{}catch{}finally{}
2、向上抛出异常在方法上使用throws
3、自定义异常,自定义一个类,继承RunTimeException,重载构造方法
18、数据库中,主键和外键有什么区别?
主键、外键和索引的区别?
主键 外键 索引
定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值
作用: 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度
个数: 主键只能有一个 一个表可以有多个外键 一个表可以有多个惟一索引
19、Hiberrate与ibits的优缺点
1.出身
hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。
ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了。
2.原理
相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。hibernate 对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql 的自动生成和执行。程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate 提供的方法完成持久层操作。程序员甚至不需要对sql 的熟练掌握, hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行。
而ibatis 的着力点,则在于pojo 与sql之间的映射关系。也就是说,ibatis并不会为程序员在运行期自动生成sql 执行。具体的sql 需要程序员编写,然后通过映射配置文件,将sql所需的参数,以及返回的结果字段映射到指定pojo。
3.机制
使用ibatis 提供的orm机制,对业务逻辑实现人员而言,面对的是纯粹的java对象。这一层与通过hibernate 实现orm 而言基本一致,而对于具体的数据操作,hibernate会自动生成sql 语句,而ibatis 则要求开发者编写具体的sql 语句。相对hibernate而言,ibatis 以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
hibernate与ibatis的对比:
4.学习成本
ibatis非常简单易学,hibernate相对较复杂,门槛较高。
5.开源软件
二者都是比较优秀的开源产品
6.二次开发
当系统属于二次开发,无法对数据库结构做到控制和修改,那ibatis的灵活性将比hibernate更适合
7.海量数据
系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的sql语句(或存储过程)才能达到系统性能设计指标。在这种情况下ibatis会有更好的可控性和表现。
8.自动化程度
ibatis需要手写sql语句,也可以生成一部分,hibernate则基本上可以自动生成,偶尔会写一些hql。同样的需求,ibatis的工作量比 hibernate要大很多。类似的,如果涉及到数据;库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改。
9.与数据映射关系
ibatis以数据库字段一一对应映射得到的po和hibernte这种对象化映射得到的po是截然不同的,本质区别在于这种po是扁平化的,不像hibernate映射的po是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。
10.技术支持
hibernate现在已经是主流o/r mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于ibatis
20、jquery在项目中一般怎么应用?
21、谈谈你所做过的项目
22、如何根据客户的需求开展工作?意见不合时如何处理?
23、 有哪几种工厂模式,分别是?
24、 谈谈spring框架,SSI框架
25、 设计理念、设计模式、工作流、设计逻辑
26、前台JS.EXT的使用情况
27、谈谈之前主要负责的工作,现在为什么要换工作
28、对于工作上有哪些想学习的,学习能力如何
29、 EJB、J2EE的使用情况,熟悉程度
30、Oracle性能优化、sql语句等
31、公共对外的项目经验有哪些(少数会问到)
32、使用过哪些集合类 各有什么优缺点。
33、 HASHTABLE HASHMAP区别
34、描述struts2/spring框架在MVC中实现
35、struts 和spring原理
36、介绍下自已以前做过的项目,使用的技术
37、描述一下自己曾经写过的,自己认为最经典最优良的SQL语句
38、SQL语句的优化问题
39、ORACLE 的系统维护 从具体哪张表可以查询到操作某个表的SQL
40、如果我有一个表叫TABLE_A,我要查询跟这个表有关的存储过程名字应 该如何查
41、设计模式, 写一个单例模式和抽象工程模式的伪代码
42、列举下自己熟悉的设计
43、有没独立开发过一个重要的模块
44、用过jquery的插件没
45、做过性能方面的东西没