双非本科,加入了无数场面试,以下是最近面阿里的总结:
阿里
面经 1
- 简略介绍我的项目
- 晓得哪些数据结构以及他们的特点
- 链表增删快,那如何进步其查问效率,有没有什么想法?
- B+ 树理解吗?B+ 树如何范畴查问?B+ 树进化的极其状况是什么?
- 跳表理解吗?
- 大顶堆、小顶堆理解吗?
- 实现长地址申请到服务端,而后服务端重定向短地址给客户端,如何实现长短地址的相互映射?
- 那我当初有 10 份数据,有 1000 个线程来争抢,你要怎么解决?
- 分布式是什么?为什么要分布式?分布式又会有哪些问题?分布式系统是如何实现事物的?
- Redis 集群理解吗?如何解决宕机的状况?Redis 的同步策略?
- LRU 算法理解吗?你会如何实现它?这个算法能够利用在哪些场景下?
- TCP 为什么是三次握手?两次行不行?屡次行不行?
- TCP 的安全性是如何实现的?两台服务器之间能够同时建设多条 TCP 链接吗?怎么实现的?
- 客服端输出一个网址后,是如何拿到客服想要的数据的,是怎么在网络中传输的?
- cookie 和 session
- java 有哪些锁?共享锁是什么?CAS?乐观锁和乐观锁?synchronied 的底层原理?锁降级?死锁怎么造成的?如何破解死锁?
面经 2
- Java 容器:List,Set,Map
- Map 的遍历形式
- HashMap 扩容为什么是扩为两倍?
- Java 线程同步机制(信号量,闭锁,栅栏)
- 对 volatile 的了解:罕用于状态标记
- 八种根本数据类型的大小以及他们的封装类(顺带理解主动拆箱与装箱)
- 线程阻塞几种状况?如何本人实现阻塞队列?
- Java 垃圾回收。可达性剖析 -> 援用级别 -> 二次标记(finalize 办法)-> 垃圾收集 算法(4 个)-> 回收策略(3 个)-> 垃圾收集器(GMS、G1)。
- java 内存模型
- TCP/IP 的了解
- 过程和线程的区别
- http 状态码含意
- ThreadLocal(线程本地变量),如何实现一个本地缓存
- JVM 内存区哪里会呈现溢出?
- 双亲委派模型的了解,怎么将两个全门路雷同的类加载到内存中?
- CMS 收集器和 G1 收集器
- TCP 流量管制和拥塞管制
- 服务器解决一个 http 申请的过程
- 例举几个 Mysql 优化伎俩
- 数据库死锁定义,怎么防止死锁
- spring 的 aop 是什么?如何实现的
- 面向对象的设计准则
- 策略模式的实现
- 操作系统的内存治理的页面淘汰 算法,介绍下 LRU(最近起码应用算法)
- B+ 树的特点与劣势
面经 3
- 自我介绍,说简历里没有的货色
- 说几个你最近在看的技术(MySQL,多线程)
- 口述了一个统计数据的场景题
- 如果这个统计数据场景不必 MySQL,而是用 Java 来实现,怎么做
- 如果数据量过大,内存放不下呢
- 用面向对象的思维解决下面提出的问题,创立出父类,子类,办法,说一下思路
- 下一个场景,口述了一个登录场景,同学用线程池做登录校验,会有什么问题
- 如何解决这些问题
- 你给出的计划弊病在哪里,还有哪些计划
面经 4
- 谈谈类加载机制。
- hashmap 和 concurenthashmap
- 16g 机器,让你调配 jvm 内存怎么调配。
- 机器慢了怎么排查。
- 谈谈 consul 和 zookeeper,还有服务发现机制。
- 具体阐明 raft 协定。
- 谈谈 consul 和 zookeeper 区别。
- 服务注册的时候发现没有注册胜利会是什么起因。
- 讲讲你认为的 rpc 和 service mesh 之间的关系。
本文曾经收录到 Github 仓库,该仓库蕴含 计算机根底、Java 根底、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享 等外围知识点,欢送 star~
Github 地址
如果拜访不了 Github,能够拜访 gitee 地址。
gitee 地址