黑马程序员技术交流社区

标题: JavaEE面试经验分享——软通动力信息技术有限公司 [打印本页]

作者: 就业高冷派    时间: 2018-8-28 16:40
标题: JavaEE面试经验分享——软通动力信息技术有限公司
本帖最后由 就业高冷派 于 2018-8-28 16:45 编辑

软通动力信息技术(集团)有限公司
公司行业:互联网/电子商务
公司规模:1000+
公司地址:西安雁塔区西安环普科技产业园

笔试题:

面试总结:
1: 简述一下 hibernate 的开发流程 ?  
第一步:加载 hibernate 的配置文件,读取配置文件的参数(jdbc 连接参数,数据 库方言, hbm 表与对象关系映射文件) 

第二步:创建 SessionFactory 会话工厂(内部有连接池) 

第三步:打开 session 获取连接,构造 session 对象(一次会话维持一个数据连接, 
也是一级缓存) 

第四步:开启事务 

第五步:进行操作 。
第六步:提交事务 

第七步:关闭 session(会话)将连接释放 

第八步:关闭连接池 
  
2: hibernate 中对象的三种状态  ?
瞬时态(临时态、自由态):不存在持久化标识 OID,尚未与 Hibernate Session 关联对象, 被认为处于瞬时态,失去引用将被 JVM 回收

持久态:存在持久化标识 OID,与当前 session 有关联,并且相关联的 session 没有关闭 , 并且事务未提交 

脱管态(离线态、游离态):存在持久化标识 OID,但没有与当前 session 关联,脱管状态 改变 hibernate 不能检测到
3: 如何使用 ActiveMQ 解决分布式事务?
在互联网应用中,基本都会有用户注册的功能。在注册的同时,我们会做出如下操作:
1. 收集用户录入信息,保存到数据库
2. 向用户的手机或邮箱发送验证码
等等
如果是传统的集中式架构,实现这个功能非常简单:开启一个本地事务,往本地数据库中插入一条用户数据,发送验证码,提交事物。
但是在分布式架构中,用户和发送验证码是两个独立的服务,它们都有各自的数据库,那么就不能通过本地事物保证操作的原子性。这时我们就需要用到 ActiveMQ(消息队列)来为我们实现这个需求。
在用户进行注册操作的时候,我们为该操作创建一条消息,当用户信息保存成功时,把这条消息发送到消息队列。验证码系统会监听消息,一旦接受到消息,就会给该用户发送验证码 .
问题:
1.如何防止消息重复发送?
解决方法很简单:增加消息状态表。通俗来说就是一个账本,用来记录消息的处理状态,每次处理消息之前,都去状态表中查询一次,如果已经有相同的消息存在,那么不处理,可以防止重复发送。
4: 简单介绍一下 solr ?
Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。 用户可以通过 http请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以 通过 Http Get 操作提出查找请求,并得到XML 格式的返回结果。
特点:
Solr 是一个高性能,采用 Java5 开发,基于 Lucene 的全文搜索服务器。同时对其进行 了扩展,提供了比Lucene 更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能 进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
工作方式:
文档通过 Http 利用 XML 加到一个搜索集合中。查询该集合也是通过 http 收到一个 XML/JSON 响应来实现。
它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮 显示搜索结果,通过索引复制来提高可用性,提供一套强大 Data Schema 来定义字段,类 型和设置文本分析,提供基于 Web 的管理界面等 。  
5: 简单介绍一下 Struts2   ?
Struts2 框架是一个按照 MVC 设计模式设计的 WEB 层框架,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的框架。其全新的 Struts 2 的体系结构与 Struts 1 的体 系结构差别巨大。 Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求, 这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开。 

