关于java:2021最新Java后端面经合集-阿里腾讯百度字节

此面经合集次要来源于网络(牛客网、博客网站等),集体按公司进行分类整理。

阿里

面经1

1.简略介绍我的项目
2.晓得哪些数据结构以及他们的特点
3.链表增删快,那如何进步其查问效率,有没有什么想法?
4.B+树理解吗?B+树如何范畴查问?B+树进化的极其状况是什么?
5.跳表理解吗?
6.大顶堆、小顶堆理解吗?
7.实现长地址申请到服务端,而后服务端重定向短地址给客户端,如何实现长短地址的相互映射?
8.那我当初有10份数据,有1000个线程来争抢,你要怎么解决?
9.分布式是什么?为什么要分布式?分布式又会有哪些问题?分布式系统是如何实现事物的?
10.Redis集群理解吗?如何解决宕机的状况?Redis的同步策略?
11.LRU算法理解吗?你会如何实现它?这个算法能够利用在哪些场景下?
12.TCP为什么是三次握手?两次行不行?屡次行不行?
13.TCP的安全性是如何实现的?两台服务器之间能够同时建设多条TCP链接吗?怎么实现的?
14.客服端输出一个网址后,是如何拿到客服想要的数据的,是怎么在网络中传输的?
15.cookie和session
16.java有哪些锁?共享锁是什么?CAS?乐观锁和乐观锁?synchronied的底层原理?锁降级?死锁怎么造成的?如何破解死锁?

面经2

校招

1、Java容器:List,Set,Map
2、Map的遍历形式
3、HashMap扩容为什么是扩为两倍?
4、Java线程同步机制(信号量,闭锁,栅栏)
5、对volatile的了解:罕用于状态标记
6、八种根本数据类型的大小以及他们的封装类(顺带理解主动拆箱与装箱)
7、线程阻塞几种状况?如何本人实现阻塞队列?
8、Java垃圾回收
可达性剖析->援用级别->二次标记(finalize办法)->垃圾收集 算法(4个)->回收策略(3个)->垃圾收集器(GMS、G1)。
9、java内存模型
10、TCP/IP的了解
11、过程和线程的区别
12、http状态码含意
13、ThreadLocal(线程本地变量),如何实现一个本地缓存
14、JVM内存区哪里会呈现溢出?
15、双亲委派模型的了解,怎么将两个全门路雷同的类加载到内存中?
16、CMS收集器和G1收集器
17、TCP流量管制和拥塞管制
18、服务器解决一个http申请的过程
19、例举几个Mysql优化伎俩
20、数据库死锁定义,怎么防止死锁
21、spring的aop是什么?如何实现的
22、面向对象的设计准则
23、策略模式的实现
24、操作系统的内存治理的页面淘汰 算法 ,介绍下LRU(最近起码应用算法 )
25、B+树的特点与劣势

面经3

校招

自我介绍,说简历里没有的货色
说几个你最近在看的技术(MySQL,多线程)
口述了一个统计数据的场景题
如果这个统计数据场景不必MySQL,而是用Java来实现,怎么做
如果数据量过大,内存放不下呢
用面向对象的思维解决下面提出的问题,创立出父类,子类,办法,说一下思路
下一个场景,口述了一个登录场景,同学用线程池做登录校验,会有什么问题
如何解决这些问题
你给出的计划弊病在哪里,还有哪些计划

面经4

校招

谈谈类加载机制。

hashmap和concurenthashmap

16g机器,让你调配jvm内存怎么调配。

机器慢了怎么排查。

谈谈consul和zookeeper,还有服务发现机制。

具体阐明raft协定。

谈谈consul和zookeeper区别。

服务注册的时候发现没有注册胜利会是什么起因。

讲讲你认为的rpc和service mesh之间的关系。

面经5

两年教训,社招

一面
1.synchronized原理,怎么保障可重入性,可见性,抛异样怎么办,和lock锁的区别,2个线程同时拜访synchronized的静态方法,2个线程同时拜访一个synchronized静态方法和非静态方法,别离怎么进行

2.volatile作用,原理,怎么保障可见性的,内存屏障

3.你理解那些锁,乐观锁和乐观锁,为什么读要加锁,乐观锁为什么适宜读场景,写场景不行么,会有什么问题,cas原理

4.什么状况下产生死锁,怎么排查,怎么解决

5.一致性hash原理,解决什么问题,数据歪斜,为什么是2的32次方,20次方能够么

6.redis缓存穿透,布隆过滤器,怎么应用,有什么问题,怎么解决这个问题

7.redis分布式锁,过期工夫怎么定的,如果一个业务执行工夫比拟长,锁过期了怎么办,怎么保障开释锁的一个原子性,你们redis是集群的么,讲讲redlock算法

8.mysql事务,acid,实现原理,脏读,脏写,隔离级别,实现原理,mvcc,幻读,间隙锁原理,什么状况下会应用间隙锁,锁生效怎么办,其余锁理解么,行锁,表锁

