java面试者该准备哪些加分项技能?

在实际面试过程中,如果同一批人面试,而你有别人没有的加分技能,那么你面试大概率都是成功的,作为java技术岗,大家面试的时候,该准备哪些加分项技能?接下来,我们就来给大家讲解一下这方面的内容。

1、适当了解些分布式

在描述项目里框架技术时,最好你再带些分布式的技术。下面我列些大家可以准备的分布式技术。

反向代理方面,nginx的基本配置,比如如何通过lua语言设置规则,如何设置session粘滞。如果可以,再看些nginx的底层,比如协议,集群设置,失效转移等;

远程调用dubbo方面,可以看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化方式;

消息队列方面,可以看下kafka或任意一种组件的使用方式,简单点可以看下配置,工作组的设置,再深入点,可以看下Kafka集群,持久化的方式,以及发送消息是用长连接还是短拦截。

2、了解性能优化

在实际项目里,大多数程序员用到的可能仅仅是增删改查,当我们用Mybatis时,这个情况更普遍。不过如果你面试时也这样表现,估计你的能力就和其它竞争者差不多了。

这方面,你可以准备如下的技能:

SQL高级方面,比如group by, having,左连接,子查询(带in),行转列等高级用法;

建表方面,你可以考虑下,你项目是用三范式还是反范式,理由是什么?

尤其是优化,你可以准备下如何通过执行计划查看SQL语句改进点的方式,或者其它能改善SQL性能的方式(比如建索引等);

如果你感觉有能力,还可以准备些MySQL集群,MyCAT分库分表的技能。比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置方式。同样,如果可以,也看些相关的底层代码。

哪怕你在前三点表现一般,那么至少也能超越将近一般的候选人,尤其当你在SQL优化方面表现非常好,那么你在面试高级开发时,数据库层面一定是达标的,如果你连第四点也回答非常好,那么恭喜你,你在数据库方面的能力甚至达到了初级架构的级别。

3、通读一段底层代码,作为加分项

如果要通过阅读底层代码了解分布式组件,那难度不小,但如果如下部分的底层代码,并不难懂。

ArrayList,LinkedList的底层代码里,包含着基于数组和链表的实现方式,如果大家能以此讲清楚扩容,“通过枚举器遍历“等方式,绝对能证明自己;

HashMap直接对应着Hash表这个数据结构,在HashMap的底层代码里,包含着hashcode的put,get等的操作,甚至在ConcurrentHashMap里,还包含着Lock的逻辑。我相信,如果大家在面试中,看看而言ConcurrentHashMap,再结合在纸上边说边画,那一定能征服面试官;

大家要想提高自己的相关技能,除了要牢固基础的专业知识以外,更要多做项目,多实践提高自己的技能,这样在面试的时候才会更胜一筹哦!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java怎么做接口?java基本函数式接口

java开发有哪些课程?java开发课程介绍

eclipse怎么使用?eclipse使用教程