我们可以把 struts2 理解为一个大大的 servlet,而这个 servlet 就是 ActionServlet。struts2 在处理客户端请求时,会先读取 web.xml 配置文件,根据前端控制器将符合条件的请求 分给各个不同的 Action 处理。 在此之前,会把ActionServlet 会把数据封装成一个 javaBean。 
Struts2 框架提供了许多的拦截器,在封装数据的过程中,我们可以对数据进行一些操 作,例如:数据校验等等。当Action 执行完后要返回一个结果视图, 这个结果视图可以跟据 struts2 的配置文件中 配置,选择转发或者重定向。  
6: Java 中异常分为哪些种类 ?  
1) 按照异常需要处理的时机分为编译时异常(也叫强制性异常) 也叫 CheckedException 和运行时异常(也叫非强制性异常) 也叫 RuntimeException。只有 java 语言提供了 Checked 异常, Java 认为 Checked异常都是可以被处理的异常,所以 Java 程序必须显式处理 Checked 异常。如果程序没有处理 Checked 异常,该程序在编译时就会发生错误无法编译。这体现了 Java 的设计哲学:没有完善错误处理的代码根本没有机会被执行。对 Checked 异常处理方法有两种:
1 当前方法知道如何处理该异常,则用 try...catch 块来处理该异常。
2 当前方法不知道如何处理,则在定义该方法是声明抛出该异常。
运行时异常只有当代码在运行时才发行的异常,编译时不需要 try catch。 Runtime 如除数是 0 和数组下标越界等,其产生频繁,处理麻烦,若显示申明或者捕获将会对程序的可读性和运行效率影响很大。所以由系统自动检测并将它们交给缺省的异常处理程序。当然如果你有处理要求也可以显示捕获它们。
7: SQL 之连接查询(左连接和右连接的区别) ?
外连接:
左连接(左外连接):以左表作为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。
右连接(右外连接):以右表作为基准进行查询,右表数据会全部显示出来,左表如果和右表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。
全连接:先以左表进行左外连接,再以右表进行右外连接。
内连接:
显示表之间有连接匹配的所有行。
8: SQL 之 sql 注入 ?
通过在 Web 表单中输入(恶意) SQL 语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行 SQL 语句。举例:当执行的 sql 为 select * from user where username = “admin”or “a” =“a” 时, sql 语句恒成立,参数 admin 毫无意义。
防止 sql 注入的方式:
1. 预编译语句:如, select * from user where username = ?, sql 语句语义不会发生改变, sql 语句中变量用?表示,即使传递参数时为“admin or ‘a’ = ‘a’ ”,也会把这整体当做一个字符创去查询。
2. Mybatis 框架中的 mapper 方式中的 # 也能很大程度的防止 sql 注入($无法防止 sql 注入)。
9: Mysql 性能优化  ?
1、 当只要一行数据时使用 limit 1
查询时如果已知会得到一条数据,这种情况下加上 limit 1 会增加性能。因为 mysql 数据库引擎会在找到一条结果停止搜索,而不是继续查询下一条是否符合标准直到所有记录查询完毕。
2、 选择正确的数据库引擎
2、 Mysql 中有两个引擎 MyISAM 和 InnoDB,每个引擎有利有弊。
MyISAM 适用于一些大量查询的应用,但对于有大量写功能的应用不是很好。甚至你只需要update 一个字段整个表都会被锁起来。而别的进程就算是读操作也不行要等到当前 update 操作完 成之后才能继续进行。另外, MyISAM 对于 select count(*)这类操作是超级快的。InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用会比 MyISAM 还慢,但是支持“行锁”,所以在写操作比较多的时候会比较优秀。并且,它支持很多的高级应用,例如:事物。
3. 用 not exists 代替 not in
Not exists 用到了连接能够发挥已经建立好的索引的作用, not in 不能使用索引。 Not in 是最慢的方式要同每条记录比较,在数据量比较大的操作红不建议使用这种方式。
4. 对操作符的优化,尽量不采用不利于索引的操作符
如: in not in is null is not null <> 等某个字段总要拿来搜索,为其建立索引:
Mysql 中可以利用 alter table 语句来为表中的字段添加索引,语法为: alter table 表明
add index (字段名);

作者: 就业高冷派    时间: 2018-9-7 09:42
感谢分享
作者: 逆风TO    时间: 2018-9-7 09:43
辛苦啦!
作者: 巴拉拉小魔仙    时间: 2018-9-11 14:41

作者: 哦嗨呦    时间: 2018-9-11 15:24
顶!!!!!!!!!!
作者: 零度☆黎明    时间: 2018-9-11 18:11
不错, 不错 ..................
作者: 黑马程序员啊    时间: 2018-9-11 19:40

