Java面试(三)
1、ssh和ssm框架的区别?
SSH框架是Struct+Spring+Hibernate
SSM是指的Spring MVC+Spring+MyBatis
主要比较Struct和Spring-MVC
(1)Struct是针对Action类来请求的,一个Action类对应一个请求;
Spring MVC是针对方法级别的请求的,一个方法对应一个请求;
(2)Spring MVC的配置文件相对来说要少;
(3)Spring的入口是servlet级别而Struts的级别是Filter的。
Hibernate和MyBatis区别:
(1)Hibernate是O/R关系型,MyBitas是针对SQL-Maping。
Hibernate是把数据库封装好,再调用数据库操作语言,而MyBitas是用原始的数据库操作语句。
(2)Hibernate优化相较于MyBitas更难
(3)MyBitas入门快,Hibernate掌握比较难
(4)Hibernate数据库移植性好,MyBitas需要针对不同数据库写不同的SQL
2、Orace与SQL Server的区别?
Oracle数据库是甲骨文公司的一款关系型数据库;
SQL Server数据库是美国Miscrosoft公司推出的关系型数据库;
主要区别:
(1)操作平台不同
Oracle可在所有平台,SQL Server只在Windows平台;
(2)文体结构不同
oracle的文件体系结构为:
数据文件 .dbf(真实数据)
日志文件 .rdo
控制文件 .ctl
参数文件 .ora
sql server的文件体系结构为:
数据字典 .mdf
数据文件 .ndf
日志文件 .ldf
(3)存储结构不同
Oracle里有两个块参数,可控制块确定块本身何时有,何时没有足够的空间接受新信息,这样可降低数据行连接与行迁移的可能性。
SQL Server数据库以页为最小分配单位,每个页为8k,可将8个连续的页的组成一个‘扩展’,以进一步减少分配时所耗用的资源。
(4)安全性不同
Orace的安全认证获得最高认证级别的ISO标准认证,而SQL Server没有;
(5)性能不同
Oracle采用完全开放策略;SQL Server多用户时性能不佳。
(6)开放性不同
Oracl完全开放;SQL Server只能在Windows上运行,没有开放性。
(7)客户端支持及应用模式
SQL Server C/S结构,只支持Windows客户;Oracle 多层次网络计算,支持多种工业标准。
3、SQL语句中having与where的区别?
where是sql中是一个约束声明,是在查询返回结果集以后对查询结果进行的过滤操作。
having要配合group by使用,在分组之后过滤数据。
where在group by之前执行,having 在group by 之后执行。
4、java中取整的函数有哪些?
(1)Math.rint:四舍五入取整
(2)Math.floor:向下取整,舍掉小数取整(floor,英文原意:地板)
(3)Math.ceil:向上取整,进位取整(ceil,英文原意:天花板)
5、数据库的储存过程?
SQL语句需要先编译然后执行,而储存过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数来调用执行它。
6、数据库group by的用法?
groupby子句可以将查询结果分组