加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

Java高级工程师面试题总结及参考答案

发布时间:2021-01-01 10:47:55 所属栏目:运营 来源:网络整理
导读:一、面试题基础总结 1、?JVM结构原理、GC工作机制详解 答:具体参照:? ? ?,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数
副标题[/!--empirenews.page--]

一、面试题基础总结

1、?JVM结构原理、GC工作机制详解

答:具体参照:? ? ?,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 ?b、可达性分析算法(??这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:

2、Java对象的生命周期

答:创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等,具体参照:

3、Map或者HashMap的存储原理

答:HashMap是由数组+链表的一个结构组成,具体参照:

4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)

答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果

5、数据库存储日期格式时,如何考虑时区转换问题?

答:使用TimeStamp,?原因参照:

6、Java Object类中有哪些方法?

答:

7、HTTP协议,GET和POST 的区别

答:

二、线程、设计模式、缓存方面

1、SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢

答:

2、如何看待设计模式,并简单说说你对观察者模式的理解

答:? ??

3、集群环境中,session如何实现共享

答:

1、? ?

,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享

4、分布式、集群环境中,缓存如何刷新,如何保持同步?

答:

A、缓存如何刷新??1、定时刷新 ?2、主动刷新覆盖? ?,每个缓存框架都有自带的刷新机制,或者说缓存失效机制,就拿Redis和 Ehcache举例, 他们都有自带的过期机制,另外主动刷新覆盖时,只需获取对应的key进行数据的覆盖即可

B、缓存如何保持同步? ?这个redis有自带的集群同步机制,即复制功能,具体参考:? ? ? ,Ehcache也有分布式缓存同步的配置,只需要配置不同服务器地址即可,参照:

5、一条sql执行过长的时间,你如何优化,从哪些方面?

答:

1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)

2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合

3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度

4、针对数量大的表进行历史表分离(如交易流水表)

5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,mysql有自带的binlog实现 主从同步

6、explain分析sql语句,查看执行计划,分析索引是否用上,分析扫描行数等等

7、查看mysql执行日志,看看是否有其他方面的问题

个人理解:从根本上来说,查询慢是占用mysql内存比较多,那么可以从这方面去酌手考虑

三、三大框架方面问题

1、Spring 事务的隔离性,并说说每个隔离性的区别

解答:

解答:<a href="http://www.cnblogs.com/younggun/archive/2013/07/16/3193800.html" target="_blank">Spring事务详解

3、hibernate跟Mybatis/ ibatis 的区别,为什么选择?

解答:<a href="http://blog.csdn.net/firejuly/article/details/8190229" target="_blank">Hibernate与Mybatis的比较

4、Struts跟Spring mvc的优缺点,让你选会如何选

解答:<a href="http://blog.csdn.net/generalyy0/article/details/7003974" target="_blank">Spring MVC 与 Struts的区别

5、简单说说Spring 事务机制

解答:<a href="http://blog.csdn.net/pingnanlee/article/details/11488695" target="_blank">Spring事务机制

6、Spring 4.0新特性

解答:<a href="http://jinnianshilongnian.iteye.com/blog/1989381" target="_blank">Spring4新特性

四、负载均衡、集群相关

1、weblogic 负载均衡的原理和集群的配置

解答:<a href="http://blog.itpub.net/751371/viewspace-747988/" target="_blank">a、WEBLOGIC负载均衡原理?? ?<a href="http://blog.csdn.net/big1980/article/details/6291416" target="_blank">b、负载均衡和集群的配置(参考)

2、Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享?

解答:<a href="http://wenku.baidu.com/link?url=1rn43T_Fy5rHxwp3W2Sxs7yQngDWftWBYBtf3gtty3XPyTPbKHSrzUSlkyS9rk-Ctc11DV5M9ruD8C8UmyRortko2GKtlZzfB3hIzv0XPR3" target="_blank">配置参考

3、nginx配置文件详解——nginx.conf

解答:<a href="http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html" target="_blank">Nginx配置文件详细说明

五、项目优化相关

1、web如何项目优化

解答:这个我整理过一次,<a href="http://bbs.csdn.net/topics/391849317" target="_blank">web项目性能优化(整理)

2、单例模式有几种? 如何优化?

解答:<a href="http://cantellow.iteye.com/blog/838473" target="_blank">单例模式的7中用法

3、简单说说线程池的原理和实现

解答:<a href="http://blog.csdn.net/hsuxu/article/details/8985931" target="_blank">线程原理及实现

六、并发和安全方面

1、项目并发如何处理?(我们是web项目)

解答:<a href="http://blog.csdn.net/y_h_t/article/details/6322823" target="_blank">高并发量网站解决方案,另外,还有数据库乐观锁,数据库读写分离、使用消息队列、多用存储过程等等

2、简单说说功能权限存在的水平权限漏洞和垂直权限漏洞的场景和解决办法(因为我们目前权限级别就是功能权限)

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读