java面试题

对于1-3年工作经验或者考察基础时可以问,3年以上的同样可以问,但要求回答得更加深入

事务,什么是事务,为何用事务 

大部分面试者,就会举各种各样的例子(比如银行存钱,这个最多)来说明这个问题,其实他们都理解.

但这不是我想要的答案,我期望的答案只有一句:"保证数据的一致性和完整性" ,可惜只有5%左右的人答出来了

这个问题可以大概了解出面试者的分析能力,以及语言总结能力,还有他们对这个玩意的理解程度

答不出减分,举例子不加分

面向切面(AOP),原理是什么 

这个就是对技能的掌握程度了

大部分又是举例子,什么找中介啊之类的, 其实就是来掩盖他们懂一点实现逻辑,但是不知道源码怎么实现的.

但还真是有学霸能把代理的原理讲出来,非常好.

答不出减分,举例子不加分,讲出原理双倍分.

两个项目之间如何通信 

很基础的问题,答上来就有分,说明你接触或者了解过网络

在上个问题基础之上问,碰到乱码怎么解决,utf-8和gbk可以直接转换么 

大部分应聘者到这里基本就开始胡扯了. 有说声明字符串编码接收的,有说改项目编码的,各种各样五花八门.

更有甚者,utf-8和gbk可以直接转换...

直接说明了他们完全没有遇到过此类问题,也并不了解编码.

答不出不减分,胡扯减分,答对双倍分.

简述一项技术或设计模式的原理 

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

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

2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合
3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度
4、针对数量大的表进行历史表分离(如交易流水表)
5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,mysql有自带的binlog实现 主从同步

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

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

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

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

答:1、Java集群之session共享    2、session多服务器共享方案,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享

使用数组实现一个队列

1.能过写出添加一个对象进队列和从队列中获取一个对象这两个方法。

2.注意到需要定义队列头的index和队列为的index两个属性变量,最后还有一个代表size的变量。

3.注意到get和remove的差别。

4.可以涉及到isfull和扩容或队尾对头index反复从0开始。





阅读更多
文章标签: 面试
个人分类: 面试
上一篇MongoDB使用示例
下一篇webSocket
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