用友一面: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版的朋友可以可以点击我的头像,私信发送【文档】即可获得完整版领取方式哦
目录一览
-
JVM
-
Java集合+多线程并发
-
Java基础+Spring原理+微服务
-
Netty与RPC+网络
-
日志+Zookeeper+Kafka
-
Rabbit+Hbase+MongoDB
-
设计模式+负载均衡
-
数据库+一致性算法
-
Java算法+数据结构+加密算法+分布式缓存
-
Hadoop+Spark+Storm
-
YARN+机器学习+云计算
内容一览
-
线程
-
Java&实现
-
Java线程池工作过程
-
Spring
-
Netty与RPC
-
网络架构
-
Rabbit
-
数据库
-
加密算法
-
云计算
如果想要摆脱内卷的束缚,那么这份P8修炼手册你或许该好好地阅读一下,完整PDF版已经整理好,可以转发此文后私信我,回复关键字【文档】无偿下载获取即可