写点什么

分享 2021 年最新阿里 java 面试题:java 初级 + 中级 + 高级面试题(附答案),让你的面试之路畅通无阻!

用户头像
Java架构师
关注
发布于: 20 小时前

前言

今天给大家分享的是 2021 年最新阿里 java 面试题:java 初级+中级+高级面试题(附答案),让你的面试之路畅通无阻!希望大家能够喜欢!

因为内容实在是太多了,只把问题和部分答案给大家展示出来了,里面还有更加细化的内容,希望大家能够理解!!

杭州-阿里云-Java 实习生

1.List 和 Set 的区别

2.HashSet 是如何保证不重复的

3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?

4.HashMap 的扩容过程

5.HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?

6.final finally finalize

7.对象的四种引用

8.Java 获取反射的三种方法

9.Java 反射机制

10.Arrays.sort 和 Collections.sort 实现原理和区别

11.LinkedHashMap 的应用

12.Cloneable 接口实现原理

13 异常分类以及处理机制

14.wait 和 sleep 的区别

15 数组在内存中如何分配



深圳-百度-Java 中级

1.BeanFactory 和 ApplicationContext 有什么区别

2.Spring Bean 的生命周期

3.Spring IOC 如何实现

4.说说 Spring AOP

5.Spring AOP 实现原理

6.动态代理(cglib 与 JDK)

7.Spring 事务实现方式

8.Spring 事务底层原理

9.如何自定义注解实现功能

10.Spring MVC 运行流程

11.Spring MVC 启动流程

12.Spring 的单例实现原理

13.Spring 框架中用到了哪些设计模式



深圳-OPPO-Java 高级

1.Eureka 是如何进行服务注册的?

2.如果服务宕机或者无法访问了,我还去请求该服务,Eureka 会怎么处理? 会有什么现象?

3.谈谈 Eureka 的保护机制

4.Ribbon 的负载均衡是面向服务内部还是外部的?

5.Ribbon 如何实现负载均衡的?

6.如果没有 Eureka,我能直接通过 Ribbon 进行服务请求吗?

7.Hystrix 如何实现熔断?

8.怎么样才会出现熔断?

9.在 Springcloud 中,消费者调用提供者的流程是如何的?请画图

10.Redis 的集群方式有哪些?

11.Redis 的持久化方式有哪些?说说他们的具体实现。



北京-京东-Java 实习生

1.哪些情况下的对象会被垃圾回收机制处理掉?

2.哪些对象可以被看做是 GC Roots 呢?

3.对象不可达,一定会被垃圾收集器回收么?

4.讲一下常见编码方式?

5.utf-8 编码中的中文占几个字节;int 型几个字节?

6.静态代理和动态代理的区别,什么场景使用?

7.Java 的异常体系

8.谈谈你对解析与分派的认识。

9.修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象实例的时候会调用哪个 equals 方法?

10.Java 中实现多态的机制是什么?

11.如何将一个 Java 对象序列化到文件里?

12.说说你对 Java 反射的理解

13.说说你对 Java 注解的理解

14.说一下泛型原理,并举例说明

15.Java 中 String 的了解

16.String 为什么要设计成不可变的?



杭州-蚂蚁金服-资深工程师

蚂蚁 Java 一面

1. 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树( AVL 树)和弱平衡二叉树

(红黑树)有什么区别

2.B 树和 B+ 树的区别,为什么 MySQL 要使用 B+ 树

3.HashMap 如何解决 Hash 冲突

4.epoll 和 poll 的区别,及其应用场景

5.简述线程池原理,FixedThreadPool 用的阻塞队列是什么?

6.sychronized 和 ReentrantLock 的区别

7.sychronized 的自旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系

8 HTTP 有哪些问题,加密算法有哪些,针对不同加密方式可能产生的问题,及其 HTTPS 是如何保证安全传输的

蚂蚁 Java 二面

1. 设计模式有哪些大类,及熟悉其中哪些设计模式

2. volatile 关键字,他是如何保证可见性,有序性

3. Java 的内存结构,堆分为哪几部分,默认年龄多大进入老年代

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

5. 为什么 ConcurrentHashMap 底层为什么要红黑树

6. 如何做的 MySQL 优化

7. 讲一下 oom 以及遇到这种情况怎么处理的,是否使用过日志分析工具

蚂蚁 Java 三面

1. 项目介绍

2. 你们怎么保证 Redis 缓存和数据库的数据一致性?

3. Redis 缓存雪崩?击穿?穿透?

4. 你熟悉哪些消息中间件 ,有做过性能比较?



上海-拼多多-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)?它是如何工作的?


北京-字节跳动-Java 初级

1.锁可以锁在哪里?

2.怎么利用反射获取类中的对象?

3. HTTP 和 https 区别?

4.谈谈你对 TCP / IP 协议的了解

5.说说 Aop 和 IOC 的应用

6.Spring 中 bean 是线程安全的吗?

7.Maven 中 package 和 install 区别

8.过哪些设计模式?

9.简单工厂和抽象工厂的区别

10.说你常用的 Linux 基本操作命 令

11.谈 Currenthashmap 的扩容机制


深圳-腾讯-Java 高级

1.从简历项目中选一个项目,说说你在其中遇到了什么重大挑战?以及你的解决问题的思路?

2.一段代码要执行多个 redis 命令,不加锁的情况下如何保证原子性?

3.谈谈数据结构,比如二叉树、红黑树?

4.说说 B-tree、B+tree 的区别和使用场景?

5.mysql 哪个版本哪个存储引擎的索引使用的 B+tree,为什么不使用红黑树?

6.说说几种常见的消息中间件的区别?

7.rabbitmq 如何保证消息的可靠性?


因为资料内容太多了,这里就展示部分给大家!望理解!

点赞收藏后添加小助理 WX:MXC1146 免费领取

发布于: 20 小时前阅读数: 14
用户头像

Java架构师

关注

Java架构师,高并发,高可用,分布式 2020.03.18 加入

一起进步!

评论

发布
暂无评论
分享 2021 年最新阿里 java 面试题:java 初级 + 中级 + 高级面试题(附答案),让你的面试之路畅通无阻!