高质量面试题分享

一面:

1.逻辑地址和物理地址,操作系统中,比如一个java对象如何通过逻辑地址找到物理地址

页表

2.现在有逻辑地址,但是物理地址没有加载到内存中怎么办

缺页?

3.操作系统中,线程/进程在进行上下文切换时保存了哪些信息

当前线程执行的位置,栈的信息

4.进程切换的时机有哪些

当时间片到了,或者线程阻塞时切换

5.进程发生异常一定会切换吗

不一定

6.互斥锁和自旋锁

7.new object,在栈上会有什么空间

8.一个程序从源代码到可执行程序的过程

预处理,编译,汇编,链接

9.mysql的sql执行过程

10.mysql的覆盖索引

 

11.redis中rehash的过程

12.何时rehash

13.redis中key的过期策略

 

14.http中的请求

15.http请求报文格式

 

 

16.linux统计一个文件中每个id的出现次数

17.n个任务,有开始和结束时间,在某个时间区间内,如何处理最多的任务

 


 

二面:

1.自我介绍

2.项目中 服务内存泄漏排查

3.java锁的理解

4.lock中的方法

5.线程池

6.线程和协程的区别

7.linux中多个文件中查找字符串

8.linux查看磁盘使用情况的命令

9.用一条SQL语句查询出每门课都大于80分的学生姓名

10.设计一个分布式系统快速查找文件

11.已知一天内用户登录登出的日志(数据量较大),求这一天用户在线的最大峰值和持续时间段

* 日志包含字段(userid, login_time, logout_time)

* 登录登出时间精确到秒

12.归并排序

13.dfs和bfs,和使用场景

14.有向图怎么做dfs

15.两个栈实现一个队列


 

三面:

1. 说实习,内存泄漏的排查

2. object类中有哪些方法

3. equal和hashcode经典问题(==)、equals和hashcode相等问题

4. final、finally、finalized的区别

5. map中哪些类是线程安全的,底层实现

6. threadlocal,能否替换concurrenthashmap(面试官说可以,安全和性能问题)

7. synchronized和reentrantlock的区别,reen的底层实现

8. lock

9. dubbo(rpc),rpc怎么注册服务,rpc中有用到代理模式吗

10. aop介绍,哪些部分可以用aop

11. redis的数据结构

12. zset底层数据结构,如何实现

13. 口述:如何判断链表有环

14. orm框架

15. 做题:

(1)给一个数组 array 和一个数字 sum, 求这个数组的连续子数组的元素相加和 >= sum 解的个数。  

前缀和

(2) leetcode 45

45. 跳跃游戏 II

 

美团

一面:

1.map的使用场景

2.HashMap和linkedhashmap的区别

3.spring-aop

4.代理如何实现

5.innodb的索引介绍

6.mysql中走了辅助索引是否还要用主索引

