其他分享
首页 > 其他分享> > 两个月就拿到了字节offer,大厂面试也不过如此!面试题自测

两个月就拿到了字节offer,大厂面试也不过如此!面试题自测

作者:互联网

前言

熟练的掌握Java的核心底层技能很重要,这样才能从容面对面试官的种种考验,小编整理的这份面试清单都是各大厂的面试真题总结得出来的,感兴趣的挑战自己的技术层级的就赶紧来试试吧,大厂一定是行业发展的方向标杆!

阿里一面

1、如何查看线程死锁

2、还读过哪些框架源码介绍⼀下你还熟悉的

这个问题⽐较⼴泛,你即可以说:HashMap、线程池等JDK⾃带的源码,也可以说Mybatis、Spring Boot、Spring Cloud、消息队列等开发框架或中间件的源码

3、说⼀下HashMap的Put⽅法

a. 如果是JDK1.7,则先判断是否需要扩容,如果要扩容就进⾏扩容,如果不⽤扩容就⽣成Entry对象,并使⽤头插法添加到当前位置的链表中
b. 如果是JDK1.8,则会先判断当前位置上的Node的类型,看是红⿊树Node,还是链表Node

4、说⼀下ThreadLocal

5、Dubbo的负载均衡策略

Dubbo⽬前⽀持:

6、Dubbo是如何做系统交互的

Dubbo底层是通过RPC来完成服务和服务之间的调⽤的,Dubbo⽀持很多协议,⽐如默认的dubbo协议,⽐如http协议、⽐如rest等都是⽀持的,他们的底层所使⽤的技术是不太⼀样的,⽐如dubbo协议底层使⽤的是netty,也可以使⽤mina,http协议底层使⽤的tomcat或jetty。

服务消费者在调⽤某个服务时,会将当前所调⽤的服务接⼝信息、当前⽅法信息、执⾏⽅法所传⼊的⼊参信息等组装为⼀个Invocation对象,然后不同的协议通过不同的数据组织⽅式和传输⽅式将这个对象传送给服务提供者,提供者接收到这个对象后,找到对应的服务实现,利⽤反射执⾏对应的⽅法,得到⽅法结果后再通过⽹络响应给服务消费者。

当然,Dubbo在这个调⽤过程中还做很多其他的设计,⽐如服务容错、负载均衡、Filter机制、动态路由机制等等,让Dubbo能处理更多企业中的需求。

Java学习笔记共享地址:阿里、京东、蚂蚁等大厂面试真题解析

7、说⼀下ArrayList和LinkedList区别

8、说⼀下Spring的事务机制

9、什么时候@Transactional失效

因为Spring事务是基于代理来实现的,所以某个加了@Transactional的⽅法只有是被代理对象调⽤时,那么这个注解才会⽣效,所以如果是被代理对象来调⽤这个⽅法,那么@Transactional是不会⽣效的。

同时如果某个⽅法是private的,那么@Transactional也会失效,因为底层cglib是基于⽗⼦类来实现的,⼦类是不能重载⽗类的private⽅法的,所以⽆法很好的利⽤代理,也会导致@Transactianal失效。

10、说⼀下JVM中,哪些是共享区,哪些可以作为gc root

1、堆区和⽅法区是所有线程共享的,栈、本地⽅法栈、程序计数器是每个线程独有的

2、什么是gc root,JVM在进⾏垃圾回收时,需要找到“垃圾”对象,也就是没有被引⽤的对象,但是直接找“垃圾”对象是⽐较耗时的,所以反过来,先找“⾮垃圾”对象,也就是正常对象,那么就需要从某些“根”开始去找,根据这些“根”的引⽤路径找到正常对象,⽽这些“根”有⼀个特征,就是它只会引⽤其他对象,⽽不会被其他对象引⽤,例如:栈中的本地变量、⽅法区中的静态变量、本地⽅法栈中的变量、正在运⾏的线程等可以作为gc root。

11、介绍⼀下Spring,读过源码介绍⼀下⼤致流程

12、线程之间如何进⾏通讯的

13、你们项⽬如何排查JVM问题

阿里二面

1、聊聊你最有成就感的项⽬

2、Spring中后置处理器的作⽤

3、说说你了解的分布式锁实现

4、Innodb是如何实现事务的

5、Redis集群策略

6、Jdk1.7到Jdk1.8 java虚拟机发⽣了什么变化?

7、如何实现AOP,项⽬哪些地⽅⽤到了AOP

8、Mysql数据库中,什么情况下设置了索引但⽆法使⽤?

9、Redis的数据结构及使⽤场景

10、Jdk1.7到Jdk1.8 HashMap 发⽣了什么变化(底层)?

11、⾃⼰最有挑战的项⽬、难点

12、说说常⽤的SpringBoot注解,及其实现

蚂蚁一面

1、强平衡⼆叉树和弱平衡⼆叉树有什么区别

2、sychronized和ReentrantLock的区别

3、B树和B+树的区别,为什么Mysql使⽤B+树

4、HTTPS是如何保证安全传输的

5、⼆叉搜索树和平衡⼆叉树有什么关系?

6、sychronized的⾃旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系

7、简述线程池原理,FixedThreadPool⽤的阻塞队列是什么

8、epoll和poll的区别

蚂蚁二面

1、volatile关键字,他是如何保证可⻅性,有序性

2、Java的内存结构,堆分为哪⼏部分,默认年龄多⼤进⼊⽼年代

3、Mysql的锁你了解哪些

4、设计模式有哪些⼤类,及熟悉其中哪些设计模式

5、ConcurrentHashMap 如何保证线程安全,jdk1.8 有什么变化

京东一面

1、SpringCloud各组件功能,与Dubbo的区别

2、谈谈ConcurrentHashMap的扩容机制

3、项⽬及主要负责的模块

4、深拷⻉和浅拷⻉

5、遇到过哪些设计模式?

6、Java死锁如何避免?

7、Spring中Bean是线程安全的吗?

8、Maven中Package和Install的区别

9、说说你常⽤的Linux基本操作命令

10、如果你提交任务时,线程池队列已满,这时会发⽣什么

京东二面

1、泛型中extends和super的区别

2、Spring⽤到了哪些设计模式

3、说说类加载器双亲委派模型

4、简述CAP理论

5、画出项⽬架构图,介绍⾃⼰所处的模块

6、TCP的三次握⼿和四次挥⼿

7、图的深度遍历和⼴度遍历

8、消息队列如何保证消息可靠传输

9、并发编程三要素?

10、快排算法

由于篇幅有限,小编这里把剩下的面试真题整理成了文档,该文档获取方式:阿里、京东、蚂蚁等大厂面试真题解析

标签:面试题,offer,对象,Spring,事务,链表,ThreadLocal,线程,自测
来源: https://blog.csdn.net/QLCZ0809/article/details/119420030