感谢分享....................
作者: fujiangbo    时间: 2018-9-11 19:46
感谢分享....................
作者: little_superman    时间: 2018-9-11 19:47
666666666666666666666666
作者: JavaEE风清扬    时间: 2018-9-11 19:50
谢谢楼主,辛苦了...........
作者: 耙丫丫    时间: 2018-9-11 22:11

作者: mydorling11    时间: 2018-9-11 22:29
传智我龙哥,人狠话不多
作者: 谢先森    时间: 2018-9-11 23:40
66666666666666666666666666
作者: 小公举    时间: 2018-9-12 12:11
感谢分享    辛苦啦     受益很大
作者: 淡写薰衣草的香    时间: 2018-9-12 12:17

作者: 18629541359    时间: 2018-9-12 12:24
很不错的分享,谢谢啦!
作者: 专找bug    时间: 2018-9-12 12:41

感谢分享    辛苦啦     受益很大
作者: yy1134787753    时间: 2018-9-12 13:28
感谢分享
作者: 半个程序员    时间: 2018-9-12 13:58
热爱我大黑马。。。
作者: 指间    时间: 2018-9-12 13:58
666666666666666666666666
作者: 指间    时间: 2018-9-12 14:01
666666666666666666666666
作者: 小伙啊    时间: 2018-9-12 14:12

很不错的分享,谢谢啦!
作者: xiaoheizi    时间: 2018-9-12 14:14

作者: zhaosongzhi    时间: 2018-9-12 14:17
非常非常有用,感谢分享!!!
作者: 疯子小花花    时间: 2018-9-12 14:26

作者: 你不爱我    时间: 2018-9-12 14:27
感谢                                             
作者: duanshaobo    时间: 2018-9-12 14:37
她却依然对生活放肆
作者: 致橡树    时间: 2018-9-12 14:58
1111111111111111111111111111111111111111111111111111111111
作者: 温柔一刀!喵!    时间: 2018-9-12 14:59

作者: 18309299426    时间: 2018-9-12 15:02
希望我班童鞋能够看到

作者: zhanghua342    时间: 2018-9-12 15:17
66666666666666666666666666
作者: ruoquan    时间: 2018-9-12 15:26
分享快乐,哈哈哈
作者: 举个栗子    时间: 2018-9-12 15:34

作者: 小丹子    时间: 2018-9-12 15:38
收获满满!
作者: 从容微笑    时间: 2018-9-12 15:39
顶~
作者: 同心筑梦1    时间: 2018-9-12 16:29

作者: zhuyanting    时间: 2018-9-12 16:29
感谢分享    辛苦啦
作者: 小西西哦    时间: 2018-9-12 16:39
66666666666666666666666666666666666
作者: 章鱼顶呱呱    时间: 2018-9-12 16:41
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: kdhdjdj    时间: 2018-9-12 16:44

作者: 小黑马王子abc    时间: 2018-9-12 16:50

很不错的分享,谢谢啦!
作者: 1467584    时间: 2018-9-12 17:01

作者: #风萧萧#    时间: 2018-9-12 17:12

热爱我大黑马。。。
作者: 小黑马王子abc    时间: 2018-9-12 17:13

热爱我大黑马。。。
作者: 殷凯老师    时间: 2018-9-12 17:27
666666666666666666666666666666666
作者: zplxwl    时间: 2018-9-12 19:07
很好很强大!
作者: yujq    时间: 2018-9-12 22:20
6666666666666666666666666666666
作者: json0314    时间: 2018-9-12 23:05
赞赞赞!!!
作者: json0314    时间: 2018-9-12 23:07
赞赞赞!!!
作者: 影@子~    时间: 2018-9-13 10:24
感谢分享感谢分享
作者: ouweina    时间: 2018-9-13 10:31

作者: yangyifen    时间: 2018-9-13 10:33
666666666666666666666666666666666666感谢分享666666666666
作者: 兮兮哈哈    时间: 2018-9-13 10:52
6666666666666666666666666
作者: hello!!!    时间: 2018-9-13 10:52