9.mysql索引左前缀原理,怎么优化,哪些字段适宜建索引,索引有什么优缺点

10.线上遇到过慢查问么,怎么定位,优化的,explain,using filesort示意什么意思,产生起因,怎么解决

11.怎么了解幂等性,有遇到过理论场景么,怎么解决的,为什么用redis,redis过期了或者数据没了怎么办

二面
1.hashmap原理,put和get,为什么是8转红黑树,红黑树节点增加过程,什么时候扩容,为什么是0.75,扩容步骤,为什么分高下位,1.7到1.8有什么优化,hash算法做了哪些优化,头插法有什么问题,为什么线程不平安

2.arraylist原理,为什么数组加transient,add和get工夫复杂度,扩容原理,和linkedlist区别,原理,别离在什么场景下应用,为什么

3.理解哪些并发工具类

4.reentrantlock的实现原理,加锁和开释锁的一个过程,aqs,偏心和非偏心,可重入,可中断怎么实现的

5.concurrenthashmap原理,put,get,size,扩容,怎么保障线程平安的,1.7和1.8的区别,为什么用synchronized,分段锁有什么问题,hash算法做了哪些优化

6.threadlocal用过么,什么场景下应用的,原理,hash抵触怎么办,扩容实现,会有线程平安问题么,内存透露产生起因,怎么解决

7.垃圾收集算法,各有什么优缺点,gc roots有哪些,什么状况下会产生full gc

8.理解哪些设计模式,工厂,策略,装璜者,桥接模式讲讲,单例模式会有什么问题

9.对spring aop的了解,解决什么问题,实现原理,jdk动静代理,cglib区别,优缺点,怎么实现办法的调用的

10.mysql中有一个索引(a,b,c),有一条sql,where a = 1 and b > 1 and c =1;能够用到索引么,为什么没用到,B+树的构造,为什么不必红黑树,B树,一千万的数据大略多少次io

11.mysql聚簇索引,笼罩索引,底层构造,主键索引,没有主键怎么办,会本人生成主键为什么还要自定义主键,主动生成的主键有什么问题

12.redis线程模型,单线程有什么优缺点,为什么单线程能保障高性能,什么状况下会呈现阻塞,怎么解决

13.kafka是怎么保障高可用性的,讲讲它的设计架构,为什么读写都在主分区,这样有什么优缺点

14.理解DDD么

三面
1.线程有哪些状态,期待状态怎么产生,死锁状态的变动过程,停止状态,interrupt()办法

2.你怎么了解线程平安,哪些场景会产生线程平安问题,有什么解决办法

3.mysql多事务执行会产生哪些问题,怎么解决这些问题

4.分库分表做过么,怎么做到不停机扩容,双写数据失落怎么办,跨库事务怎么解决

5.你们用的redis集群么,扩容的过程,各个节点间怎么通信的

6.对象肯定调配在堆上么,JIT,分层编译,逃逸剖析

7.es的写入,查问过程,底层实现,为什么这么设计

8.es集群,脑裂问题,怎么产生的,如何解决

9.while(true)外面始终new thread().start()会有什么问题

10.socket理解么,tcp和udp的实现区别

11.设计一个秒杀零碎能接受千万级并发,如果redis也扛不住了怎么办

12.我的项目介绍

四面
1.讲讲你最相熟的技术,jvm,mysql,redis,具体哪方面

2.new Object[100]对象大小,它的一个对象援用大小,对象头构造

3.mysql主从复制,主从延时怎么解决

4.怎么保障redis和mysql的一致性,redis网络起因执行超时了会执行胜利么,那不胜利怎么保证数据一致性

5.redis长久化过程,aof长久化会呈现阻塞么,个别什么状况下应用rdb/aof

6.线上有遇到大流量的状况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过起因么,你们过后怎么解决的

7.限流怎么做,如果让你设计一个限流零碎,怎么实现

8.dubbo和spring cloud区别,具体区别,别离什么场景应用

9.给了几个场景解决分布式事务问题

五面

1.怎么了解用户态,内核态,为什么要分级别,有几种转换的形式,怎么转换的,转换失败怎么办

2.怎么了解异样,它的作用是什么,你们工作中是怎么应用的

3.你们用redis么,用来做什么,什么场景应用的,遇到过什么问题,怎么解决的

4.jvm元空间内存构造,永恒代有什么问题

5.你平时开发中怎么解决问题,如果当初线上有一个告警,你的解决思路,过程

6.你们为什么要用mq,遇到过什么问题么,怎么就解决的

腾讯

面经1

一面
我的项目:
你为啥用redis做缓存
你本人测的他的并发量有多少-5000
有没有思考怎么优化
10万申请进来会面临什么问题?
数据量多的话,销峰-令牌桶
令牌桶在哪实现-nginx
数据结构:
二叉排序树和均衡二叉树的区别
100万数据里找反复数据 -set
set怎么实现-hashmap
还能够怎么做 -hashmap分文件再set
这相当于两次hash,有啥长处
计网:
三次握手都做了什么?
报文里有啥
校验和怎么实现?
网络呈现拥塞怎么办-拥塞机制
怎么判断是否产生拥塞
门限值指的是什么-包的个数还是包的数据量

