java web面试技巧,数据库面试,java web轻量级开发面试教程

 

 

 

我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程java

其中不只用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,并且还实际讲到了面试技巧。程序员

 

以下部分是对数据库面试方面的总结。web

若是在面试或与资深人事交流的过程当中,你能有效合理地展现出本章所给出的一些知识点,那么对你的评价就会是“对数据库有深刻了解”,甚至能加上“有设计数据表的经验”,即使你说有过3年商业项目数据库操做的经验,那么别人也能相信。面试

相反,若是一个工做经验满3年的程序员或许动手编程能力不差,但没法在交流沟经过程中证实这点,或者干脆不知道怎么证实,那么对他的评价每每多是“数据库层面,有过商业项目的经验,但只会些基本的增删改查(顶多再加上会视图存储过程等技术),没法独立担当数据库方面的工做”。数据库

下面列些数据库方面的常见面试问题,你们能够以此来衡量一下对本章知识点的掌握程度。编程

问题1,你有没有建表的经验?建表时你是否会遵循三范式?性能

设计数据表时,须要权衡数据冗余和链接代价,详细内容请参考2.1.3节你的描述。优化

问题2,你有过哪些数据库的优化经验?设计

你们能够说用过索引,具体的知识点能够参考2.3节。视频

问题3,请你叙述一下不该该建索引的场景。

问题4,like语句会不会走索引?

问题5,索引的结构是什么?建索引会有什么代价?咱们应该如何权衡要不要建索引?

关于上述三个问题,代价能够参考2.3节的描述。

问题6,事务隔离级别有哪些级别?具体的脏读,幻读和不可重复读的含义是什么?

参考2.4.4节的描述。

问题7,Statement和PreparedStatement对象有什么差异?

你们能够围绕预处理和批处理这两个角度来回答。

如下咱们再列些数据库方面比较高级的知识点,这些知识点须要靠项目经验来沉淀,通常高级程序员能知道,而初学者或初级程序员未必知道,你们能够在面试时,找合适的机会说出来,这样面试官必定会对你另眼相看。

知识点1,在数据库编程时,尽可能用try…catch…finally的代码结构,同时在finally里放置释放数据库链接等资源的代码,由于若是咱们不主动地关闭数据库链接,这部分所占用的内存是没法被垃圾回收器(GC)主动回收的。

知识点2,为了提高数据库操做的性能,我会用到PreparedStatement来进行批处理操做,但每批执行的SQL语句的数量不能太多,不然会把缓冲区撑爆,通常每批是500条左右。

知识点3,经过PreparedStatement的预处理机制,咱们能够有效地防止SQL注入。

相关文章
相关标签/搜索