写点什么

毕业两年面试阿里成功,月薪 36k,分享一下我的经历,锁机制(本地锁 + 分布式锁)超全分析

用户头像
极客good
关注
发布于: 刚刚

我让他分享了一下面经,发出来给大家看看:


技术四面面试题如下

一面(问了数据结构、jvm、锁等):

  • 自我介绍和项目


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


HashMap 底层如何实现?


  • Hash 一致算法?

  • 说说 HashMap 和 ConcurrentHashMap 的区别?treemap 和 HashMap 的区别?

  • java 的内存分区?

  • java 对象的回收方式,回收算法?

  • CMS 和 G1 了解吗?

  • CMS 解决什么问题,说一下回收的过程?

  • CMS 回收停顿了几次?

  • java 栈什么时候会内存溢出,java 堆呢,说一种场景?

  • 集合类如何解决这个问题(软引用和弱引用),讲下这个两个引用的区别?

  • java 里的锁了解哪些?

  • synchronized 锁升级的过程(偏向锁到轻量锁再到重量级锁),分别如何实现的,解决的是哪些问题?

  • Tomcat 的基本架构是什么?

  • 什么是类加载器?

  • 说说双亲委派模型机制?

  • GC 的机制是什么?GC 算法和回收策略?

  • 未来的职业规划?

二面(线程、数据库、缓存、协议等):

  • 讲一下项目

  • 线程池由哪些组件组成?

  • 有哪些线程池,分别怎么使用?拒绝策略有哪些?

  • 什么时候多线程会发生死锁,写一个例子?

  • Redis 的数据结构是什么?线程模型说一下?

  • 讲讲 Redis 的数据淘汰机制?

  • 说说 Redis 的数据一致性问题?

  • Redis 的分布式怎么做?

  • RPC 讲一下?

  • 三次握手和四次挥手?如果没有三次握手有问题吗?

  • Http 请求过程,DNS 解析的过程?

  • InnoDB 支持的四种事务隔离级别名称是什么?有什么区别?说说 MySQL 隔离级别?

  • 事务的特性及慢查询?

  • BTree 机制说一下?

  • 说说 MySQL 常用的优化方法

三面(分布式,消息队列等):

  • 自我介绍

  • cap 了解吗,分别指什么?

  • 强一致性和弱一致性有什么方法来实现的?

  • 负载均衡怎么实现?为什么这么做?

  • 缓存雪崩说下?

  • MySQL 主从复制怎么实现的?具体原理是什么?有什么优缺点?

  • 讲讲分布式事务?

  • 消息队列,用到什么场景(削峰,限流,异步)?

  • zk 的性能瓶颈怎么克服?

  • 讲了下 kafka,怎么保证数据不丢失?确保消息不会重复消费?

  • 消息送达确认是怎么实现的?

四面(从项目讲起):

  • 说了自己的项目

  • 主要用到的架构,做了些什么?

  • 比较复杂的业务逻辑讲一下?

  • 遇到很难解决的问题和突破收货

  • 以后的打算和未来的职业发展,谈谈自己的看法

并发编程:

  • 什么是多线程并发和并行?

  • 什么是线程安全问题?

  • 什么是共享变量的内存可见性问题?

  • 什么是 Java 中原子性操作?

  • 什么是 Java 中的 CAS 操作,AtomicLong 实现原理?

  • 什么是 Java 指令重排序?

  • Java 中 Synchronized 关键字的内存语义是什么?

  • Java 中 Volatile 关键字的内存语义是什么?

  • 什么是伪共享,为何会出现,以及如何避免?

  • 什么是可重入锁、乐观锁、悲观锁、公平锁、非公平锁、独占锁、共享锁?

  • 讲讲 ThreadLocal 的实现原理?

  • ThreadLocal 作为变量的线程隔离方式,其内部是如何做的?

  • 说说 InheritableThreadLocal 的实现原理?

  • InheritableThreadLocal 是如何弥补 ThreadLocal 不支持继承的特性?

  • CyclicBarrier 内部的实现与 CountDownLatch 有何不同?

  • 随机数生成器 Random 类如何使用 CAS 算法保证多线程下新种子的唯一性?

  • ThreadLocalRandom 是如何利用 ThreadLocal 的原理来解决 Random 的局限性?

  • Spring 框架中如何使用 ThreadLocal 实现 request scope 作用域 Bean?

  • 并发包中锁的实现底层(对 AQS 的理解)?

  • 讲讲独占锁 ReentrantLock 原理?

  • 谈谈读写锁 ReentrantReadWriteLock 原理?

  • StampedLock 锁原理的理解?

  • 谈下对基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理的理解?

  • ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全?

  • 基于链表的阻塞队列 LinkedBlockingQueue 原理。

JVM

  • Java 内存分配?

  • Java 堆的结构是什么样子的?

  • 什么是堆中的永久代(Perm Gen space)?

  • 简述各个版本内存区域的变化?

  • 说说各个区域的作用?

  • Java 中会存在内存泄漏吗,简述一下?

  • Java 类加载过程?

  • 描述一下 JVM 加载 Class 文件的原理机制?

  • 什么是类加载器?

  • 类加载器有哪些?

  • 什么是 tomcat 类加载机制?

  • 类加载器双亲委派模型机制?

  • 什么是 GC? 为什么要有 GC?

  • 简述一下 Java 垃圾回收机制?

  • 如何判断一个对象是否存活?

  • 垃圾回收的优点和原理,并考虑 2 种回收机制?

  • 垃圾回收器的基本原理是什么?

  • 垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  • 深拷贝和浅拷贝?

  • System.gc() 和 Runtime.gc() 会做些什么?

  • 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?

  • 什么是分布式垃圾回收(DGC)?它是如何工作的?

Spring

  • 为什么需要代理模式?

  • 讲讲静态代理模式的优点及其瓶颈?

  • 对 Java 接口代理模式的实现原理的理解?

  • 如何使用 Java 反射实现动态代理?

  • Java 接口代理模式的指定增强?

  • 谈谈对 Cglib 类增强动态代理的实现?

  • point cut,advice,Join point 是什么?

  • join point 和 point cut 的区别?

  • 怎么理解面向切面编程的切面?

  • 谈谈对 SpringAOP Weaving(织入)的理解?

  • 谈谈 SpringAOP Introduction(引入)的理解?

  • 讲解 OOP 与 AOP 的简单对比?

  • 讲解 JDK 动态代理和 CGLIB 代理原理以及区别?

  • 讲解 Spring 框架中基于 Schema 的 AOP 实现原理?

  • 讲解 Spring 框架中如何基于 AOP 实现的事务管理?

  • 谈谈对控制反转的设计思想的理解?

  • 怎么理解 Spring IOC 容器?点击这里统统拿走

数据库

  • MySQL 有哪些存储引擎啊?都有什么区别?

  • Float、Decimal 存储金额的区别?

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
毕业两年面试阿里成功,月薪36k,分享一下我的经历,锁机制(本地锁+分布式锁)超全分析