7. java中线程的状态(6种

8.消息队列的用处,怎么做到削峰的

9.redis过期策略

10.redis雪崩如何解决,服务降级常用的框架,怎么做到限流

11.如果只是redis大批量key过期,也会雪崩,怎么解决

12.制约数据库tps的硬件条件是什么

 

 

代码题:1.java实现bitmap,判断元素是否存在

 

2.实现一个阻塞队列,poll出队 put入队;要求put和poll都是线程安全的,并且队列满的时候put操作阻塞,队列空的时候poll阻塞

 

二面:

1.java中long的范围,为什么正数-1

2.threadlocal的使用场景,底层实现

3.java线程池怎么做到复用的

4.object中的方法

5.为什么重写了equal要重写hashcode方法

6.java中的线程状态(6种)

7.java的enum(枚举)和普通类有什么区别,能否实现接口

8.java的异常体系(error,exception一直往下分)

9.项目中的数据库表的设计

10.数据库中的int的数据类型,存储范围,所占字节

11.数据库中timestamp和time的区别

12.代码题:java给一个文件 输出其中每个单词输出的频次(涉及到IO的类)


三面:

1.自我介绍

2.项目

3.hashmap负载因子作用

4.负载因子调小的情景

5.java中的注解,类型,范围,好处

6.线程池中的参数

7.参数ThreadFactory使用在什么时候

8.核心线程数5 最大线程数50 队列20

这个时候来30个任务

这个时候在运行的线程数是多少 队列中有多少线程

9.想设计一个线程池刚起来的时候,就达到最大线程数,参数怎么设置

10.spring中出现循环依赖是否会报错,原因

11.单例模式的写法,不安全的怎么改成安全的

 

腾讯

天美一面(挂):

1.c++熟悉吗,python呢,c++除了MFC还接触过其他的吗(我是真的不会C++)

2. 问实习内容

3. linux如何查看连接数

4.linux如何查看cpu和内存的使用情况

5.linux查看进程连接数和句柄

6.实习中内存泄漏,是物理内存还是虚拟内存

7.物理内存和虚拟内存的关系

8.linux中线程的状态(回答成java了

9.linux中线程状态的符号

10.linux如何查看线程状态

11.项目中为什么用多线程模型而不用IO多路复用模型(区别)

12.关系型数据库和非关系型数据库的区别

13.算法题1:一亿条32位的数据去重,如果直接加载进内存大概占多大(只说思路

14.算法题2:一个数组去重,优化空间

15.set的底层实现,为什么不用hash

16.各种排序的空间复杂度如何

 

捞起来的一面:

1.自我介绍

2.实习内容

3.java接口和抽象类的区别

4.线程池的使用,参数,选择原因 线程池实现线程的复用

 

二面:

1.自我介绍

2.项目的技术选型,项目中用的rpc框架,说一下dubbo的工作流程和工作原理

3.dubbo的负载均衡策略是否了解

4.redis和memcached的横向比较

5.一致性哈希,范围多大

6.一致性哈希中的虚拟节点,解决什么问题

7.项目中用rabbitmq,跟rocketmq,kafka的横向比较

8.项目中用到ORM框架,mybatis与hibernate的区别

9.epoll和select的区别

10.spring中的ioc和aop

11.实习中用到内部框架的场景,和开源的相对比

12.实习中觉得比较有亮点的开发经历

13.职业发展规划,城市选择,现在拿了哪些offer

14.个人的计划,技术向和个人生活向


三面(我当时在怀疑是不是hr):

1.自我介绍

2.实习中学到的点

3.自身的职业规划

4.英语考察

5.现在手上的offer,怎么选择

6.如果也有XXoffer,怎么选

 

滴滴

一面:

1.自我介绍

2.压测为什么用jmeter

3.流量过高怎么办

4.hashmap哪些情况线程不安全

5.copyonwritearraylist 的设计思想,是空间换时间吗

6.做题

二面:

1.自我介绍

2.测试全面性的保证

3.白盒测试怎么做

4.开发需求和理性的判断

5.项目中的订单的数据模型怎么设计的,哪些是主键,mysql中数据类型、数据字段怎么选择,订单编号怎么生成

6.mysql索引的类型,为什么用b+树,为什么要减少磁盘IO

7.怎么加索引的

8.什么情况索引失效,为什么用or会失效

9.技术选型(为什么用redis不用其他缓存、为什么选择MQ

10.redis中库存过期时间

 

三面:

1.自我介绍

 

2.问专利(这里我本来想疯狂吐槽,但是还没到offer我就憋回去了,卑微如我)

 

3.网易实习

 

4.介绍项目

 

5.mysql索引,hash索引和b+树索引时间复杂度

 

6.项目中哪里使用redis

 

 

 

阿里

 

 

 

简历面:

 

项目、实习
领域驱动设计
如何把一个小系统做成一个微服务
数据库的ACID
synchronized和volatile和lock作用、区别
反射,原理和应用
java线程池常用参数设置
Threadlocal
hashmap的遍历方式
bean的注入方式
IOC和AOP
bean的初始化过程
bean的注入方式
jvm类加载过程
深度学习常见的池化方法
SVM
如何评价一个算法的好坏
红黑树的原理、特性
数据库的索引实现方式

 

100万考生中,找出分数前100的

 

15分钟手写快排

 

 

 

一面:

 

实习、项目
rpc属于OSI哪一层
grpc的优缺点
rpc的调用方式 同步阻塞
OSI七层模型
rocketmq实现原理
jvm类加载过程
类加载的方式
hashmap是否线程安全,底层什么实现
concurrenthashmap底层
jvm垃圾回收机制
说一下并发(和并行的区别)
java有哪几种线程池
死锁
乐观锁和悲观锁
linux查看java是否起来的命令
linux关闭一个进程的命令
mybatis 的id能否重复,命名空间能否重复,命名空间的id能否重复
drop、delete、truncate的区别,是否是DML或者DDL的,能否回滚
mysql 中like % 能否走到索引
mysql中 % bin能否走到索引
单例模式的两种写法
redis中zest的底层数据结构,实现

 

leetcode 142

 

leetcode 225

 

 

 

二面:

 

http和https的区别

 

linux的top命令的参数

 

OSI七层每层都干什么的

 

Java内存满怎么办,怎么排查

 

java cpu高怎么排查

 

一个项目中用到多种数据库,用什么设计模式 (没问清楚目的还是策略)

 

集群session共享存储方案

 

100G无序数据,内存只有10G,找出中位数

 

MongoDB的底层实现

 

算法题(春招腾讯原题。。。):

 

1. 给定一个8x8的棋盘, 上面有若干个车(Rook),写一个函数检查这些车有没有互相攻击的情况.
2. 在1题的基础上, 给定一个初始棋盘状态, 问最多还能放置多少个车, 使他们不会互相攻击, 如何放置?
3. 在1,2的基础上, 如果棋盘不止有车, 还有象(Bishop)和皇后(Queen),该如何检查是否有互相攻击的情况.

走法:
车:横、竖均可以走,步数不受限制,不能斜走。
象:只能斜走。格数不限,不能越子。
后:横、直、斜都可以走,步数不受限制,但不能越子。

 

三面:

 

先写两小时题目。。。

一、多个线程顺序循环打印递增的自然数,例如 3 个线程:t-0,t-1,t-2,程序输出如下:
t-0 0
t-1 1
t-2 2
t-0 3
t-1 4
t-2 5
二、leetcode670
给定一个正整数,可最多交换一次此正整数中的两位数字,求能得到的最大值,举例如下:
示例 1 :
输入: 1234
输出: 4231
解释: 交换数字1和数字4。
示例 2 :
输入: 8873
输出: 8873
解释: 不需要交换。

三、
给定一个字符串以及多个子串,对于在字符串中出现的子串可以多次移除,求多次移除后能够得到的最短字符串长度。输入: 第一行为一个字符串,第二行为多个子串,字符串长度大于0
输出: 多次移除后能够得到的最短字符串长度
例如:
输入:
"ccdaabcdbb"
["ab","cd"]
输出:
2
解释:
ccdaabcdbb -> ccdacdbb -> cabb -> cb (length = 2)
输入:
"abcabd"
["ab","abcd"]
输出:
解释:
abcabd -> abcd -> "" (length = 0)

 

开面:

说题的思路

说一下观察者模式

 

说一下Spring-AOP,面向切面怎么切的

 

看过哪些源码、hashmap,初始容量,负载因子、是否会变成全链表,死锁原因(解决方法)

 

线程池、核心参数、如何设置

 

微服务的拆分、单体架构的优缺点、实际应用场景

 

分布式系统的设计思路

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值