技术面试 - Java SE

技术面试 - Java SE

背景:秋招 有些同学 没找到offer

1.自己知识储备不足

2.准备OK,但是仍然没找到offer

面试技巧(重点)、代码讲解

招聘岗位10, 50个人 : 10 + 40

不会脱颖而出

主题: 出奇制胜

1.反对和所有应聘者 千篇一律

积累: 阿里巴巴 编程规范 , 《effective java》

2.反对和所有《面试宝典》 千篇一律

建议: 只看宝典里的题目,不看答案(答案自己写)

只看题目 + github/知乎/博客

线程通信 wait()、notify()/notifyAll()

Semaphore、google guava类库Monitor

3.源码级解决问题

产生一个问题?百度、谷歌、问老师。

面试官问: 请讲讲ArrayList如何库容的?

我最初看书(看博客、文档),上面它的底层是动态数组,会在add()时 如果发现已满,则自动扩容1.5 。我还查阅了源码进行了验证,发现是在数组已满扩容,并且是通过 位移运算符扩容。

int newCapacity = oldCapacity + (oldCapacity >> 1);

4.找对时机,秀技能

每个人都有一些 独到的经验,要想办法在面试的时候 讲给面试官。

“聊聊自己的项目经验” ,讲项目,讲完的时候 加一句:我在做这个项目的时候 曾经遇到了一个bug,当时ArrayList.asList()返回一个List,当时通过阅读源码 发现 返回的LIst不是 Collection中的那个List。

5.比较通过的 秀点

优化类(JVM、SQL优化)

jvm优化:1.项目做完时,我用jmeter进行了压力测试,结果发现相应时间太慢(或者内存利用率太高) ,然后我用jvisualvm分析了下JVM的内存情况。分析后,进一步发现项目中的小对象太多了,并且发现这些小对象都是生命周期比较短的对象。然后我猜测可能就是由于短对象太多,造成了堆中新生代容量不足,进而让很多短对象逃逸到了老年代中。这样一来,新生代和老年代中的对象都会很多,就会加速GC的回收频率,从而降低系统的性能。对此,我调大了新生代的内存大小,并且调高了新生代 逃逸到老年代的 阈值。之后再测试,发现性能平稳了许多。

PS:以上短短200字,就告诉了面试官你有性能测试的良好习惯、会发现问题、分析问题,并且会JVM调优!

2.项目做完时,我用jmeter进行了压力测试,结果发现响应时间太慢。然后我用mysqldumslow工具查找到了项目中执行时间最长的那个SQL语句,因此猜测是这条SQL的性能太低,拖累了整个系统。然后我用explain查看了SQL执行计划,发现这个SQL根本没有写索引并且是大表驱动了小表,所以特别慢。之后,我给它后面的where查询字段加上了索引,并且改为了小表驱动大表。然后再次测试,响应时间就缩短了很多。

PS:这个秀点是“SQL优化”,具体流程是:定位慢SQL->使用explain查询SQL执行计划,用于分析SQL执行慢的原因->SQL优化。上述中的“小表驱动大表”等是SQL优化时的术语。

算法类的:字符串算法 (KMP算法)

6.技术沉淀

数据支撑: github、博客、专栏、微信公众号、项目发布到阿里云

7.大厂的区别

bat ,美团,字节调动,google facebook

数据结构和算法、操作系统、网络、设计模式、分布式、逻辑思维(8+11 ?)

8.心态建设

回答正确,但被面试官“否定”

1.答案来自于面试宝典,千篇一律

2.面试官自己在秀技术 ,调整好心态,不要受干扰。

正常面试官: 引导你来回答,而不是想方设法吓唬你

有没有用过List? 哪些常见子类?数组?动态扩容,不越界?

3.如果问到 自己不会的?一定要答出自己的想法/答类似的框架, 虽然没用过这个新框架,但是我用过同类产品,并且相信他们是差不多的,然后就答这个同类产品的 实现原理。

mybatis \jpa

新dao框架 ? 映射文件/注释: 实体类-表, 然后通过框架本身的api的进行crud…

MQ:rabitmq rocketmq kafka\新MQ

颜群微信157468995

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值