面试题
面试总结
java基础问题
集合
list、set、map的区别
说说HashMap,put方法、get方法、以及扩容机制
arrylist、linklist的区别
hashset、treeset的区别
HashMap、hashTable的区别
说说treeMap
concurrentHashMap是如何保证并发安全的(jdk7、jdk8)
copyOnwrite arraylist
hash冲突有哪些解决方法
介绍一下Atomic 原子类
包装类
说说Integer,其中的缓存数组[-128,127]
自动装箱、自动拆箱
String对象相等判断==、equal,定义的一个String对象,jvm内存是什么样的
jvm
说说java运行时数据区
java内存模型(主内存,工作内存)
各个区域什么时候回发送内存溢出
垃圾收集算法
可达性分析
哪些对象可以作为GCROOT对象
垃圾收集器(重点cms、G1优缺点)
触发fullGC的条件
对象在的jvm的内存分配
jvm调优参数
常量池(class文件常量池、运行时常量池、字符串常量池)
类加载机制
双亲委派模型
好处、工作机制
类加载器
如何在项目中使用自己重写的String类(java命令参数)
继承、接口、抽象类
继承链调用优先级
final、finally、finalize关键的有什么区别
线程
创建线程有哪些方式
Callable、Future和FutureTask浅析
线程的状态以及状态的流转
线程间的通信机制有哪些
如何实现线程安全
volatile和synchronized的区别、原理
synchronized与lock区别、原理
wait方法和waitAll方法
sleep()与wait()区别
线程的锁升级过程
ThreadLocal类
thread、threadLocal、threadLocalMap的关系
CAS的aba问题
构建线程池的参数,线程池的种类、适用场景、如何工作的
如何给线程池中的线程命名
Java如何查看死锁
如何避免死锁
Exception、error、运行时异常和一般异常有何异同
数据库(mysql)
数据库的索引算法有哪些
索引分类
索引的数据结构
索引原理
索引失效的场景
如何查看一条SQL的执行计划
数据库的隔离级别
什么是脏读、不可重复读、幻读
隔离级别的原理
事务的原理
分库分表如何做、带来的问题有哪些、如何解决
如何实现分布式事务
如何分析慢SQL、如何优化SQL
数据库的锁有哪些
什么是间隙锁
并发新增的时候数据库会发送死锁吗
什么是悲观锁、什么是乐观锁
redis
redis主从模式、哨兵模式、集群模式有什么区别
哨兵模式和集群模式在api的使用上有和区别
什么是缓存击穿、缓存穿透、缓存雪崩,分别如何解决
集群模式如何实现动态扩容
redis的数据类型有哪些
有序集合的底层数据结构是什么
如何使用redis实现一个分布式锁
使用redis作缓存如何保证数据一致性
网络
tcp/ip五层网络模型
OSI七层网络模型
各层常见的协议有哪些,以及协议的常用端口有哪些
说说tcp三次挥手、四次握手,以及为什么握手需要3次,而挥手需要4次
tcp连接过程中客户端、服务端的状态机
tcp的流量控制和拥塞控制
tcp和udp有什么区别
说说ARP协议
说说DNS是如何工作的
TCP协议如何保证连接的可靠性
get请求和post请求的区别
说说mac地址与ip地址
IP地址、mac地址、网络号、主机号如何计算
http与https有什么区别
https如何保证安全性
https如何建立连接
重定向与转发的区别
执行execute()方法和submit()方法的区别是什么
设计模式
工厂模式(多种)
单例模式(多种实现的不同)
生产者/消费者模式
观察这模式
代理模式
数据结构
数组
链表
树
二叉树
图
算法
大数想加
大数相减
排序两个有序数组
排序N个有序数组
各种排序算法
概率p输出1,概率1-p输出0,等概率输出0和1
P函数等概率输出1-100,设计P1函数以80%的概率输出1-20,P2以20%的概率输出21-100
有一个包含正负数的数组,把正数放到数组前面,负数放到数组后面,并且保证数字的相对位置不变
排序n个数值在0-100的整数
有一串数字,输出所有可能组合的IP地址
二叉的遍历、蛇型遍历
求一个数组的最大连续和(进阶:同时输出最大连续和子串)
删除一个链表的倒数第k个节点
判断一个链表算法有环
判断一个图是否有环
删除一个链表给定的节点(进阶:只使用一个指针)
判断一个字符串是否是回文字符串
找出两个字符串最长匹配的子串
其他
说说spring的ioc和aop,原理是什么
spring框架使用了哪些设计模式
springboot中的注解(干什么的,有什么用)
springboot与spring的区别
mybatis的原理
mybatis与其他持久层框架的区别
设计一个电梯实体类及其接口
接口幂等性设计
使用redis设计一个限流器(例:1分钟允许处理100个请求)
线上应用进程突然挂掉了,如何排除问题
线上应用慢了如何排查问题
如何vim
有一个文件,文件的内容有3列A、B、C,使用哪些Linux可以将A、C两列互换
有3个线程,如何让它们同时运行、如何顺序运行
说说springmvc都有哪些组件,处理流程是怎么样的
说说什么是微服务
spring bean的生命周期
写SQL,删除重复的记录
spring中如何实现全局异常处理