面经2

校招,云平台

自我介绍
TOP K问题
理解Nginx,那设计一个具体的负载平衡策略计划
理解MySQL主从复制,那本人设计一个主从复制计划
写代码,实现BlockingQueue

面经3

两年教训,社招

一面

1、mysql索引构造?

2、redis长久化策略?

(1)RDB:快照模式是间接把内存中的数据保留到一个dump的文件中,定时保留,保留策略。当Redis 须要做长久化时,Redis会fork一个子过程,子过程将数据写到磁盘上一个长期RDB文件中。当子过程实现写临时文件后,将原来的RDB替换掉。

(2)AOF:把所有的对Redis的服务器进行批改的命令都存到一个文件里,命令的汇合。应用AOF做长久化,每一个写命令都通过write函数追加到appendonly.aof 中。aof的默认策略是每秒钟fsync一次,在这种配置下,就算产生故障停机,也最多失落一秒钟的数据。毛病是对于雷同的数据集来说,AOF的文件体积通常要大于RDB文件的体积。依据所应用的fsync策略,AOF的速度可能会慢于RDB。Redis默认是快照RDB的长久化形式。

3、zookeeper节点类型说一下;

4、zookeeper选举机制?

5、zookeeper主节点故障,如何从新选举?

6、syn机制?

7、线程池的外围参数;

8、threadlocal的实现,原理,业务用来做什么?

9、spring DI的原理;

10、四次挥手;

11、gc root抉择;

12、标记革除算法的过程,标记分明算法如何给对象分配内存空间?

13、cms算法的毛病;

二面
1、CorruntHashmap了解

2、ThreadLocal原理

3、hashmap;

4、Java数据类型,同步机制;

5、讲讲贪婪算法;

6、如果线上用户呈现502谬误你怎么排查?

7、并发量很大,服务器宕机。你会怎么做?

三面
1、syn和lock的区别,哪个更好?怎么抉择?

2、hashmap源码,为什么8个节点变成红黑树又为什么到了6个节点才复原为链表?

3、缓存穿透,怎么解决?

4、负载平衡算法,实现;

5、轮询和随机的毛病;

6、分布式服务治理;

7、dns迭代和递归的区别;

8、算法题:最长回文串

9、为什么连贯的时候是三次握手,敞开的时候却是四次握手?

因为当Server端收到Client端的SYN连贯申请报文后,能够间接发送SYN+ACK报文。其中ACK 报文是用来应答的,SYN报文是用来同步的。然而敞开连贯时,当Server端收到FIN报文时,很可能并不会立刻敞开SOCKET,所以只能先回复一个ACK报文,通知Client端,”你发的FIN 报文我收到了”。只有等到我Server端所有的报文都发送完了,我能力发送FIN 报文,因而不能一起发送。故须要四步握手。

面经4

一年社招

1.自我介绍 就背景进行一些发问

2.简略说说计算机网络

3.简略形容一下从浏览器输出一个地址到服务端整个交互过程

4.说说数据结构

5.操作系统用过吗

6.用过 linux 的哪些命令

7.查看一个过程监听了哪些端口

8.具体介绍我的项目(简历上的域名拜访不了)

9.解说之前工作经验中做的货色

10.做一道算法题(判断二叉树是否对称)

11.java 如何从源代码转换成机器码执行的

12.java 的击穿

13.网络的七层构造

14.tcp\udp 详解 区别

15.https 协定的交互过程

16.linux 根底命令

17.linux 开机过程

18.理解当初市面上支流的 cpu 架构

19.fpga 概念理解吗

20.市面上的图数据库

21.rdf 解说

22.图数据库底层存储

23.b 树,b+树的概念和区别

24.红黑树均衡二叉树优缺点和利用场景

25.有没有理解 docker 等云技术

字节跳动

面经1

1.自我介绍

2.业务局部:

  • 2.1 堆和栈的区别
  • 2.2 调用一个函数在堆中的过程
  • 2.3 密码学 中间人攻打、RSA、DSA明码的差异、加密过程,私钥加密公钥加密,数字签名的过程(跟自己网络空间平安背景无关)
  • 2.4 键入一个URL
  • 2.5 彩虹表、 kerberos、ECC(椭圆曲线加密)

    3.算法题:

    1.一个无序数组,求其topK

    2.时段统计。动静布局。

面经2

一年教训,Java开发

  1. 自我介绍;
  2. 我的项目介绍;
  3. 手撕算法:NC95 最长间断子序列
  4. 手撕算法:NC91 最长递增子序列
  5. 线程和过程的区别?怎么创立线程?有哪些状态?有什么区别?
  6. Java1.8理解哪些新个性?重点讲讲HashMap和CurrentHashMap。
  7. OSI七层协定和TCP/IP五层协定有什么区别?TCP/UDP在哪一层?对TCP理解多少?

