前言

本人情况:双非普通一本,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自行下载就好
在这里插入图片描述
在这里插入图片描述


前程有光
936 声望618 粉丝