最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
而界面上做的工作太多也是问题,对于界面我可以写很多很多,但是对于底层就基本上没有什么了解了。
基本了解和介绍情况后,他们让我等了一下,另外一个人很好的小哥过来2面。小哥也是基本了解了一下,说了一些,让我手写了一个方法。(虽然我能知道怎么做。。但是真的实现还是需要很扎实很细的代码思想。。)最后小哥跟我聊了我现在需要了解的,其实三年的经验对于一个人来说还是太少,可以把表层了解的很多,而接下来需要做的就是深入下去。
他也给我简单介绍了一下我目前需要学习的主要内容,和可以努力的方向和方法。我觉得这才是这次京东面试的最大收获。
真题还原
====
Q1: HashMap的原理, 以及HashMap如何扩充bucket的大小
A1: 原理答上来了,如何扩容瞎答的,之前不知道扩容之后已经哈希的MapEntry如何处理,当时就说扩容后已经哈希的全部再计算并分配到新的桶里。
Q2: 是否对多线程有了解
A2: 了解的不深,被项目岔开没继续问
Q3: 项目中的Queue,单机容量达到上限如何集群扩展
A3: 懵逼,然后参考Hadoop的架构,把Queue分散到不同的slave server中,并用一个”负载均衡服务器” master做反向代理,master存有job到slaves的映射表,接收broswer的Job请求,把Job分派给不同的slave server。
Q4: 知道哪些负载均衡算法
A4: 不知道
Q5: Myisam, Innodb区别
A5: 当时的回答: 1、Innodb支持事务 2、Myisam支持表锁,Innodb支持行锁 3、Myisam数据索引一起存储,Innodb数据索引分开存储
Q6: Mysql索引的分类(Btree, hash),各自使用什么情况
A6: 没答好,当时回答说Mysql只有内存表支持hash索引(似乎并不是),面试官表示没听说Mysql内存表
Q7: Btree的查找原理:
A7: 没答上来,只大概叙述了一下B+tree的结构,每个子节点有一个指针指向兄弟节点。
Q8: Spring的原理(AOP IOC), AOP的原理
A8: AOP实现原理是代理,给他讲了一下代理模式,然后嘴贱的说了一句AOP是基于cglib的动态代理实现的。
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**