面经3

字节电商后端

算法题

  1. 求从一个树的右边的叶子节点到一个树左边的叶子节点的最短门路)
  2. 最长回文子串
  3. 给定一个数N,求(1-n)所有的可能子序列。比方给个1 返回1 给个2 返回1,2,1 2

过程和线程区别

为什么过程切换开销比线程切换开销大?

你晓得逻辑地址和物理地址么?

sql题(表T (id,name,salary,city)用SQL实现找到同时合乎城市平均工资大于5000,单人工资大于10000的人的名字)

wifi属于OSI哪一层

三次握手四次挥手相干(细节,以及为什么三次,为什么四次)

hashmap的底层原理

红黑树和二叉搜寻树,二叉树之间的区别

为什么hashmap不间接用红黑树

面经4

一面:

1.IM零碎用户登录怎么实现的?

2.登录状态是怎么保留的?session是怎么获取的?sessionid是怎么辨认的?整个流程是什么样的?有没有思考分布式session?

3.Redis的数据类型

4.Redis数据类型的底层数据结构

5.三次握手、四次挥手

6.Redis长久化机制

7.MySQL的InnoDB索引数据结构

8.哪些SQL的关键字会让索引生效

9.队列、栈、数组、链表

10.算法题:leetcode 92题

二面:

1.讲讲爬虫的形成

2.爬虫抓到的数据不荡涤吗?不去重吗?

3.对爬虫有什么更多的理解吗?

4.Linux过程间通信机制

5.过程和线程的区别

6.线程公有的数据有哪些?(不是Java线程)

7.讲一下堆排序,每次调整的工夫复杂度?堆排序是稳固的吗?

8.哈希表的原理,怎么减小哈希表的抵触,怎么保障哈希表的并行读写

9.Kafka用过吗?说说Kafka的原理?怎么保障Kafka的高可用?Kafka怎么保障音讯有序?

10.我的项目里的set实现点赞,zset实现关注,为什么?

11.zset底层实现?说一下跳表?节点的高度是多少?怎么决定节点的高度?

12.https理解吗?

13.中间人攻打晓得吗?怎么做https的抓包?https怎么篡改?

14.虚拟地址到物理地址的映射过程

15.算法题:给一个数组,建一颗最小高度的二叉树(递归和非递归)

三面:

1.介绍一下做过的我的项目,哪些挑战性比拟大,比拟有难度的

2.IM我的项目怎么用Netty的,为什么要用Netty,长连贯交互是怎么的

3.音讯怎么存储,怎么发送,怎么晓得音讯已读和未读的

4.读了5条音讯、又来5条音讯,你是怎么去更新的,你的音讯是幂等的吗?

5.我的项目里怎么用ES的,ES怎么反对搜寻的

6.技术论坛网站的评论是怎么存储的

7.查问评论是在DB里扫表查问吗?怎么展现所有的评论?性能如何?想要查问更快能够做哪些优化?

8.联合缓存和DB的时候会呈现哪些问题?要怎么解决?

9.快排理解吗?介绍一下快排?工夫复杂度是多少?为什么会进化成O(n^2)?单链表能够做快排吗?快排最外围的逻辑是什么?写一下单链表快排

面经5

一面

1、自我介绍
2、我的项目
3、volatile原理和作用
4、什么是指令重排序,举个例子
5、AQS原理
6、JVM内存模型
7、类加载过程
8、双亲委派机制
9、介绍代理模式
10、redis数据结构
11、HTTP状态码,header
12、MVCC原理
13、算法: 股票问题

二面

  1. 我的项目为啥立项,你做了什么模块
  2. 你的日志模块是怎么设计的,怎么开发的
  3. 你的token怎么做的,怎么保障惟一
  4. 你开发的业务模块怎么设计数据表的,具体用了哪些中间件
  5. mysql中inoodb的索引有哪些品种
  6. B+树索引具体是怎么实现的
  7. B树与B+树的区别
  8. 为什么B+树的两头节点不贮存数据?
  9. 给一个索引,在有的查问过程中他没有走索引查问,说说你能想到的起因
  10. 红黑树理解过么?
  11. 用过redis么?
  12. 聊一下你对git的了解
  13. git rebase与git merge的区别
  14. 聊一下你对工作流的了解

手撕算法:

给四个整数,判断是否只通过四则运算加()优先级是否运算出24

面经7

一面:
1、自我介绍
2、JAVA SDK起到的作用
3、我的项目
4、数据流(我的项目)
5、排序(介绍下你晓得的排序和复杂度)
6、Arrays.sort底层的排序算法(有三种策略)
7、堆排序基本思路
8、linux,操作系统的开机流程
9、过程和线程的区别
10、过程切换会产生什么
11、过程调度算法有哪些
12、TCP、udp区别
13、java锁,关键字区别
14、偏心锁、非偏心锁解释一下

