码云地址:https://gitee.com/qinxuewu/basic_induction_of_java
常用集合
- Map系:HashMap, LinkedHashMap, TreeMap, WeakHashMap, EnumMap
- List系:ArrayList, LinkedList, Vector, Stack;
- Set系:HashSet, LinkedHashSet, TreeSet;
- 工具类:Collections,Arrays
- 哪些集合类是线程安全的
- 这几道Java集合框架面试题几乎必问
- Java 集合框架常见面试题总结
- ArrayList 源码学习
- LinkedList 源码学习HashMap(JDK1.8)源码学习
对象
JVM相关
- JMM内存模型
- 虚拟机类加载机制
- 内存分配与回收策略
- Class文件结构
- java运行时内存划分
- Minor GC和Full GC区别
- JVM垃圾回收机制:垃圾回收算法 垃圾回收器 垃圾回收策略
- jvm参数的设置和jvm调优
- 什么情况产生年轻代内存溢出、什么情况产生年老代内存溢出
- Java内存模型之happens-before
- jvm参数的设置
- 运行时数据区域
- 字符串常量池、class常量池和运行时常量池
多线程并发
- Synchronized的实现原理
- 并发之CAS操作
- 并发之AQS操作
- 多线程池
- volatile关键字解析
- JMM内存模型(原子性,可见性,一致性,重排序)
- ConcurrentHashMap 实现原理
- ReentrantLock 重入锁实现原理
- ReentrantReadWriteLock 读写锁实现原理
- 乐观锁和悲观锁的实现
- 死锁代码实现
- Disruptor并发框架
- 同步屏障CyclicBarrier
- 等待多线程完成的CountDownLatch
- 控制并发线程数的Semaphore
- Exchanger(交换者)是一个用于线程间协作的工具类
- JUC之阻塞队列:SynchronousQueue
- JUC之阻塞队列:ArrayBlockingQueu
分布式相关
- 分布式限流
- 分布式缓存设计
- 分布式 ID 生成器
- 基于 Redis 的分布式锁
- 为什么分布式一定要有Redis?
- 基于Zookeeper实现分布式锁
- zookeeper相关,节点类型,如何实现服务发现和服务注册
- nginx负载均衡实现
- ActiveMQ、RabbitMQ、Kafka的区别
- HBase安装配置
- kafka安装配置与使用
- 消息队列的使用场景
- 缓存和数据库一致性同步解决方案
- 阻塞、非阻塞、同步、异步区别
- 什么是分布式事物
数据库相关
- MySQL 索引原理
- 数据库水平垂直拆分
- SQL 优化
1. 什么情况索引不会命中,会造成全表扫描 - mysql索引的实现 B+树的实现原理
http协议
- TCP/IP协议
- http请求报文结构和内容
设计模式
创建型
- 抽象工厂模式,工厂方法,建造者模式,原型模式,单例模式
结构型
- 适配器模式,桥接模式,组合模式,外观模式,装饰者模式,享元模式,代理模式
行为型
- 责任链模式,命令模式,解释器模式,迭代模式,中介者模式,备忘录模式,观察者模式,状态模式
- 策略模式,模板方法模式,访问者模式
数据结构与算法
- 红包算法
- 二叉树中序遍历
- 是否为快乐数字
- 链表是否有环
- 从一个数组中返回两个值相加等于目标值的下标
- 一致性 Hash 算法
- 限流算法
- 三种方式反向打印单向链表
- 合并两个排好序的链表
- 两个栈实现队列
- 动手实现一个 LRU cache
spring/springBoot/springCloud相关
- SpringMVC运行流程及九大组件
- Spring AOP 的实现原理
- IOC容器初始化过程
- Spring Bean 生命周期
- SpringCloud+Eureka注册中心访问权限配置
- springCloud+Consul实现注册中心
- SpringCloud+Eureka注册中心集群配置
- springCloud服务链路追踪
其它
- dubbo入门demo(zookeeper 安装)
- Sublime Text常用插件
- Linxu服务命令
- windows装(glup打包)
- fastdfs文件服务器安装
- Windows Docker 安装
- Dockerfile创建Java web项目镜像
- mysql怎样导入超过5G以上的sql文件
- Java操作 ActiveMQ 远程监控JMX设置