java web简答题_Java Web 企业面试简答题

本文介绍了数据库的三范式,包括第一范式、第二范式和第三范式,并探讨了数据库优化策略,如使用PreparedStatement、优化子查询以及考虑表的适当冗余。同时,讲解了MVC架构中各部分的技术实现,以及在Eclipse中调试Java Web应用查看变量值的方法。
摘要由CSDN通过智能技术生成

1、数据库三范式是什么?

答:

第一范式(1NF):

字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。

第二范式(2NF):

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。第二范式(2NF)要求实体的属性完全依赖于主关键字。

所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。

简而言之,第二范式就是非主属性非部分依赖于主关键字。

第三范式的要求如下:

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

所以第三范式具有如下特征:

1,每一列只有一个值 。

2,每一行都能区分。

3,每一个表都不包含其他表已经包含的非主关键字信息。

2、说出一些数据库优化方面的经验?

答:

用 PreparedStatement 一般来说比 Statement 性能高:一个 sql

发给服务器去执行,涉及步骤:语法检查、语义分析,编译,缓存

“inert into user values(1,1,1)”-→二进制

“inert into user values(2,2,2)”-→二进制

“inert into user values(?,?,?)”-→二进制

有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)(对于

hibernate 来说,就应该有一个变化:empleyee->Deptment 对象,现在设计时就成了 employee→deptid )

看 mysql 帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语句要比第二条关联查询的效率高:

1. select e.name,e.salary where e.managerid=(select id from employee where

ame='zxx');

2. select e.name,e.salary,m.name,m.salary from employees e,employees m

where e.managerid = m.id and m.name='zxx';

表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!

sql 语句全部大写,特别是列名和表名都大写。特别是 sql 命令的缓存功能,更加需要统一大小写,sql 语句发给 oracle

服务器语法检查和编译成为内部指令→缓存和执行指令。根据缓存的特点,不要拼凑条件,而是用 PreparedStatment

还有索引对查询性能的改进也是值得关注的。

3、MVC 的各个部分都有那些技术来实现?如何实现?

答:

MVC 是 Model-View-Controller 的简写。

Model 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现),View 是应用的表示面(由JSP页面产生),Controller

是提供应用的处理过程控制(一般是一个 Servlet ),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

4、在 eclipse 中调试时,怎样查看一个变量的值?

答:

在要查看的变量前先设置断点,然后选中变量,右键选 debug as-->Java Application,打开 debug 透视图,这时在

Variables 窗口中可以看到变量当前的值。如果是局部变量,也可以在局部变量窗口中查看。

要知道一个方法被调用的方法调用链,可以在方法栈中查看。

感谢大家阅读由分享的“Java Web 简答题”希望对大家有所帮助,更多精彩内容请关注Java培训官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值