面试时间
====
HR面完后,等了一个礼拜多,以为凉凉了,没想到收到惊喜,许愿成功~
-
第一天:第一面 + 第二面
-
等了两天:第三面 + HR面
-
过了一周后:等来了意向书
第一面
===
第一面我觉得应该是基础面,重点考察的是自己技术的广度 和一些技术的掌握情况,一面小哥哥也没有深究于某个特定的点,面试时间大约1个小时。
-
自我介绍
-
怎么打算投递后台岗位的,没有考虑契合自己研究方向的工作
-
有了解过OAuth2.0么,说说你对OAuth2.0的理解
-
蘑菇博客开发过程中,有了解或学习其它的开源框架么
-
蘑菇博客文章发布的流程是怎么样的,是多人博客系统么
-
对其它的一些博客框架有了解么,比如hexo
-
hexo和蘑菇博客相比有什么区别呢?蘑菇博客多了哪些功能和优势
-
看你蘑菇博客用到了RabbitMQ,那谈谈为什么引入RabbitMQ?
-
RabbitMQ和其它消息队列,比如ActiveMQ,RocketMQ,Kafka有什么区别
-
Redis在你博客项目中的使用,为什么引入Redis?
-
Redis中存储的是热门文章,是通过什么来得到的?这样做会有什么问题么?
-
有听过长尾效应么?你通过推荐字段设置的推荐等级,这样会让这些文章一直保持在较高的点击量,而且热度和点击量也不会随着时间而降低,有什么解决方案么?
-
我看到你有用到JustAuth这个登录授权?说说它会存在账号泄漏的问题么?
-
下面谈谈Redis,它会存在线程切换的问题么?
-
谈谈Redis单线程模型和IO多路复用
-
Redis的大Key的问题,如果有个Value的大小是2M,会有什么问题么?最大支持的Value大小是多少?
-
谈谈Redis集群 Redis Cluster,以及主从复制原理?
-
说说Redis中的哨兵,即Redis Sentinel
-
下面来聊聊Linux,你知道Linux怎么查看当前的负载情况么?
-
你还知道其它的一些Linux命令么?
-
cat、tail、vi、vim命令的区别,分别说一说?
-
如果Linux下需要打开或者查看大文件,你会怎么做?
-
下面聊聊Http Code,你知道 3XX 状态码 对应的是什么?
-
再谈谈你知道的其它一些状态码,4XX 和 5XX?
-
下面我们来做个题目吧?语言任意,选择喜欢的(ps:其实是leetCode原题,没有做过类似的,想了几分钟没有思路,哭。。,想问问思路,然后说换一题吧,那就,事后想想还挺简单的,根据第一位排序一下就好了)
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
那么你需要给我返回 2,3
- 那就换个题目吧,看看下面这个题目,找数组出现次数最多的TOP N,回头听室友说,好像又是leetcode原题,泪目,算法能力太弱,没怎么刷题。
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
那么你需要给我返回 2,3
然后我最开始的思路就是,通过hash存储出现的次数,然后key就是数组中出现的值。最后再对hash中的次数进行排序,最后得到top N,因为时间复杂度是O(N^2),问有没有优化思路,能否优化到O(N),想了半天没有想出来,没有充分运用以及构建好的hash表
后面面试官给讲了一下思路。从数组长度向下遍历进行查找
- 反问环节,问了问面试的表现,被告知算法能力比较薄弱,以为就此凉凉。。。然后一面说这边可以让你进入下一环节,这边大概需要等5到10分钟左右
第二面
===
二面考察的是技术深度面试,面试时间大约50分钟左右
-
自我介绍
-
博客已经开源了么,用的什么开源协议,博客的用户多么?
-
看你博客中用到了Solr和ElasticSearch,谈谈它们的原理,以及倒排索引?
-
对于Solr或者ES里面用到的一些中文分词器有了解过么?
-
谈谈那些技术栈,你比较熟悉的是那些,mysql 和redis?
-
聊聊MySQL的底层索引结构,InnoDB里面的B+Tree?
-
B Tree 和 B+ Tree的区别
-
聊聊MySQL索引的发展过程?是一来就是B+Tree的么?从 没有索引、hash、二叉排序树、AVL树、B树、B+树 聊。
-
谈谈MySQL里面的事务,说说什么是事务?
-
MySQL里面有那些事务级别,并且不同的事务级别会出现什么问题?
-
谈谈可重复读和幻读的区别?
-
MySQL中如果使用like进行模糊匹配的时候,是否会使用索引?一定不会用么?(索引这块了解的太少了,二面结束后,回去恶补了一下)
-
谈谈Redis吧,在你项目中的具体使用?
-
谈谈Redis如何实现分布式锁?
-
蘑菇博客是否存在缓存不一致的情况,你是如何解决的?
-
谈谈Redis中缓存穿透的问题,以及解决的方法?
-
还有其它解决缓存穿透的方法么?布隆过滤器有了解过么?
-
Redis中大面积的缓存失效,然后请求全部打到数据库,有什么解决方法?
-
如果出现一些热点数据,比如明星之间的新闻,造成大量的吃瓜用户涌入后台,但是服务器还没有缓存对应的数据,这样可能造成数据库宕机,如何避免这样的情况?
-
聊聊 JVM的组成结构?
-
谈谈垃圾收集原理?以及垃圾收集算法
-
复制算法 和 标记整理算法?
-
为什么不在新生代使用标记整理算法?或者在老年代使用复制算法?
-
有了解过Volatile么?谈谈你对Volatile的理解
-
Volatile如何保证可见性的?以及如何实现可见性的机制。
-
如果大量的使用Volatile存在什么问题?
-
谈谈操作系统的线程,以及它的状态
-
线程和进程的区别?
-
为什么要提出多线程应用,而不是多进程应用呢?
-
Linux你平时都有用到什么命令呢?
-
如果我需要查看端口号或者进程号,你会使用什么命令?
-
谈谈你做的另外一个项目吧?稍微介绍一下
-
来吧,写个题目试试
链表的两两翻转 # 给定链表: 1->2->3->4->5->6->7 # 返回结果: 2->1->4->3->6->5->7
-
毕业时间是什么时候?现在面试的是实习岗位么?
-
反问环节:追问面试表现?告知 Redis这块掌握的还可以,但是MySQL这块显得不足。问后续的安排。
第三面
===
应该是Leader面,面试时间大概50分钟
-
自我介绍
-
好奇一下,用码云的人应该不多吧,为什么没有用Github?
-
你英文水平怎么样?
-
聊聊开源项目吧?我看这项目已经有800多赞了,你在这开源项目主要做了什么工作?
-
我们找些点来聊聊吧?先从ES和Solr开始,你们这两个都有在用么?
-
SQL的方式实现搜索,你是怎么做的呢?
-
使用like匹配的时候,会不会查询非常慢呢?
-
ES和Solr的底层都用了lunce,谈谈你对lunce的理解?
-
lunce里面也有用到分词器,比如一些新的词 “新冠肺炎” ,它能不能做到很好的划分呢?
-
除了人为的维护词库,来解决最新词语的分割,你还有知道其它什么更好的方法么?
-
你有了解过其它什么开源的分词库么?
-
谈谈字典树?
-
Solr 和 ES底层都用了Lunce,那他们两者有什么区别呢?
-
Solr所谓的集群环境 和 ES所谓的分布式环境,它们之间有什么区别呢?
-
上面你有提到微服务,你有了解过微服务是个什么样的理念么?
-
你现在的微服务,也是打包成多个jar包,部署在一个服务器上,如果服务器出现问题了,也会造成服务不可用,有没有好的解决方法呢?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算