java 面试集锦

算法数据结构

海量数据如何去重?

算法

常见数据结构

java基础相关

hashcode相等两个类一定相等吗equals 呢 相反呢

线程池用过么?都有哪些参数? 底层如何实现?

Synchronized 和lock什么区别? 底层细节

threadLocal是什么?底层如何实现?写一个例子

volidate的工作原理

Thread and lock

cas知道吗?如何实现?

四种写法,写一个单例模式

Integer x= 5, int y=5 比较x==y有哪些步骤

javaCore

动态代理

NIO

基于socket的网络编程

jMM

注解原理

设计模式

数据库相关

使用mysql索引都有哪些原则?索引有什么数据结构? B+tree 和 B tree 什么区别

mysql 有哪些存储引擎?有什么区别?

设计高并发系统数据库层面应该怎么设计? 数据库锁有哪些类型?如何实现

数据库事物有哪些?

如何设计可以动态扩容的分库分表方案? 以及底层原理?常见的分库分表中间件?优缺点? 如何让未分库分表的数据动态切换到分库分表的系统上?分库分表解决主键问题?

分布式事物?如何实现?TCC? 网络出现问题,如何容错?

分布式寻址方式方式有哪些算法? 一致性hash算法

缓存相关

redis和 memcheched什么区别?为什么单线程的redis比多线程的memched效率高?

redis主要数据类型?分别那种场景下使用?

redis的主从复制怎么实现的?redis集群模式是如何实现的? redis的key是如何寻址的?

redis基本知识

缓存如何使用?缓存使用不当带来什么问题

热点数据处理

分布式架构相关

zk原理? zk的应用? paxos算法?

dubbo的实现过程?注册中心挂了可以继续通信么?dubbo常见配置有哪些

dubbo支持哪些序列化协议?hession?hession数据结构? pb知道么?为啥PB的效率是最高的?

dubbo负载均衡策略和高可用策略有哪些?动态代理策略呢?为什么要进行系统拆分啊? 拆分不用dubbo可以么? dubbo和thirft什么区别?

不用应用环境下的会话保持

自己实现RPC

如何设计一个高并发高可用系统?

如何限流?工程中怎么做的?说下具体实现?

负载均衡

如何降级?如何进行系统拆分,如何进行数据库拆分

消息相关

netty 可以干什么? NIO,BIO ,AIO 都是什么? 有什么区别

为什么使用消息队列?消息队列的优点和缺点?

如何保证消息队列的高可用?如何保证消息不被重复消费?

kafka,activemq,rabbitmq,rocketmq 都有什么优点和缺点?如何自己设计一个消息队列,该如何进行架构设计

rabbitMQ基础

jvm相关

jvm内存模型?用过哪些垃圾回收器?说说

线上频繁发生fullGC 如何处理? CPU使用频率过高怎么办?

类加载机制? 类加载器?分别加载哪些文件?手写一个

jvm优化?使用什么方法?达到什么效果**

排查过程

框架相关

spring 哪些机制?aop如何实现?IOC如何实现

springboot

网络相关

https

http的工作流程?越细节越好。 http1.0 1.1 1.2有哪些区别

tcp 三次握手,四层分手的工作流程〉为什么不是其他次数?

get/post区别

cookie 和 session

OAuth2.0

子网掩码

dump

其他

git原理

maven

常见加解密算法

系统设计

链接收集