作者: yangyifen    时间: 2018-9-13 11:00
66666666666666感谢分享
作者: 仙人掌Sandy1    时间: 2018-9-13 11:22
热爱我大黑马。。。
作者: superbaby    时间: 2018-9-13 11:32
6666666666666666666666666
作者: 凯凯小王子    时间: 2018-9-13 13:25
6666666666666666666
作者: huochao    时间: 2018-9-13 14:26
6666666666666666666666
作者: 1098018910    时间: 2018-9-13 14:38
http://bbs.itheima.com/thread-418699-1-1.html
作者: wangxue123456    时间: 2018-9-13 16:13
到位                        
作者: 小航子    时间: 2018-9-13 17:12
感谢分享!!!
作者: 茶包哥    时间: 2018-9-13 18:02
感谢分享
作者: 25个蛋    时间: 2018-9-13 19:33

感谢分享
作者: 王航    时间: 2018-9-14 00:28

很不错的分享,谢谢
作者: 760486198    时间: 2018-9-14 00:39
作者棒棒哒
作者: dajiahao    时间: 2018-9-14 07:36
66666666666666666666
作者: SunYan    时间: 2018-9-14 09:37
黑马666666666666666666666666666666
作者: hongping    时间: 2018-9-14 09:57

作者: SharkSSB    时间: 2018-9-14 11:39

作者: pcdate    时间: 2018-9-14 13:57
66666666666666666666666
作者: 逆风TO    时间: 2018-9-18 09:18
就业高冷派 发表于 2018-9-7 09:42
感谢分享


作者: 就业高冷派    时间: 2018-9-18 09:20
逆风TO 发表于 2018-9-7 09:43
辛苦啦!

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:20
巴拉拉小魔仙 发表于 2018-9-11 14:41

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:20
哦嗨呦 发表于 2018-9-11 15:24
顶!!!!!!!!!!

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:21
零度☆黎明 发表于 2018-9-11 18:11
不错, 不错 ..................

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:21
黑马程序员啊 发表于 2018-9-11 19:40
感谢分享....................

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
fujiangbo 发表于 2018-9-11 19:46
感谢分享....................

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
JavaEE风清扬 发表于 2018-9-11 19:50
谢谢楼主,辛苦了...........

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
耙丫丫 发表于 2018-9-11 22:11

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
mydorling11 发表于 2018-9-11 22:29
传智我龙哥,人狠话不多

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
谢先森 发表于 2018-9-11 23:40
66666666666666666666666666

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:22
小公举 发表于 2018-9-12 12:11
感谢分享    辛苦啦     受益很大

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
淡写薰衣草的香 发表于 2018-9-12 12:17

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
18629541359 发表于 2018-9-12 12:24
很不错的分享,谢谢啦!

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
专找bug 发表于 2018-9-12 12:41
感谢分享    辛苦啦     受益很大

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
yy1134787753 发表于 2018-9-12 13:28
感谢分享

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
半个程序员 发表于 2018-9-12 13:58
热爱我大黑马。。。

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:23
指间 发表于 2018-9-12 13:58
666666666666666666666666

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:24
指间 发表于 2018-9-12 14:01
666666666666666666666666

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:24
kdhdjdj 发表于 2018-9-12 16:44

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:24
小伙啊 发表于 2018-9-12 14:12
很不错的分享,谢谢啦!

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:25
xiaoheizi 发表于 2018-9-12 14:14
{ ...

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:25
zhaosongzhi 发表于 2018-9-12 14:17
非常非常有用,感谢分享!!!

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:25
疯子小花花 发表于 2018-9-12 14:26

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:25
你不爱我 发表于 2018-9-12 14:27
感谢


作者: 就业高冷派    时间: 2018-9-18 09:25
duanshaobo 发表于 2018-9-12 14:37
她却依然对生活放肆

努力加油好好干!
作者: 就业高冷派    时间: 2018-9-18 09:26
致橡树 发表于 2018-9-12 14:58
1111111111111111111111111111111111111111111111111111111111


作者: 就业高冷派    时间: 2018-9-18 09:26
温柔一刀!喵! 发表于 2018-9-12 14:59


作者: 就业高冷派    时间: 2018-9-18 09:26
18309299426 发表于 2018-9-12 15:02
希望我班童鞋能够看到






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2