2020年终最新整理:阿里/百度/蚂蚁Java岗面试清单(附答案

2021-01-29  本文已影响0人  码农小芷

百度(三面)

百度一面(现场)

自我介绍

Java中的多态

为什么要同时重写hashcode和equals

Hashmap的原理

Hashmap如何变线程安全,每种方式的优缺点

垃圾回收机制

Jvm的参数你知道的说一下

设计模式了解的说一下

手撕一个单例模式

算法题目

手撕算法:反转单链表

手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图

手写java多线程

手写java的soeket编程,服务端和客户端

手撕算法:爬楼梯,写出状态转移方程

智力题:时针分针什么时候重合

百度二面(现场)

自我介绍

项目介绍

服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器?

TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl?

数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决?

Linux查看cpu占用率高的进程

手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。

然后继续在这个问题上扩展

求出最短那条的路径

递归求出所有的路径

设计模式讲一下熟悉的

会不会滥用设计模式?

多线程条件变量为什么要在while体里?

你遇到什么挫折,怎么应对和处理?

百度三面(现场)

自我介绍

项目介绍

Redis的特点

Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点?

Redis使用哨兵部署会有什么问题?【我说需要扩容的话还是得集群部署。】

说一下JVM内存模型把,有哪些区,分别干什么的?

说一下gc算法,分代回收说下

MySQL的引擎讲一下,有什么区别,使用场景呢?

分布式事务了解么?

反爬虫的机制,有哪些方式?

阿里中间件(四面)

Java中间件一面

技术一面考察范围:

重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现

线程池的底层实现以及常见的参数

数据结构基本都问了一遍,链表、队列等

Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM相关的调优参数

分布式锁的实现比较

技术一面题目:

1:自我介绍

2:擅长哪方面的技术?

3;java有哪些锁中类?(乐观锁&悲观锁、可重入锁&Synchronize等)

4:比较重要的数据结构,如链表,队列,栈的基本原理及大致实现

5:J.U.C下的常见类的使用。Threadpool的深入考察;blockingQueue的使用

6:Java内存分代模型,GC算法,JVM常见的启动参数;CMS算法的过程

7:Volatile关键字有什么用(包括底层原理)?

8:线程池的调优策略

9:Spring cloud的服务注册与发现是怎么设计的?

10:分布式系统的全局id如何实现

11:分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下那个性能更好?

Java中间件二面

技术二面考察范围:

问了项目相关的技术实现细节

数据库相关:索引、索引底层实现、mysql相关的行锁、表锁等

redis相关:架构设计、数据一致性问题

容器:容器的设计原理等

技术二面题目:

参与的项目,选一个,技术难度在哪里?

Collections.sort底层排序方式

负载均衡的原理

设计模式与重构,谈谈你对重构的理解

谈谈redis相关的集群有哪些成熟方案?

再谈谈一致hash算法(redis)

数据库索引,B+树的特性和建树过程

Mysql相关的行锁,表锁、乐观锁、悲观锁

谈谈多线程和并发工具的使用

谈谈redis的架构和组件

Redis的数据一致性问题(分布式多节点环境&单机环境)

Docker容器

Java中间件三面

技术三面考察范围:

主要谈到了高并发的实现方案

以及中间件:redis、rocketmq、kafka等的架构设计思路

最后问了平时怎么提升技术的

技术三面题目:

高并发情况下,系统是如何支撑大量的请求的?

接着上面的问题,延伸到了中间件,kafka、redis、rocketmq、mycat等设计思路和适用场景等

最近上过哪些技术网站?最近再看哪些书?

工作和生活中遇见最大的挑战,怎么去克服?

未来有怎样的打算

Java中间件四面

最后,你懂的,主要就是HR走流程了,主要问了未来的职业规划。

蚂蚁中间件团队面试题

蚂蚁中间件一面

自我介绍

JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法?

新生代和老年代的回收机制

讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式

Concurrenthashmap1.8后的改动

Java中的多线程,以及线程池的增长策略和拒绝策略了解么?

Tomcat的类加载器了解么?

Spring的ioc和aop,Springmvc的基本架构,请求流程

HTTP协议与Tcp有什么区别,http1.0和2.0的区别?

Java的网络编程,讲讲NIO的实现方式,与BIO的区别,以及介绍常用的NIO框架

索引什么时候会失效变成全表扫描?

介绍下分布式的paxos和raft算法

蚂蚁中间件二面

你在项目中怎么用到并发的?

消息队列的使用场景,谈谈Kafka

你说了解分布式服务,那么你怎么理解分布式服务?

Dubbo和Spring Clound的区别,以及使用场景

讲一下docker的实现原理,以及与JVM的区别

MongoDB、Redis和Memcached的应用场景,各自优势

MongoDB有事务吗?

Redis说一下sorted set底层原理

讲讲Netty为什么并发高,相关的核心组件有哪些?

蚂蚁中间件三面

完整的画一个分布式集群部署图,从负载均衡到后端数据库集群

分布式锁的方案,Redis和Zookeeper哪个好,如果是集群部署,高并发情况下哪个性能更好?

分布式系统的全局id如何实现?

数据库万级变成亿级,你如何来解决?

常见的服务器雪崩是由什么引起的,如何来防范?

异地容灾怎么实现?

常用的高并发技术解决方案有哪些,以及对应的解决步骤?

面试答案

这份面试文件涵盖了Java开发1至5年的面试常见技术问题,整体分为当季最新系列、大厂面试真题系列、技术系统分类系列三部分。(纯文字文本占内存46.97MB)

需要的朋友点击传送门即可!

2020年最新面试题

大厂面试真题

系统技术分类系列

JVM、MySQL、Mybatis、MongoDB、Redis、Spring、Spring boot、Spring cloud、Kafka、RabbitMQ、Nginx......

以上所有的面试资料均可免费领取,需要的朋友点击传送门即可!

上一篇 下一篇

猜你喜欢

热点阅读