java面试2

CMS算法中哪些阶段是STOP THE WORLD的?

hashmap冲突的key多了如何去优化?

在linux环境下如何去查询java进程的线程运行情况,用什么工具去打印内存情况?

组合索引添加策略,索引结构,存储结构

NOSQ和传统MYSQL区别,优缺点在哪里?

并发:

用过哪些MQ,他们的区别是什么?

MQ中client和broker的通信协议

MQ常用的消息模型

配置中心:

配置中心的作用是什么?动态配置中国内心如何避免冲突和竞争?如何保证配置信息一致性?

单元测试、集成测试(Todo)

业务场景系统设计:

一个秒杀,抢购系统设计实现(考察高并发场景下性能优化)

分布式系统里面如何执行非幂等的任务

基础知识

HTTP协议:

cookie和session区别,举几个使用场景

WEB 表单提交,GET/POST方法,防止CSRF攻击有啥区别

301、302、307有什么区别

TCP协议

SSL/TLS协议

ssl/tls如何实现信息加密传输

ssl session id和session ticket的原理是什么

对于keepalive的链接是否还会进行ssl握手

证书是如何生成的

CA的作用是什么

RSA和ECC算法有什么区别

如何实现0-rtt的ssl握手

tls1.3有什么改进

如何防止ssl重放攻击

如何提高HTTPS页面的性能

HSTS有什么作用

Linux/运维能力

shell使用:

基本语法

find/grep/sed/awk

如何探测本机java监听的端口

查看本机文件系统的格式

查看本机线程数

Linux如何终止D状态的进程

如何批量执行一些命令

磁盘满了如何处理,哪些情况下磁盘空间无法释放

为什么有时候df看到的内容和du会不一样,原因是什么?

哪些情况下磁盘显示有剩余空间,但是无法创建新的文件了

如何让nobody用户的程序监听在80端口?

如何防止文件被误删除,或者被误修改。

如何删除-开头的文件,例如 -a这个文件

malloc是如何工作的

如何检查一个程序为什么cpu占用率很高

如何轮转日志

sudo 和 su的区别

操作系统

什么是僵尸进程,如何防止僵尸进程?

select,poll和epoll有什么区别。

如何调整一个进程的内存使用的优先级

什么是死锁,请写一个死锁的程序。

什么是inode,它存储了哪些信息?

如果想知道一个命令具体执行了哪些系统调用,应该如何做(例如我想知道ls somefilename这个命令做了哪些系统调用)

EXT3和EXT4的区别有哪些?

什么是虚拟内存?

segmentfault是什么意思,为什么会发生?

SIGTERM 和SIGKILL的区别是什么

Load是如何计算的,它和哪些因素有关系,当load高的时候,我们应该如何排查问题

网络

rst问题可能是什么原因

如何动态修改一个进程的limit限制(例如open file的限制)

如何统计每个进程使用的网卡流量,io磁盘读写带宽?

交换机和路由器是如何工作的

BGP的原理

anycast技术的原理

Docker使用:

Docker 容器和镜像关系

容器如何挂载一个数据卷,用完后如何删除?

容器如何暴露端口?

Dockfile

排查线上问题思路

代码题

实现装饰器

单向链表逆序

实现快速排序算法

实现一个generator,产生fabonacci数列

有一个大日志是按照时间进行排序,按照时间用二分法搜索某个时间段的日志记录

实现一个二叉树的数据结构,实现其深度遍历算法(反转算法,广度遍历等等)

具体代码题见这里

系统设计

分布式cache系统如何设计

数据sharding问题

如何应对机器宕机

热点问题

数据如何进行迁移

如何支持单机高并发量

key逐出算法,如何设计数据结构

如何在扩容新机器的时候保证数据不进行大量的迁移

value的大小会不一样,可能几个字节,也可能几十~几百KB,甚至上MB,如何去分配内存空间。

如何设计分布式消息系统

如何设计四层、七层load balancer

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容