1. JVM
- JVM内存模型 G1和CMS垃圾回收器
- JVM的堆是如何分区的
- GC垃圾回收了解多少?新生代和老年代的区别是怎么样?
- 垃圾回收算法
2. JAVA 基础
- 如何中断线程,await和sleep区别
- Synchronized 1.8后做了那些优化
- 轻量级锁
- Java类加载器有哪些种类,每种都用来加载什么
- 双亲委派,String 类是由那个类加载器加载的
- volatile 关键字原理
- Java线程池的参数有哪些,如果让你自己实现一个线程池,你会怎么实现
- 线程池运作过程是怎样的,这里面的队列有哪些,无界对列当任务很多的时候或发生什么?线程池默认的队列是什么
- 介绍下动态代理
- 微服务的优缺点
- Java1.8了解哪些新特性?重点讲讲HashMap和CurrentHashMap
- 可重入锁reentrantlock
- hashcode与equal
3. Spring
- spring生命周期,几种scope区别
- SpringCloud 组件介绍,及微服务之间是如何调用的
- Spring对象的SCOP 知道吗
- Spring中常用的设计模式举4例子
4. 数据库
- 数据库 左连接、右连接、内连接、外连接区别
- 分库分表的话查一条数据怎么查
- SQL题(有一张考试分数记录表exam,包含字段(id,student,subject,score;)选出每个student的最高score记录,需要包含所有字段)
- 数据库的索引大多用的是B+树,为什么很少用B树
- 事务的ACID
- 介绍下Mysql的隔离级别,可重复读回出现什么问题(幻读)什么是幻读,怎么避免幻读
- 如何判断是否命中索引?如何优化索引?
- 索引:索引的分类,聚簇索引的概念,如何创建联合索引,有什么原则(最左前缀匹配原则),聚簇索引和非聚簇索引;怎么分配;为什么这样分配;
5. 计算机网络
- OSI七层协议和TCP/IP五层协议有什么区别?TCP/UDP在哪一层?对TCP了解多少?
6. 操作系统
- 线程和进程的区别?怎么创建线程?有哪些状态?有什么区别?
- 线程有哪些状态?阻塞状态又分为哪些,有什么区别?
7. Redis
- 删除Redis数据的时候没有删除成功怎么办
- Redis的两种持久化模式
8. Kafka
9. 分布式
- Seata的分布式事务介绍
- 如何设计一个高可靠的分布式锁
10. 设计模式
-
设计模式:写一写单例模式-懒汉模式,饿汉模式,线程安全型,双重校验锁型。为什么要使用双重校验锁的单例模式?
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
-
juc中的countdownlatch,其概念,使用场景。
-
java中如何查看线程状态,你知道那些java自带的命令。
-
设计模式,说一下策略模式和装饰器模式。
-
有哪些编码格式(GBK,UTF-8,ISO-),有没有想过为什么会有这么多的编码格式。
-
Http和Https的区别?
-
了解哪些加密、解密算法?
-
Redis的数据结构有哪些?为什么Redis那么快?
-
乐观锁和悲观锁,以及CAS是什么,怎么体现在HashMap中?
-
TCP三次握手、四次挥手的具体过程,以及TCP有哪些保护机制,具体是怎么样的?
-
Java如何实现线程安全(synchronized,ReentrantLock,AtomicInteger,ThreadLocal,CAS)
-
CAS如何解决ABA问题(版本号)
-
AtomicInteger的原理(UnSafe类,底层是一句CPU指令,避免了并发问题)
-
可重入锁是什么,非可重入锁又是什么
-
Spring,AOP是什么,IOC是什么
-
二叉树的概念?红黑树又是什么,红黑树和其他平衡树的区别在哪
-
TCP和UDP的区别
-
间隙锁是什么,具体什么时候会加锁
-
SQLite如何加锁
-
Java里的锁,有哪几种(synchronized和Reentrantlock)
-
ReentrantLock有哪些特性(可重入,公平锁),可重入是如何实现的(有一个引用数,非可重入只有01值)
-
当某个线程获取ReentrantLock失败时,是否会从内核态切换回用户态?ReentrantLock如何存储阻塞的线程的?(AQS,不断轮询前一个结点是否状态发生了变化)所以什么是自旋锁?
-
Redis的持久化如何做到的?(RDB+AOF)
-
RDB具体是如何实现的,RDB生成快照的时候,Redis会阻塞掉吗?(使用BgSave,fork一个子进程去并行生成快照,不会阻塞)
-
既然生成快照的中途依然可以执行Redis,那么从节点获取到快照是不完整的,如何同步?
-
计算机网络的七层模型
-
常用的 I/O 模型
-
Java 中的多线程和操作系统中的多线程有什么区别
-
TCP 保证可靠传输的机制
-
线程进程,怎么进行上下文切换的,进程切换的过程?中断?谁去执行中断呢?
-
讲一讲内存分页,怎么进行内存分页
-
说一下OSI 模型,TCP/IP 模型说一下每一层的协议
-
DNS 是基于传输层的什么协议的
-
TCP 怎么保证到达的数据是有序的
-
死锁的四个必要条件
-
如何避免死锁?
-
如何检测死锁?
-
数据库中是否会出现死锁?数据库中的死锁避免是否可用刚才说的方法来避免?
-
如果进程一次锁住数据库中的多条记录来避免死锁,会带来什么问题?你觉得应该怎样解决这个问题?
-
如果数据库中的确发生了死锁,应该怎么解决?
-
说一下数据库中左连接是怎么做的?
-
如何优化连接操作?
-
文件系统有没有了解
-
通用的数据库有哪些,mysql 存储引擎有哪些,innodb 底层存储结构是什么
-
比较熟悉的 linux 命令有哪些
-
线程之间如何保证公共变量的一致性(锁的机制)
-
http常用状态码 502?
-
网络拥塞现象排查,为啥网络传递越来越快(慢开始算法)
-
raft原理,一致性hash算法
-
dubbo负载均衡,根据场景你选用哪种,为什么
-
你谈谈你对zk的理解,redis分布式锁有啥问题
-
springcloud,注册中心原理,配置中心原理,dubbo服务发现,熔断限流。
-
DNS 的过程,DNS 有什么安全问题?DNS 底层是什么(UDP,IPV4…)?DNS 会减缓访问速度吗?怎么解决?
-
ip 报文是怎么发到目的地的?路由寻址。 怎么知道ip 对应哪个主机(arp)?
-
Redis为什么快?
-
redis的备份机制
-
Spring的事务了解吗?
-
事务回滚怎么实现的呢?Hibernate,MySQL的都可以讲讲
-
Java集合类有哪些
-
ArrayList是线程安全的吗?如果想让ArrayList线程安全怎么做?
-
数据库设计相关:分库分表的场景
-
讲一讲用到垂直分表的数据库的数据模型?
-
设计题:短链接服务设计。那新浪微博链接举例,长短链接要互相转换。有的短链接转长链接可能QPS会到十几万。
-
session 和 cookie 是什么,有什么区别
-
在浏览器输入一个网址会发生什么
-
Java 内存模型,线程属于哪块区域
-
红黑树特性;和平衡搜索二叉树的区别;时间复杂度
-
TCP/IP模型
-
lock 和 synchronized 区别
-
乐观锁和悲观锁
-
使用的JDK 版本;1.6、1.7、1.8 都有什么区别
-
有做过数据库优化吗
-
varchar(35)的含义;中文在varchar中占几个字符;编码有哪些
-
https 建立连接的过程
-
http 状态码
-
重定向和转发区别
-
mysql 事务并发的问题解决方法
-
String 创建对象;intern 方法
-
== 和 equals 区别
-
Lambda
-
JVM组成部分
-
虚拟机栈和本地方法栈区别(线程私有,每个线程都有一个)
-
可以用堆代替栈嘛(区别)
-
JVM为啥要有垃圾回收器
-
如何定位垃圾,那些是ROOT节点
-
Java程序占用cpu100%如何排查解决
-
Connection=keep-alive干嘛的
-
为啥用Websocket做实时通信连接, JSONP了解吗
-
长轮询机制不能做通信吗
-
Kafka顺序消费如何保证
-
Kafka中Partion和Consumer对应关系
-
Redis分布式锁先SETNX后,未来得及设置过期时间宕机了怎么办
-
Redis内存不足时怎么样
-
Redis如何查看大KEY
-
LUA脚本有了解吗
-
Redis如果有大量Key同一时间失效怎么办
-
Redis Pipeline
-
Linux断开SSH连接(窗口),如何让进程继续执行
-
Http cookie客户端能修改吗,服务端能修改吗.做什么的
-
Http连接Time wait是啥意思
-
java里面hashcode的实现原理是什么,知道有哪些计算hash的算法
-
哈希地址冲突有哪些解决方式
-
TCP握手,timewait作用,TCP握手的时候要交换什么数据,拥塞控制控制的是什么
-
DNS用的什么通信协议
-
僵尸进程,怎么解决
-
redis为什么那么快,epoll实现原理,为什么epoll比select快
-
mysql缓冲池有哪些东西
-
项目有没有mysql主备,知不知道mysql半同步
-
如何防止sql注入,mybatis里#和$的区别
-
k8s service是如何发现pod的
-
k8s 负载均衡
-
k8s 如果pod挂了怎么办,是否还会被调用到