二面:
1.算法题:由前序遍历中序遍历重建子树;
2.为什么动态类中不能应用非动态类(从类加载过程答复);
3.java类加载过程;
3.1.加载阶段中,为什么要有自定义的类加载器;
3.2.双亲委派准则的机制;
4.HashMap数据结构;
4.1.为什么小于6是链表,大于8变成红黑树;
4.2.HashMap扩容机制;
4.3.HashMap是否线程平安,例子;
4.4.ConcurrentHashMap和HashTable的区别;
4.5.ConcurrentHashMap如何保障高效,为什么是线程平安,为什么比HashTable优良,分段锁机制;
4.6.CAS能保障线程平安吗(我答复能,面试官说不能。。预计想考ABA问题),volatile关键字能保障线程平安吗;
5.随机数求根,比方根号二的值。(二分查问)
6.有n个筐,筐固定,每个筐内有不同数目的苹果,挪动苹果,使每个筐苹果均匀(挪动的代价:1~2算1步,1~3算2步)使步数最小;

三面:
1、自我介绍
2、解决什么问题,做了些什么?(我的项目)
3、多个接口,有失败怎么办(我的项目)
4、redis分布式锁怎么实现
5、工夫过期怎么办
6、ArrayList怎么扩容,工夫复杂度O(n)?插尾部O(1),均匀是多少,答案O(2)须要思考扩容。
7、HashMap底层原理
8、mysql索引什么原理、B+树
9、mysql和redis区别(讲一下各自优缺点)
10、为什么不必redis存数据?
11、算法:LRU缓存(),先讲一下再写

面经8

抖音电商

1.自我介绍
2.讲一下HashMap的put办法
3.讲一下HashMap的扩容过程
4.讲一下你自定义协定怎么解决粘包问题的?
5.算法题:LeetCode 二叉树根节点到子节点的门路和
6.mysql的索引构造
7.为什么用B+树呢?
8.having的作用
9.聚簇索引、非聚簇索引
10.聚簇索引比非聚簇索引的长处
11.mysql的四个隔离级别,利用场景
12.如何在可反复读隔离级别解决幻读问题
13.dubbo的负载平衡策略
14.java的动静代理
15.Spring哪里用到了动静代理?
16.CGlib动静代理说一下
17.MQ如何保障音讯不会失落

面经9

一面
怎么了解微服务
微服务的毛病
微服务之间怎么做负载平衡
Oauth2根本流程、原理
登录模块是怎么做的
cookie和session的区别
购物车为什么用Redis存,是永恒存储吗
为什么购物车多读多写
Redis怎么革除过期key,有哪些策略
lru是怎么的过程
Redis字典底层怎么实现的
hashtable是怎么实现的
ziplist怎么实现的
一般的哈希表怎么实现的
哈希表怎么扩容
应用MQ的益处
MQ解耦和微服务解耦的区别
算法:最长回文子串
https建设连贯的过程(SSL/TLS协商的过程)
对称加密和非对称加密的优缺点
为什么要辨别内核态和用户态
什么时候从用户态切换到内核态
你编程的状况下,零碎调用什么时候会产生

2面
手写单例模式
volatile什么作用
多线程的几种实现形式
四种形式的区别
锁用过哪些
排它锁什么意思
自旋锁什么意思
CAS相干
MySQL能够不指定主键建表吗,背地的逻辑是什么
聚簇索引和其余索引有什么区别
建惟一索引,插入数据时是怎么解决的
反复插入会报错,是怎么解决的
不同事物隔离级别的实现
lc40 组合总和II

3面
有在实习吗
面试通过后能够实习吗
做我的项目的过程中遇到过什么问题
内存泄露具体产生在哪
什么状况下会呈现多线程拜访
缓存穿透,怎么解决
缓存雪崩,怎么解决
缓存与数据库数据一致性
超卖问题怎么解决的
集群环境下,Redis内存里的数据怎么保障统一
算法:给定一个字符数组,和一个字符串,在字符串里找到任意一个齐全由字符数组组成的子串,字符程序无所谓(滑动窗口)

面经10

我的项目介绍;(问的比拟深,包含权限校验、SQL优化、索引相干)
手写SQL:获取一个商铺最近一周每一天的销售总量。
如何判断是否命中索引?如何优化索引?
线程有哪些状态?阻塞状态又分为哪些,有什么区别?
手撕算法:NC90 蕴含min函数的栈
手撕算法:寻找二叉树每层结点的最大值
简述上述两个算法的思路和工夫空间复杂度。
优化上述两个算法,要求别离在O(1)和O(N)工夫复杂度内解决上述问题。

百度

面经1

shiro的组件
分布式一致性算法
zookeeper那些能参加投票,leader能投票吗?
netty零拷贝实现
volatile,如何感知到变量变动的
redis高可用
http如何跨域?
tcp如何长链接。
http如何操作浏览器缓存。
用过音讯队列吗?
怎么本人扩大validator(参数校验那个)
jwt组成 header payload 签名加密算法那些。
rsa如何使用到jwt中
synchronized和volatile的区别
什么是上下文切换,URL解析过程
http有那些办法,get那些
过程和线程的区别。
和他人合作呈现抵触怎么办
如何学一个新语言
怎么自学的

