写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
上海-拼多多-Java高级
=============
1 、并发编程三要素?
2 、实现可见性的方法有哪些?
3 、多线程的价值?
4 、创建线程的有哪些方式?
5 、创建线程的三种方式的对比?
6 、线程的状态流转图
7 、 Java 线程具有五种基本状态
8 、什么是线程池?有哪几种创建方式?
9 、四种线程池的创建:
10 、线程池的优点?
11 、常用的并发工具类有哪些?
12 、 CyclicBarrier 和 CountDownLatch 的区别
13 、 synchronized 的作用?
14 、 volatile 关键字的作用
15 、什么是 CAS
16 、 CAS 的问题
17 、什么是 Future ?
18 、什么是 AQS
19 、 AQS 支持两种同步方式:
20 、 ReadWriteLock 是什么
21 、 FutureTask 是什么
22 、 synchronized 和 ReentrantLock 的区别
23 、什么是乐观锁和悲观锁
24 、线程 B 怎么知道线程 A 修改了变量
25 、 synchronized 、 volatile 、 CAS 比较
26 、 sleep 方法和 wait 方法有什么区别 ?
27 、 ThreadLocal 是什么?有什么用?
28 、为什么 wait() 方法和 notify()/notifyAll() 方法要在同步块中被调 用
29 、多线程同步有哪几种方法?
30 、线程的调度策略
31 、 ConcurrentHashMap 的并发度是什么
32 、 Linux 环境下如何查找哪个线程使用 CPU 最长
33 、 Java 死锁以及如何避免?
34 、死锁的原因
35 、怎么唤醒一个阻塞的线程
36 、不可变对象对多线程有什么帮助
37 、什么是多线程的上下文切换
38 、如果你提交任务时,线程池队列已满,这时会发生什么
39 、 Java 中用到的线程调度算法是什么
40 、什么是线程调度器 (Thread Scheduler) 和时间分片 (TimeSlicing) ?
41 、什么是自旋
42 、 Java Concurrency API 中的 Lock 接口 (Lock interface) 是什么?对 比同步它有什么优势?
43 、单例模式的线程安全性
44 、 Semaphore 有什么作用
45 、 Executors 类是什么?
46、线程类的构造方法、静态块是被哪个线程调用的
上海-携程-Java高级
============
1. 描述一下 JVM 加载 Class 文件的原理机制 ?
2. 什么是类加载器?
3. 类加载器有哪些?
4. 什么是 tomcat 类加载机制?
5、类加载器双亲委派模型机制?
6. Java 内存分配?
7. Java 堆的结构是什么样子的?
8. 简述各个版本内存区域的变化?
9. 说说各个区域的作用?
10. Java 中会存在内存泄漏吗,简述一下?
11. Java 类加载过程?
12. 什么是 GC? 为什么要有 GC ?
13. 简述一下 Java 垃圾回收机制?
14. 如何判断一个对象是否存活?
15. 垃圾回收的优点和原理,并考虑 2 种回收机制? 基本原理是什么?
16. 深拷贝和浅拷贝?
17. 什么是分布式垃圾回收( DGC)?它是如何工作的?
深圳-OPPO-Java高级
==============
1. 说说你的⼯作经历?
2. 项⽬主要负责哪⼏个模块?
3. 画出你项⽬的结构图
4. Eureka 是如何进⾏服务注册的?
5. 如果服务宕机或者⽆法访问了,我还去请求该服务, Eureka会怎么处理? 会有什么现象?
6. 谈谈 Eureka 的保护机制
7. Ribbon 的负载均衡是⾯向服务内部还是外部的?
8. Ribbon 如何实现负载均衡的?
9. 如果没有 Eureka ,我能直接通过 Ribbon 进⾏服务请求吗?
10. Hystrix 如何实现熔断?
11. 当服务⽆法访问时,是直接熔断还是降级?
12. 怎么样才会出现熔断?
13. 在 Springcloud中,消费者调⽤提供者的流程是如何的?请画图 springcloud 的⼯作原理
14. Redis 的集群⽅式有哪些?
15. 如果你原来读取的 Redis中的数据,它的数据的结构发⽣了变化,如何在 不改变代码的情况下进⾏处理,使下游业务不受影响?
16. Redis 的持久化⽅式有哪些?说说他们的具体实现、
17. 使⽤ Redis 的过程中有没有遇到什么问题?
18. Redis 的内存回收机制有哪些?
19. Redis 的过期策略有哪些?简单介绍下不同策略
20. 说说 Redis 的淘汰策略?淘汰的算法可以修改或者⾃⼰重写吗?
21. 你们的项⽬中消息中间件⽤的是什么?
22. 你们的 Rabbit 集群是怎么部署的?
23. Rabbit 集群之间的数据是如何同步的?同步⽅式还是异步⽅式?
24. ⼀个队列中的数据你们是存放在⼀台机⼦上还是多台机⼦上?为什么?
25. RabbitMQ 内部结构是怎么样的?请画出 RabbitMQ 的架构图
26. 你们公司的数据库有分库分表吗?如何实现的?
27. Mysql 的索引是基于什么?
28. 说说 B+ 树
29. 使⽤⾃增 ID 和 UUID 作为主键有什么不同?
30. 说说数据库的事务隔离级别有哪些?
31. 在代码中,我们如何实现事务?
32. 如果在⼀个事务中,代码业务流程很⻓,会有什么问题吗?为什么会出 现这种问题?
33. 使⽤ volatile关键字的时候有遇到过什么问题吗?为什么会出现这种问 题?
34. 请说说 volatile 的底层实现原理
35. 如何创建线程池?有什么参数?线程池的实现原理
36. 你有什么问题想问我们的吗?
深圳-丰巢科技-Java高级
==============
1.bio 与 nio 的区别
2.select 与 poll 的区别
3.zookeeper 的⼯作原理
4.cap 理论
5. ⼆段式满⾜ cap 理论的哪两个理论
6. 线程池的参数配置,为什么 java 官⽅提供⼯⼚⽅法给线程池
7. 分布式框架 dubbo 的好处,不⽤ dubbo 可不可以。为什么要使⽤分布式
8. 七个垃圾回收器之间如何搭配使⽤
9. 接⼝限流⽅案
10.ConcurrentHashMap 使⽤原理
11. 解决 map 的并发问题⽅案
12. 什么是协程,以及实现要点
13.lru cache 使⽤ hash map 的实现(算法)
14. 图的深度遍历和⼴度遍历(算法)
15. 基本排序(算法)
16. 设计模式的使⽤
17.java 8 流式使⽤
18. 说说 b+ 树?
19. 内存屏障与 volatile :
20.java 域的概念
21. 分布式设计领域的概念
22. 如何实现双 11 的购物限流( redis 实现⽅案)
23.mysql 调优
24.cdn (异地多活)
25. 进程之间的通信⽅式
26.tcp/ip 协议、 http 协议
27. 写⼀个 redis 分布式锁:
28.spring 7 种事务的传播⾏为:
29. 分布式下 down 机的处理⽅案(⼼跳检测)
30 、分析下分布式强⼀致性、弱⼀致性、最终⼀致性?
31 、 dubbo 与 zookeeper 两者作为注册中⼼的区别,假如注册中⼼挂了,消费者还能调⽤服务吗,⽤什么调⽤的
32 、 dubbo 的原理图(画出注册中⼼,消费者,⽣产者的关系图,并说出每个⻆⾊的作⽤)
33 、项⽬中有没有⽤到多线程?
34 、 HashMap 的底层原理(包括底层数据结构,怎么扩容的)
35 、 ConcurrentHashMap 的原理
36 、 分布式锁的实现
37 、分布式 session ,如何保持⼀致
38 、消息中间件都⽤到哪些,他们的区别
1. 我们知道 hashmap 线程不安全,那⽤什么类可以代替它保证线程安全呢?他们⼜是如何实现线程安全的呢?
2. 说说⼏种 GC 机制?
3. 说说⼀致性 hash ?
4. mybatis 基础知识;
5. mysql 基础知识;
6. mysql 单表达到多少数据量需要分库分表?
7. hibernate 基础知识。
8. 说说 kafka 的原理,为什么能保证这么⾼的吞吐量?
9. 对 webservice 有什么了解?
10. 说说你们公司 git 分⽀管理⽅案?
11. mysql 如何进⾏分表分库?
12. 你们如何和前端进⾏接⼝联调?
13. 说说你平时遇到的重⼤难题或者挑战,以及你解决问题的思路和流程。 平时关注⼀下公司线上问题的解决⽅案。
深圳-乐信-Java高级
============
1. 画出项⽬的架构图
2. 所处⾃⼰负责的业务模块,其中⽤到了哪些技术点?
3. 如何实现最终⼀致性分布式事务?
4. 索引的 B+ 树结构是怎样的?
5. 哪些情况下索引会失效?除了加索引优化查询,还有哪些⽅法?
6. 说说⾃⼰了解的设计模式? Spring中⽤到了哪些设计模式?⾃⼰有⽤过哪些设 计模式吗?
7.TCP 三次握⼿和四次挥⼿机制?
8.Https 原理?
9.Redis 的数据类型有哪些?与 Memcached 的区别?
10. 消息队列有⽤到吗?具体在项⽬中是怎么⽤的?如何保证消息的可靠传递?
1. 说说 java 集合,每个集合下⾯有哪些实现类,及其数据结构?
2. 介绍⼀下红⿊树、⼆叉平衡树。
3. jdk1.8中ConcurrentHashMap size ⼤于 8时会转化成红⿊树,请问有什么 作⽤,如果通过 remove 操作, size ⼩于 8 了,会发⽣什么?
4. 说说 java 同步机制, java 有哪些锁,每个锁的特性?
5. 说说 volatile 如何保证可⻅性,从 cpu 层⾯分析。
6. spring 加载 bean 的顺序?
7. 哪些对象会被存放到⽼年代?
8. 什么时候触发full gc?
9. jvm 中哪些地⽅会出现 oom ?分别说说 oom 的可能原因?
10. 我们如何发现 oom 来⾃ jvm 中哪个区域?
11. 有没有 jvm 调优经验?调优⽅案有哪些?
12. 平时有没有看过什么源码,请画出来。
13. 有没有写过或者看过 custom classloader ?
14. 介绍你最近做的⼀个项⽬,画出框架图并分析业务流程。
15. 平时看过哪些书?
深圳-商汤科技-Java高级
==============
1. 简历写什么问什么,注意所⽤技术产品的同类产品⽣态及对⽐。
2.kafka 数据分区和消费者的关系, kafka 的数据 offset 读取流程, kafka 内部如何保证顺序,结合外部组件如何保证消费者的顺序
3.cms 垃圾回收机制
4.springcloud 各个组件功能,内部细节,与 dubbo 区别, dubbo 架构, dubbo 负载策略
5.mapreduce 原理
6.nio , bio , sellector/epoll , aio , netty ⾃带编解码器, netty 优势, java 内存模型
7.akka 模型
8.java arraylist , linkedlist 区分及实现原理, hashmap 和 concurrenthashmap 区分及实现原理, concurrenthashmap 1.7 和 1.8 区分,
最后
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
- Java核心知识整理
Java核心知识
- Spring全家桶(实战系列)
- 其他电子书资料
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
y ⾃带编解码器, netty 优势, java 内存模型
7.akka 模型
8.java arraylist , linkedlist 区分及实现原理, hashmap 和 concurrenthashmap 区分及实现原理, concurrenthashmap 1.7 和 1.8 区分,
最后
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
- Java核心知识整理
[外链图片转存中…(img-HZ0aOVub-1715711541819)]
Java核心知识
- Spring全家桶(实战系列)
[外链图片转存中…(img-m3O3wUVb-1715711541819)]
- 其他电子书资料
[外链图片转存中…(img-7RvfnDnH-1715711541820)]
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
[外链图片转存中…(img-rLsEfdZo-1715711541820)]