首页 > 编程语言 > 详细

2019秋招Java面经

时间:2018-09-25 20:08:48      阅读:145      评论:0      收藏:0      [点我收藏+]

2019秋招Java面经(凭记忆回忆, 可能不准)

随着我们从大三升到大四...秋招也开始了. 秋招进行的还比较顺利, 刚开始没几天, 我的秋招就结束了.

到现在我玩了差不多十多天了, 总想着总结一下面经, 一直懒. 现在就以这篇面经来宣告我的秋招结束吧.....

我在整个秋招期间, 只面了四家公司(贝壳 去哪儿 美团 百度金融. 目前在技术面没有挂过...), 不喜欢收割offer, 觉得没意思而且浪费时间, 我只去参加自己中意的公司的面试.

而且我也不看钱(年薪二十万以上就可以了, 挣大钱是以后的事情), 我现在更关注公司的技术对我的发展会不会有很多帮助. 

学历情况

双非, 本科

算法学习情况

剑指offer只看了前4道题  (现在是看到了第9题了).

左程云的书只看了前2道题.

贝壳一面(大概80分钟?)

这是我秋招面的第一个公司, 而且也是发挥最好的面试. 完全由我自己发挥, 让我发挥自己的擅长之处.

1.面试官笑

我傻笑

2. 请你自我介绍吧

balabala.....(我哪方面怎么怎么厉害, 多厉害什么的)

3. Java集合你都熟悉哪些

util包下的基本都说了...看过几个源码

4. 请你介绍一下HashMap和jdk里与其结构相似的集合

我就讲了讲Hash的冲突解决方法都有哪些, HashMap采用的是链表解决...红黑树优化....负载因子和扩容策略, 连续扩容到64之类的...也就是介绍了各个变量的作用..

然后说了说 jdk7 和 jdk8 两个版本之间HashMap的区别.

讲了讲和HashTable的区别.

和ConcurrentHashMap的区别.

和IdentityHashMap的区别,

和WeakHashMap的区别. 然后聊了一下Weak弱引用.

接着又说了HashSet等set集合底层使用的是HashMap.

5. 讲讲你实习中在公司做的这个项目.

balabala....(就是涉及到 分布式, netty, rpc, protobuf, http, redis, lru缓存 这几个关键词...)

6. 你对synchronized关键词的了解和对并发的看法.

谈了一下多线程的概念, 线程和进程的区别. 举了一个死锁的demo, 举了一个线程不安全的demo.

然后我就开始介绍synchronized关键词, 我还比较擅长这块, 就答得比较多:

     1> 讲了讲锁的语义.

     2> synchronized关键词加在成员方法上的时候, 底层是在方法表的访问标志中增加了ACC_SYNCHORONIZED.

     3> synchronized关键词用在代码块的时候, 底层是直接在上下代码中插入了monitorenter和monitorexit. 

     4> 其实本质上都是moniter.

     5> 还讲了一下synchronized加在静态方法(类方法)上和成员方法上的区别.

     6> synchronized相关的知识点--对象头结构

     7> 偏向锁  轻量级锁  重量级锁的 场景和升级的情况. 而且只可升级不可降级

     8> synchronized相关的jvm参数   比如关闭偏向锁 -XX:UseBiasedLocking=false  之类的...还有更改默认自旋次数的一个...忘了...

     9> wait()方法的底层实现. 讲了讲底层的 _EntryList  和 WaitSet

    10> 说了说我的理解: 为什么对象都可以作为synchronized代码块的锁. 为什么wait方法是在Object类下

     11> 和lock的区别. 比如不能响应中断什么的...

     12> 锁的粗化

     13> 锁的细化

     14> 自旋优化

     15> 锁消除. 用StringBuffer举的例子.

7. 写个sql查询.

我: sql不太会, nosql比较会. 

面试官: 没事, 给你个简单的俩表连接查询

8. nosql你是熟悉哪种?

我: redis

9. 讲讲redis任意一个数据结构吧

我挑了最简单的SDS讲的...跟java的AbstractStringBuilder作对比, 讲了讲两个的扩容策略和细节上的区别.

10. redis的字典和java的HashMap做个比较吧

(我当时没想出来...面试官说了值后我才想起来....扩容的时候增量同步之类的...)

11. redis的持久化

讲了两种持久化的格式, 和优缺点, 和新版的优化. (之前可以肉眼看持久化文件的, 所以就讲了讲持久化文件的格式....现在不行了, 好久都忘了)

12. 线程池你用过吗?

我就介绍了一下java的线程池ThreadPoolExecutor里的每个参数...

13. 介绍一下线程池的拒绝策略...

我就讲了jdk实现的四种. 然后讲了一下我再github上看到的另一种实现...就是放进新队列里, 以更低优先权的方式进行调度.

14. 线程池什么时候回收线程? 怎么回收线程?

这块没答好....不太会...

15. 链表如何优化查询效率

跳跃表

16. 来写个代码吧. 手写个小算法. 两个有序链表合并为一个有序链表.

送分题...假装不会...一脸认真地写....

贝壳二面

未完待续.....

2019秋招Java面经

原文:https://www.cnblogs.com/noKing/p/9702957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!