面经2

一面
自我介绍
说说IO多路复用
你刚刚说的多路复用针对的是各个申请(比方set,get),那返回值Redis是怎么解决的(愣住)
MySQL B+树个别几层,怎么算的
数据库隔离级别
脏读、不可反复读、幻读(联合具体场景来讲)
MySQL隔离级别别离怎么实现的
MVCC
redo log、undo log
刷脏页的流程
算法题:平方根

二面
自我介绍
我的项目是本人练手的我的项目吗,怎么找的
我的项目是从0开始搭建的,还是有用开源的脚手架
秒杀大略用到哪些货色,怎么实现的
MQ幂等性和音讯积压问题
缓存与数据库数据一致性
惟一ID
Java里怎么保障多个线程的互斥性
一个线程有哪些状态
AQS怎么了解的
Spring IOC容器创立Bean的流程
创立的Bean是单例还是多例的
SpringCloud config是怎么在Bean创立后更新Bean的值的
SpringBoot主动配置原理
SpringMVC执行流程
应用Spring和间接应用Java语言面向对象开发,有哪些益处
怎么了解面向对象
理解哪些设计模式
策略模式形容一下
JVM由哪些模块组成
框架里突破双亲委派机制的SPI大略怎么实现的
那说说双亲委派
垃圾回收次要回收哪些区域
怎么辨认哪些是垃圾
哪些是根节点
什么时候会呈现Full GC
不同垃圾收集器的区别
TCP为什么要握三次手,为什么要挥四次手,大略什么流程
实现环形队列(数组,减少和删除性能)
反转链表(迭代)

三面
业余是偏差硬件吗
对百度理解多少
有什么兴趣爱好
常常打球吗
喜爱听什么音乐
常常听音乐吗,什么时候开始喜爱听音乐的
你说两个具体的歌名我听听
平时是怎么的一个人,有什么特点
有做过什么有成就感的事吗
前面抉择百度的概率有多少
想过本人5年后、10年后是怎么的吗

面经3

1.面试官介绍本人,而后自我介绍
2.java中的线程池有哪些?为什么应用线程池?你在哪里应用过或是见过?
3.Mysql底层是怎么实现的?从内存布局,磁盘布局说起?
4.Mysql有哪些索引?B树和B+树的区别,别离解决了什么问题?
5.try catch finally机制解说一下?
6.为什么要应用SpringBoot做开发?与传统的开发有什么不一样的?
7.什么是微服务?微服务是如何实现服务的注册与发现的?
8.java中的汇合分类有哪些?晓得Queue吗?她上面有哪些实现类?重点说说HashMap?
9.在汇合中哪些汇合类是线程平安的?
10.什么是数字签名,作用是什么?应用的是什么算法?
11.常见的网络攻击有哪些?
12.在表单提交的时候,容易发动什么样的攻打?
13.在进行服务调用的时候如何进行身份验证,如何避免网络攻击?
14.你见过哪些平安框架?具体怎么应用的?(shiro)
15.两道算法题:1)一般的二分查找,问了其中的一些细节,二分查找存在的问题? 2)判断S1中是不是有S2的排列,找到返回true,否则返回false
16.Cookie和session 的应用场景,他们之间的关系?
17.String,StringBuilder,StringBuffer的区别,String的两种初始化的区别?
18.说说本人做过的java我的项目?应用了哪些框架?
19.说说本人教研室的我的项目,你在其中表演的角色,解决了什么问题?

面经4

spring事务
反射原理
lock底层实现
线程池理论利用及如何设计参数
数据库事务隔离级别
动静代理两种实现形式
hashmap底层数据结构
concurrentHashMap如何保障线程平安
双亲委派准则

算法:两个栈实现队列、链表找环的入口

京东

面经1

kafka在利用场景以及 我的项目 里的实现
bitmap底层
object里有哪些办法
hashmap相干
sychronized和reentrantlock相干问题以及锁降级
cas和volatile
线程几种状态以及转化
jvm内存模型
mybatis相干问题
Redis数据结构,问了下跳表的底层
RDB和AOF
MySQL索引有哪些
b+树底层实现
最左前缀原理

面经2

一面
1、线程的状态
2、cms
3、增量更新法
4、GcRoots是哪些
5、java根底
6、mysql索引
7、我的项目具体实现
二面
1、怼我的项目
2、springcloud作用
3、为什么用springboot
4、Nacos原理,如何保障nacos和服务实例产生网络分区服务失落问题
5、为什么须要同步锁
hr
1、自我介绍
2、集体劣势
3、有无实习

面经3

1.索引
2.谈谈多线程
3.jvm如何调优
4.mq在我的项目中的用法
5.遇到的多线程问题,如何解决
6.算法:
6.1最长无反复字串
6.2 找到A^2+B^2 = C

