A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 就业高冷派 于 2018-10-29 15:40 编辑

北京航星永志科技有限公司
公司行业:计算机软件 互联网/电子商务
公司规模:500-999
公司地址:西安市南稍门十字东南角永宁国际(大话南门)1号楼18层
笔试题:
1.jpg 2.jpg 3.jpg
面试总结:
1:  Query接口的list方法和iterate方法有什么区别?
list()方法无法利用一级缓存和二级缓存(对缓存只写不读),它只能在开启查询缓存的前提下使用查询缓存;iterate()方法可以充分利用缓存,如果目标数据只读或者读取频繁,使用iterate()方法可以减少性能开销。
list()方法不会引起N+1查询问题,而iterate()方法可能引起N+1查询问题
2:  如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与Session关闭的矛盾是如何处理的?
延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加载。Hibernate使用了虚拟代理机制实现延迟加载,我们使用Session的load()方法加载数据或者一对多关联映射在使用延迟加载的情况下从一的一方加载多的一方,得到的都是虚拟代理,简单的说返回给用户的并不是实体本身,而是实体对象的代理。代理对象在用户调用getter方法时才会去数据库加载数据。但加载数据就需要数据库连接。而当我们把会话关闭时,数据库连接就同时关闭了。
延迟加载与session关闭的矛盾一般可以这样处理:
关闭延迟加载特性。这种方式操作起来比较简单,因为Hibernate的延迟加载特性是可以通过映射文件或者注解进行配置的,但这种解决方案存在明显的缺陷。首先,出现”no session or session was closed”通常说明系统中已经存在主外键关联,如果去掉延迟加载的话,每次查询的开销都会变得很大。
session关闭之前先获取需要查询的数据,可以使用工具方法Hibernate.isInitialized()判断对象是否被加载,如果没有被加载则可以使用Hibernate.initialize()方法加载对象。
使用拦截器或过滤器延长Session的生命周期直到视图获得数据。Spring整合Hibernate提供的OpenSessionInViewFilter和OpenSessionInViewInterceptor就是这种做法。
3:  数据库三范式是什么?
第一范式(1NF):
字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作
为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
第二范式(2NF):
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
第三范式(3NF):
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
所以第三范式具有如下特征:
1,每一列只有一个值
2,每一行都能区分。
3,每一个表都不包含其他表已经包含的非主关键字信息。
例如,帖子表中只能出现发帖人的id,而不能出现发帖人的id,还同时出现发帖人姓名,否则,只要出现同一发帖人id 的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。
4:  join 与left join 的区别:
inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
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.empno and b.num between 5 and 7;
三层嵌套
SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM emp ) A WHERE rownum <=7 ) B WHERE r >5;
6:  HTTP 请求返回的状态码有哪些?分别有什么含义?
3XX:重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location 域中指明。
302:请求的资源现在临时从不同的URI 响应请求
303:对应当前请求的响应可以在另一个URI 上被找到,而且客户端应当采用GET 的方式访问那个资源。
4XX:请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。像,403、404、405 错误
5XX:服务器错误,这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
像,500、501、502 等错误
7:  JSON 和XML 的优缺点
1) 在可读性方面,JSON 和XML 的数据可读性基本相同。JSON 和XML 的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
2) 在可扩展性方面,XML 天生有很好的扩展性,JSON 当然也有,没有什么是XML 能扩展,JSON 不能的。
3) 在编码难度方面,XML 有丰富的编码工具,比如Dom4j、JDom 等,JSON 也有json.org提供的工具,但是JSON 的编码明显比XML 容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML 就不太容易了。
4) 在解码难度方面,XML 的解析得考虑子节点父节点,让人头昏眼花,而JSON 的解析难度几乎为0。这一点XML 输的真是没话说。
5) 在流行度方面,XML 已经被业界广泛的使用,而JSON 才刚刚开始,但是在Ajax 这个特定的领域,未来的发展一定是XML 让位于JSON。到时Ajax 应该变成Ajaj(AsynchronousJavascript and JSON)了。
6) JSON 和XML 同样拥有丰富的解析手段。
7) JSON 相对于XML 来讲,数据的体积小。
8) JSON 与JavaScript 的交互更加方便。
9) JSON 对数据的描述性比XML 较差。
10) JSON 的速度要远远快于XML。
8:  ajax 的工作原理?
Ajax 基本上就是把JavaScript 技术和XMLHttpRequest 对象放在Web 表单和服务器之间。当用户填写表单时,数据发送给一些JavaScript 代码而不是直接发送给服务
器。相反,JavaScript 代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript 代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。然后,服务器将数据返回JavaScript 代码(仍然在Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript 代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是XMLHttpRequest 的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验。
9:  XML 文档定义有几种形式?它们之间有何本质区别?解析XML 文档有哪几种方式?
两种形式dtd 、schema,
本质区别:schema 本身是xml 的,可以被XML 解析器解析(这也是从DTD 上发展schema 的根本目的)。
解析的中有:DOM、SAX、JDOM、DOM4J 等。
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM 的树结构所造成的,这种结构占用的内存较多,而且DOM 必须在解析文件之前把整个文档装入内存,适合对XML 的随机访问SAX:不现于DOM,SAX 是事件驱动型的XML 解析方式。它顺序读取XML 文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML 文件,适合对XML的顺序访问。

135 个回复

倒序浏览
感谢分享~
回复 使用道具 举报
满满的干货!
回复 使用道具 举报
回复 使用道具 举报
感谢分享....................
回复 使用道具 举报
不错, 不错 ..................
回复 使用道具 举报
感谢分享~
回复 使用道具 举报
回复 使用道具 举报
6666666666666666666666
回复 使用道具 举报
感谢分享
回复 使用道具 举报
感谢分享    都是干货   喜欢喜欢
回复 使用道具 举报
感谢分享   
回复 使用道具 举报
pcdate 来自手机 中级黑马 2018-11-27 11:53:47
13#
66666666666666
回复 使用道具 举报
pcdate 来自手机 中级黑马 2018-11-27 11:55:23
14#
6666666666666666
回复 使用道具 举报
致橡树 来自手机 中级黑马 2018-11-27 12:19:41
15#
666666666666666
回复 使用道具 举报
SunYan 来自手机 中级黑马 2018-11-27 12:25:32
16#
黑马666666666
回复 使用道具 举报
回复 使用道具 举报
疯子小花花 来自手机 中级黑马 2018-11-27 12:59:17
18#
棒棒棒!!!
回复 使用道具 举报

66666666666666666
回复 使用道具 举报
huochao 来自手机 中级黑马 2018-11-27 13:12:23
20#
666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马