来自海归本人的自述

陆陆续续投了20多家公司,数不清顶着时差做了多少笔试,无数个不眠的夜都在不断地怀疑自己中度过(菜鸡本鸡没跑了),收到的面试却仍然屈指可数,主要以大厂为主,结局虽不圆满但能看到自己的付出所带来的成长。

以下面经已过滤项目相关问题

一、阿里 (会员中台)(一面挂)

1. Java

重写hashcode()是否需要重写equals(),不重写会有什么后果

2. 并发

自旋锁和阻塞锁的区别

公平锁和非公平锁的区别

jdk中哪种数据结构或工具可以实现当多个线程到达某个状态时执行一段代码

栅栏和闭锁的区别

如何使用信号量实现上述情况

3. JVM

新生代和年老代的GC算法分别是什么

标记清除和标记整理的区别

了解过CMS收集器吗

4. 网络

解释HTTPs

HTTPs为什么要用对称加密+非对称加密,相对于只使用非对称加密有什么好处

5. 数据库

给定一个表,其中有三列(员工名称,工资,部门号),找出每个部门工资最高的员工

6. 代码

LeetCode 863 二叉树中所有距离为K的结点

二、阿里 - 新零售技术事业群(一面挂)

1. 框架

用过哪些Java开源框架

讲一讲对Spring的理解

看过IOC和AOP的源码吗

它们底层是如何实现的

用过其他什么框架

了解过分布式或者微服务的开源框架吗

讲一讲对分布式系统模型的理解

分布式系统中有一个节点宕机怎么办

分布式系统如何实现负载均衡

2. 数据库

MySQL和Oracle数据库有哪些不同

数据库有哪些锁

表锁和行锁的区别

哪些场景需要加表锁

插入一条数据需要加什么锁

分布式数据库如何保证数据可靠性

了解过MySQL的主从复制吗

三、腾讯 - TEG (一面挂)

1. 数据结构

B+树与红黑树的区别

2. Java

HashMap的底层数据结构,局限性与线程安全

如何实现线程安全的HashMap

Collections.sychronizedMap与ConcurrentHashMap的区别

HashMap与ConcurrentHashMap的性能比较

3. JVM

类的编译过程

类的加载过程

JVM的内存空间

JVM的GC机制

4. 操作系统

进程与线程的区别

进程间如何通信

共享内存与Socket的优缺点与性能比较

子进程从父进程继承了什么

什么是僵尸进程

线程与协程的区别

5. 网络

TCP的四次挥手

TIME_WAIT状态处在哪一方以及为什么需要它

TCP与UDP的区别与可靠性

如何实现UDP的可靠传输

6. 数据库

解释ACID四大特性

原子性的底层实现

数据库宕机后恢复的过程

如何保证事务的ACID特性

MySQL日志类型

7. 分布式

谈谈对分布式系统的理解

分布式数据库的实现

如何保证不同数据库之间的数据一致性

如何实现主从数据库间的同步

四、腾讯 - FIT (一面挂)

1. 网络

TCP三次握手/四次挥手

TIME_WAIT状态

网络延迟大的情况怎么处理

HTTP请求到响应全过程(服务端)

HTTP请求头及其作用

HTTP和HTTPs

HTTPs的握手过程

五、字节 - 头条(二面挂)

1. 一面

操作系统

讲一讲进程和线程

讲一讲多线程和线程池

Linux的最大进程数限制

WEB

输入URL到页面加载的过程

后端怎么处理前端传过来的文件

JVM

GC机制(GC算法,分代收集,收集器,STW)

代码

给定一个数组a[N]和一个整数P,求a[i] + a[j] + a[k] =P,保证i<j<k

2. 二面

数据库

身份证如何有效建立索引

Innodb索引类型

聚簇索引和非聚簇索引的区别

索引失效的情况

写一个分页查询

Java

JMM内存模型

Classloader双亲委派机制

讲一下ThreadLocal

线程间如何通信

六、字节 - 头条 - 客户端开发(已拿offer)

1. 一面

操作系统

讲一下进程和线程

讲一下线程安全

智力题

两个人抛硬币,先抛的人赢的概率

代码

单链表排序,奇数位升序,偶数位降序

2. 二面

WEB

HTML,JS,CSS的区别

输入URL到页面加载的过程

HTTP的长连接和实现原理

Java

创建和终止一个线程

讲一下熟悉的容器类

ArrayList中如何删除某个元素的所有相同元素

讲一下迭代器的实现原理

SQL

学生表 Student (S#,Sname,Sage,Ssex),课程表 Course (C#,Cname),成绩表SC (S#,C#,score),查询平均成绩大于 60 分的同学的学号和平均成绩

代码

Leetcode 283 移动零

3. 三面

智力题+数据结构+代码

扑克牌的移动

并发

乐观锁和悲观锁的区别

两种锁在Java中的具体实现

两种锁的使用场景

七、阿里 - 供应链平台事业部(二面挂)

1. 一面

框架

讲一下IOC

对SpringBoot的理解

Mybatis中#和$的区别

Java

HashMap底层实现和扩容机制

代码

Leetcode 206 链表反转

数据库

InnoDB和MyISAM的区别

其他

SQL注入

2. 二面

算法和数据结构

讲一下红黑树

红黑节点的个数

红黑树的插入删除查询时间复杂度

讲一下B+树

B+树的插入删除查询时间复杂度

讲一下堆的性质及应用场景

建堆时间复杂度

各种排序算法的时间复杂度及稳定性

数据库

讲一下三范式

网络

为什么要三次握手

二次握手有什么问题

三次握手有哪些缺陷

TCP是如何控制流量的

发送方发送频率过高造成丢包,TCP是如何解决的

讲一下OSI网络架构

HTTP在哪一层

HTTP报文结构

HTTP首部字段

HTTPs加密在哪一层实现

操作系统

讲一下虚拟内存

如果访问虚拟地址时,该地址在物理内存中不存在,会发生什么

Java

讲一下volatile

volatile底层实现

static修饰用法和区别

JVM

讲一下GC算法

JVM内存空间

代码

Leetcode 2 链表相加

函数式编程

函数式编程和面向对象编程的区别

jdk8为什么要引入函数式编程

机器学习

讲一下梯度下降

梯度下降能保证收敛吗

当然不只是面试题,小编这里也拿到了这位朋友备战大厂面试的一些面试资料准备免费分享给大家,有想获取的朋友,转发关注后,私信即可