面经4

我的项目
说一下我的项目难点以及如何解决

Java根底
线程的几种状态,以及状态的转换
阻塞状态和期待状态的区别
怎么实现线程平安
锁怎么实现线程平安
synchronized可重入吗,为什么须要可重入
乐观锁和乐观锁
怎么判断JVM里是否呈现死锁
如何预防线程死锁

MySQL
为什么数据库索引用B+树,而不必list、map、二叉树或红黑树

计组
二进制有原码,为什么还要有反码和补码

场景题
一个数组,能够一直地增加元素,而不呈现数组下标越界异样。怎么实现?
有A、B两个大文件,每个文件几十G,而内存只有4G,其中A文件寄存学号+姓名,而B文件寄存学号+分数,要求生成文件C,寄存姓名和分数。怎么实现?

面经5

一面
1、三次握手
2、四次挥手,每一次挥手之后客户端和服务器的状态,为什么TIME_WAIT是2倍最大报文存活工夫
3、NIO和BIO的区别,select和epoll的底层原理
4、同步和异步的区别,异步底层的实现原理
5、Bean的生命周期
6、BeanDefinitionReader是怎么读取XML中的配置的
7、Bean实例的创立有哪几种形式
8、AOP的了解,代理形式,代理底层怎么实现的
9、SpringMVC的流程,View输入的是什么,HandlerAdapter的作用是什么,JSP懂不,servlet懂不
10、线程池,回绝策略,工作执行流程,worker线程治理
11、synchronized和Lock的区别,sync在jvm里怎么实现的,偏心和非偏心的区别,抢占是怎么体现的,是队列里的线程去抢占锁吗,AQS解释一下
12、数据库的事务并发有哪几种,隔离级别有哪几种,还有哪种形式能够解决幻读
13、MVCC

二面 7.27
1、我的项目中遇到什么艰难
2、粘包半包问题怎么解决
3、你的自定义协定怎么解决的
4、讲讲reactor
5、编解码在reactor的哪一步
6、超时重传和疾速重传
7、给定一个数组,找呈现频率最高的前m个数,讲下思路

面经6

数据库乐观锁、乐观锁
为啥用Redis
sql语句执行程序
SpringMVC长处,原理
aop长处,原理
ioc长处,原理
面向对象概念
封装
我的项目中封装如何体现
高内聚,低耦合啥意思,如何去设计
设计一个电梯场景,实现面向对象,高内聚,低耦合的状况
统计学校内共享单车数量,你有啥想法(凋谢题)

shopee

面经1

音讯队列如何保障可靠性
音讯队列如何保障音讯幂等性
音讯队列的优缺点
为什么用b+树
汇集索引和主键区别,其余引擎怎么做的
平时数据库编码
explain参数
http报文参数有哪些吗?
做题,链表奇偶有序输入

面经2

  1. 自我介绍
  2. 有哪些排序算法?
  3. 介绍下快排/堆排/归并排序。
  4. 数据库中的索引应该如何设计?
  5. 有哪些索引生效的状况?
  6. 你们用到的HTTP接口用到了什么提交形式?
  7. GET/POST的区别?
  8. 除了GET/POST还有哪些?
  9. 面向对象的根本准则?再具体说下依赖倒转。
  10. 介绍下策略模式和观察者模式?
  11. 如何保障用户申请的等幂性?等幂性指的是用户可能连点提交三次领取申请,返回同样的后果(领取胜利),但理论后盾只执行一次,放弃一致性。
  12. 介绍下TCP四次挥手?
  13. 第四次挥手后客户端是立即就敞开了吗?是什么状态?
  14. 两个大文件,别离每行都存一个url,查找两个文件中反复的url。
  15. 一个大文件中,每一行有一个整数,怎么找第100大的数?
  16. 一个大文件中,每一行有一个整数,怎么找中位数?
  17. redis的根本数据结构?
  18. zset是怎么实现的?有哪些命令?
  19. 算法题 力扣221. 最大正方形

面经3

自我介绍、我的项目介绍,问了数据量

理解微服务吗?(有没有本人在做我的项目时进行调研,理解企业目前罕用的工具、办法)

理解springcloud吗?

一台机器无奈满足运载需要,怎么办呢?答:多搞几台机器,问:多台机器如何协同工作?

开始瞎答:mapreduce

解释一下mapreduce

如果有一个很大的文件,TB级别,文件里是乱序的数字,如何排序?mapreduce如何实现?

排序过程中的归并排序,请形容一下其过程?工夫复杂度

过程、线程区别,问应用Java时,外面多线程的概念和os里的线程过程的区别是什么?真正应用时,Java里的线程和过程是如何调度?

多线程的同步互斥的办法?答了信号量,问具体怎么实现,答pv操作,给了具体的场景,问变量如何初始化(等同于口述代码)

有哪些索引?(mysql为例)

b树、b+树是什么样的树结构,查问复杂度?是均衡二叉树吗?

