前言
本人情况:双非普通一本,JAVA后台开发,第一次面试,面的不是很好...
项目相关:
简单介绍自己做的项目以及特点
说说同时购物系统两个人同时付款时如何处理?答了加锁,还有消息队列,但是好像不是面试官要的答案,直接说了不知道..
说一说淘宝系统如何处理高并发下客户请求(这些都没有复习过,之前有看过一些,但是太紧张了,一个都答不出来)
如何提高SQL查询效率,在语句方面上的优化?
另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点这里备注csdn自行下载就好!希望大家都能找到心仪的工作!
一面
- 你 Java 是自学的吗,还是跟着学校课程学的,那你看的是哪一本书?
- 有了解 Java 的设计模式吗?
- 你觉得 Spring 框架的 Listener 是什么模式,你用过吗?你对 Spring 的了解是通过什么学习的呢?你能说一下 Listener 的执行顺序吗?
- 你了解 Spring 的 AOP 编程吗?那 AOP 有几种切面?
- 你经历里面比较自豪,或者说比较难的地方在哪里?
- 上一问我说对 Java 基础和 MySQL 这块看的比较多,然后继续追问你知道 String 类型在 JVM 里面是怎么表现得吗?
- 你对 JVM 的堆栈有了解吗?
- String 类型的变量一般存在哪里?这里引出了常量池,然后开始了夺命四连问。
- 如果我定义了一个 String 类型的私有成员 a1,我给他赋了一个初始值,比如说 "abc",然后我在另一个类里面,也有一个值为 "abc" 的成员变量 a2,如果比较 a1 == a2,它会相等吗?
- 如果我在一个方法里面定义了一个局部变量 a3,如果比较 a3 == a1,你觉得会相等吗?
- 如果 a4 = new String("abc"),你觉得这个 a4 会和 a3 相等吗?
- 那如果变量没有 final 修饰,就是 public static String a5,我在构造函数里面给 a5 赋值为 "abc",你觉得它会和 a1 相等吗?
- 你这边项目里面写的个人博客是你本科时候自己验证测试的对吧?
- Nginx 在你在网上看的博客学的吗?那你能跟我说一下 Nginx 能做几层代理的转发吗?它在 OSI 的第几层?它除了应用层还有别的模式吗?它能够代理 SSH 协议吗?
- 那应用层有什么协议?
- SSH 协议你知道它工作在哪一层吗?
- WebSocket 你知道工作在哪一层吗?它跟 Socket 有什么区别?
- 你刚讲到你在 DB 这一块比较擅长,具体是哪个 DB?你看了 MySQL 什么书吗?
- MySQL 的主从你能讲一讲吗?
- MySQL 有什么命令可以拿到我当前卡住的 SQL?
- 慢查询日志怎么开?如何查看历史的慢查询语句?
- 不开慢查询的话,怎么知道 MySQL 里面哪里语句执行比较久?
- 你主要熟悉索引这一块是吧,MySQL 的 text 字段可以建索引吗?那如果我只存几个字符呢?它能设前缀索引吗?如果不是前缀索引,就是全列索引,我用 LIKE 查询,LIKE abc%,它会命中索引吗?它为什么能命中索引,匹配顺序是什么样的?如果 LIKE %abc,它会命中索引吗?
- MySQL 中 JSON 的数据格式有了解过吗?
- 你有了解 MySQL 8 的新特性吗?
- 你这里 RPC 框架也是测试项目吗?你有了解过业界的一些 RPC 框架吗?尤其是 Java 领域?
- Java 的 RMI 你了解过吗?
- RMI 和 RPC 有什么区别?
- Java 的 JMX 了解过吗?
- Java 的 Bean 有了解过吗?JavaBean 是什么?JavaBean 要符合什么样的条件?
- 你这边有参加什么比赛吗?
- 你对消息队列有了解吗?你了解过现有的消息队列吗?
- 数据结构这一块我问一个问题,如果我现在有一个矩阵运算,我希望你用 Java 来实现,你会怎么去设计这个数据结构?运算过程怎么运算?你觉得是用数组好还是用 List 好?
- Java 里面,如果我要对一个 List 进行排序,你知道它内部是怎么实现 sort() 方法的吗?它里面除了快排还有什么排序?它通过什么来判断调用哪种类型的排序?
- 我看你这里写着喜欢关注一些新技术的发展动向,这一点我比较好奇在你眼里什么算是新技术,你会关注哪些方面?新技术就 Java?
- 开始怼 Java 的版本了,ArrayList<Integer> list = new ArrayList<>(); 后面尖括号不用写类型,这个特性是什么时候出现的?
Modules 描述文件你知道是什么时候出现的吗?
永久代是在哪个版本去掉的?MetaSpace 是什么时候出现的?MetaSpace 大小一般建议设置为多少?它有可能会爆吗?
- 如果物理机有 11G 内存,堆设置了 10G,MetaSpace 设置了 128M,它有可能发生 OOM 吗?什么情况会发生?
对内存泄漏有了解吗?
二面
- 上来先来两道算法题leetcode121买股票1和122买股票2(当时紧张了,第二个差点没整出来,第一个还写的n2的,没优化出来,这块花了20分钟)
- 项目里面提到了用session,问了我session存在哪里了。
- 你听说过CSRF攻击吗,因为跟session有关。(攻击者获取到了用户的session,然后伪造用户请求。他说不太准确。事后查了一下:要让客户访问虚假网站,然后浏览器默认会带上cookie,虚假网站再直接向正规网站提交,伪造用户请求)。
- 你一面感觉怎么样?我说没问什么基础(我说出这,就感觉不对头,咋把实话说出来了。他就跟我说英雄无用武之地是吧,咱按照简历慢慢来)
- 你跟我说说tcp三次握手为什么握三次?(谢希仁计算机网络那个背了,不行。我又说为了确认序列号,然后又来了几个回合,也没答明白。)
- 手写个单例吧,然后说说volatile什么作用。
- 线程池是什么作用,为什么要用线程池,你说说线程池的几个参数。
- 说说java的GC。
- 出了个sql题,怎么建索引。有一个订单表,有用户的属性和日期。现在有三个sql查询,
- 查某个用户的所有订单
- 查某个date的所有订单
- 查某个用户最近一个月的所有订单
- 当时我说建三个索引,后来反问的时候,他提醒了我一下最左前缀,我才反应过来,两个就够。(date和id-date)
- 反问:什么部门?飞书。
- 真的很快嗷,十分钟后hr就来电话,告诉我通过了。
三面
- (仅记录没有回答上来的,可能有些漏掉了)
- 扩展类加载器加载什么
- .双亲委派机制可以打破吗,如何打破
- 索引的最左前缀
- git的本地仓库和远程仓库
- 后来查的:在本地使用git init建立了一个仓库A,就是本地仓库
- 在github上建立的仓库就是远程仓库
- .JMM
- 内存溢出遇到过吗
- 线程池的创建流程是怎样的(线程池的实现原理)
- CMS垃圾回收器
- 你用的哪个垃圾回收器
- .AQS了解吗
- ArrayList和LinkedList怎样实现线程安全
- 线程安全的list还有哪些,说了一个,问我还有吗
- .遇到过事务失效的情况没
- .HashMap线程不安全问题,我说jdk1.7扩容会造成死循环,问我死循环的具体流程讲一下
- .MySQL如何实现可重复读
- 重写equals方法需要重写hashcode方法嘛(这块部分我回答的有点繁琐,下来我再看一下)
总结
最后我为大家准备了ava核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!
有需要的朋友点这里备注csdn自行下载就好
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。