双非本科,加入了无数场面试,以下是最近面阿里的总结:
阿里
面经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地址