应用过redis吗?具体做什么?

手撕代码:LRU算法;正反序层序遍历二叉树

网易

面经1

Java根底:容器、反射、范型
Q3:说一说Java有哪些容器;

Q4:List和Set的区别?不可反复是什么意思?

Q5:HashMap是线程平安的吗?如果想用线程平安的HashMap怎么做?

Q6:如果让你设计一个线程平安的HashMap怎么做?

Q7:Java反射理解吗?什么场景下应用反射?

Q8:晓得什么是范型吗?编码:写一个范型类

JVM
Q9:说一说Java的垃圾回收(从确认垃圾算法和回收垃圾算法说)

Q10:你刚刚说的都是垃圾回收相干算法,那具体回收的垃圾回收器晓得吗?

设计模式
Q10:编码:写一个单例模式

Q11:单例模式有很多,你这个属于哪一办法实现?还有哪些办法?

Q12:Spring外面的bean也有单例,那这个单例和Spring外面的bean单例是一个吗?

数据结构与算法
Q13:有哪些排序算法?他们的性能怎么?

Q14:编码:写一个快排(没写进去,耽搁了10多分钟??)

Q15:晓得二叉树吗?二叉树的个性有哪些?(这个没get到咋答复,应该是满足肯定条件的二叉树子节点和父节点的关系,节点数量和深度之类的关系吧)

Q15:给了一个二叉树,写出前序,中序,后序遍历形式

面经2

网易云音乐

我的项目延申;(较浅)
晓得哪些优化网络的办法?(延申到MySQL主从同步、TCP传输机制、Redis缓存等);
晓得哪些确保线程平安的办法?(延申到AQS、ThreadLocal、Synchronized、锁降级等);
晓得SSM和SpringBoot的区别吗?如何搭建我的项目?如何迁徙两者我的项目?
晓得Spring中的IOC和AOP吗?底层是如何实现的?在我的项目中哪些地方体现?
JVM内存构造和Java反射机制体现在Spring中哪些方面?
手撕代码:(归并+二分)在保障一个数组平安的状况下使其有序,并且找到目标值又或者最靠近目标值的数。
根底乐理理解多少?制作一首音乐的流程有哪些?如何利用大数据预测下一首爆火歌曲(乐理+代码层面)?

滴滴

面经1

我的项目相干(我的项目的架构、我的项目中的重难点)
算法题糊脸:最长回文子串
理解MySQL的数据结构吗,B+树
聚簇索引、非聚簇索引
什么状况下会回表
脏读、幻读、不可反复读
MySQL事务隔离级别怎么实现的(锁机制+MVCC),怎么解决的幻读(间隙锁、next key)
Redis中zset的数据结构(数据结构由编码决定,zset有两种编码,对应的数据结构别离是压缩列表 | 跳表+字典)
如何解决哈希抵触(拉链法、凋谢定址法、再哈希法)
三次握手、四次挥手(越具体越好,说了具体的过程、状态变换、第一次握手占不占序列号、不携带数据的ack占不占序列号等等)

面经2

我的项目相干(模块划分,我的项目需要,技术计划,数据库设计,表的构造及关系,负责角色)
http协定的关键字段,比方request和response头部信息有哪些关键字段,有什么含意
http状态码:100,200,502,504
http和https的区别,https是为了解决什么问题
三次握手、四次挥手(具体过程+状态变动)
呈现大量的close_wait可能是什么起因,解决方案,通过什么工具看进去网络有问题等等
Java中常见的汇合有哪些,List、Set、Map初始容量加载因子理解吗
Java中线程通信的形式有哪些,大略的原理
MySQL如果遇到性能不好的问题,比如说慢查问,怎么做
数据库优化计划(索引 | 分库分表)
有哪些索引,数据结构,建设索引的准则
分库分表的准则,说说场景(程度 | 垂直、热数据 | 冷数据 blabla)
算法题:两数之和

华为

面经1

7.22一面
从白板实现一个双向链表,并且写出增删改查
从白板实现一个二叉树,并且补充遍历办法
聊我的项目

7.26二面
聊我的项目,0八股文
次要从你感觉的难点,以及考查一些对我的项目的了解水平
题目:给定一个字符串 s,你能够通过在字符串后面增加字符将其转换为回文串。找到并返回能够用这种形式转换的最短回文串

7.30三面
业务主管面
聊研究生的事件,学了什么课,本人感觉劣势在哪,当前想在哪倒退

有赞

面经1

1、汇合八股文(list接口下的、map接口下的)
2、map中提到了concurrentHashMap,说到了synchronized,所以让我说一说lock锁和synchronized的区别
3、线程池的七个参数
4、线程池工作提交流程、线程池的工作执行流程。
5、mysql的事务隔离级别,以及解决的问题
6、mvcc的实现原理

整顿不易,如果感觉对你有帮忙,能够点个赞激励一下!

我是程序员大彬 ,专一Java后端硬核常识分享,欢送大家关注~

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理