
用友一面:09.05
- 自我介绍
- 死锁
- 线程的状态
- 协程(不会)
- Linux掌握多少
- select、poll、epoll
- TCP三次握手、四次挥手
- 有没有抓过包?(实习的时候有过,但是也不常用)
- TCP可靠传输(校验和、超时重传、流量控制、拥塞控制)
- 二叉树遍历方式
- 怎么构造平衡二叉树。。(忘了)
- 程序的时间复杂度怎么计算
- 队列和栈有什么区别,让你构造栈怎么做
- git中的rebase命令
- Java中常见的集合,哪些是线程安全的
- 分布式事务有哪些种解决方案
- 分布式锁有几种实现方式,为什么setnx命令只能有一个设置成功
- Redis种的IO模型
- Java中的字符集采用的是哪种(不知道,我说可以自己选,UTF-8,GBK啥的,面试官说不对,让我下去了解下)
- 常见的垃圾回收器
- JVM类加载流程
- 设计原则(只知道开闭)
- 职业规划
- 反问
用友二面:09.13, 40min
- 分布式事务怎么控制的,怎么选型?
- rabbitMQ延迟消息是怎么实现的?
- rabbitMQ交换机都有哪些,都有什么特性?
- 消费者幂等性是怎么处理的?
- 怎么通过Redis保证接口的幂等性?怎么保证Redis命令的原子性?还会写lua脚本吗,哪些api?
- MySQL索引最左匹配原则
- 怎么看sql语句是否用到了索引?explain语句输出个表格后,主要需要关注哪几列?
- 写个sql,group by,having,order by
- MySQL里面的死锁是如何一般是如何造成的?怎么解决死锁的?
- MySQL里面的锁大概都有哪几种?
- 在Innodb引擎下,写个sql,根据手机号更新用户名,手机号没有加索引,是行锁还是表锁?
- HashMap两次遍历顺序是一样的吗?map扩容之后,顺序会变化吗?
- 可以用自定义对象做HashMap的key吗?
- Java中怎么复制个一模一样的对象?如果没有实现cloneable接口呢?怎么去实现一个通用的方法?
- 线程池中的一个线程发生异常了,怎么在主线程中拿到异常?
- future.get()方法是阻塞还是非阻塞的?
- Threadlocal在项目中什么场景下用到的?
- 如果主线程存了个ThreadLocal,然后主线程提交个任务给线程池,线程池里面的线程能读取到值吗?想要读取怎么办呢?
- 分布式,在网关层需要进行分发,通过什么逻辑去重写url?
- 用openFeign做调用的时候,请求头里面的信息能带过去吗?需要怎样一个方式去传递下去?
- Session跨域的问题是怎么解决的?看过redisson的源码吗?
- MySQL两个人同时修改数据,怎么保证修改正确?乐观锁是怎么设计的?如果设计一个通用框架的乐观锁?
- 你会怎么快速掌握一个新的技术框架?
- 工作以后有一些工作是不感兴趣的,是枯燥重复的,如果分配给你了你怎么办?
- 3-5年的职业规划是怎样的
- 反问

美团一面:0811,1h
- 自我介绍
- 实习相关(20min)
- 项目中线程池是怎么用的,线程池的参数,运行流程?
- 为什么阻塞队列在中间,不放在最后?
- 用的jdk是哪个版本?能聊一下你了解的java从8-18开始的一些版本特性吗?
- (字符串常量池从方法区移动到堆、方法区的实现又永久代变成元空间、java中HashMap,默认垃圾回收器从CMS变成G1,lamda表达式、stream流)
- 堆、方法区、元空间的区别和关系
- lamda是怎么实现(函数式编程)
- 内部类在jvm加载的过程?(不会,只会普通的类)
- 加载过程中可以都从哪些地方去加载文件?(代码、网络中,别的不清楚)
- java会不会动态去创建一些类?
- 能介绍一下动态代理吗?
- 网络的tcp/ip模型、分别主要进行了什么工作
- 怎么样保证tcp的可靠
- 为什么挥手四次
- MySQL的索引分类
- select * from t where id > 10 and id
- Linux进程通信方式
- 算法:二叉树层次遍历
美团二面:0815,1h
- 自我介绍
- 实习相关(5min)
- 项目相关(15min)
- StringBuilder和StringBuffer,为什么StringBuffer怎么保证的线程的安全?
- synchronized原理、锁升级
- Java异常体系大致说一下
- 泛型接触过吗,哪些第三方中间件或者框架使用到的泛型来实现的?
- 哪些方面是掌握得最好的?JVM
- 进程间的通信方式
- IO多路复用?select、poll、epoll?
- 除了Redis还有哪些场景用到了IO多路复用?
- Redis是单线程还是多线程的?
- Redis一般能支持多少的QPS请求?
- Spring中都涉及到哪些涉及模式?
- 单例是解决什么问题的?
- AOP的实现原理?
- 动态代理都有哪些方式?
- 线程的sleep和wait方法有什么区别?
- 线程都有哪些状态?
- 常见的MySQL存储引擎?
- SQL调优用过哪些,explain语句都关注哪些列?
- 数据库需要多大的数据量需要进行分库分表?
- G1垃圾回收器介绍一下
- 哪些场景下用CMS、哪些场景下用G1?
- 算法题:字符串的全排列、去重
- 最近有在学习什么新的技能吗?
- 最近一次完整地看完一本书是什么时候,什么时候?
- 对互联网加班怎么看?
- 毕业论文写完了吗?
- 在学校有参加过一些竞赛吗?
- 优点缺点?
- 反问
总结
面试,难还是不难?最终结果好还是不好?取决于面试者的底蕴(气场+技能)、心态和认知以及沟通技巧。而一些主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴)更是需要你在面试时展现出自己的能力,从而获得面试官的欣赏和肯定。
但是面试的时候,当那个笑眯眯的面试官问出那些你再熟悉不过的问题 Java 问题时,你只是感觉似曾相识,却怎么也回答不到点上。比如 HashMap 的工作原理,再或者说 volatile 的使用场景。
这个时候,你可能会怀疑自己的能力,也痛恨为什么当初自己没有好好复习。
给大家备了一份Java八股文希望能帮助到大家
由于文章篇幅有限下面就以截图方式给大家展示,需要完整PDF版的朋友可以转发此文后私信关键字【学习】即可免费领取;
目录一览











内容一览










如果想要摆脱内卷的束缚,那么这份P8修炼手册你或许该好好地阅读一下,完整PDF版已经整理好,可以转发此文后私信小编关键字【学习】无偿下载获取即可