Q&A宝典-试炼篇
z 2019-01-31
复习
此为试炼篇,欲知后事如何,且看下篇分解!!
# java基础知识
- 栈和队列的区别
- 接口和抽象类的区别
- int和Integer的区别
- 常量池的问题
- ==和equals的区别
- 重载和重写的区别
- String和StringBuilder、StringBuffer的区别
# 集合框架
- ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurrentHashMap的底层实现原理
- 1.7版本和1.8版本的HashMap的区别
- 1.7版本和1.8版本的ConcurrentHashMap的区别
- HashMap能不能排序?HashMap的长度为什么要是2的幂次方
# 多线程
- 创建线程的几种方式?wait,sleep分别是谁的方法,区别?线程间的通信方式?
- 介绍下什么是死锁,遇见过死锁吗?你是怎么排查的(可以通过jps排查)
- 创建线程池的几种方式,线程池有什么好处
- 线程继承和接口的区别,接口有什么好处
- synchronized、Lock、ReentrantLock的区别,用法及原理
- CountDownLatch与CyclicBarrier用法
- ThreadLocal的用法和原理
- volatile关键字的作用和原理
- 乐观锁和悲观锁
- 对公平锁,非公平锁,可重入锁,自旋锁,读写锁的理解
- CAS是什么及基层原理
- ArrayBlockQueue,LinkedBlockingQueue,SynchronousQueue等等阻塞队列的理解
- ThreadPoolExecutor的传入参数及内部工作原理
- 给你一个具体的业务场景,让你使用ThreadPoolExecutor创建一个合适的线程池
- 分布式环境下,怎么保证线程安全
# jvm
- JVM内存机制
- 介绍下垃圾收集机制,垃圾收集有哪些算法,各自的特点
- 聊聊GC,谈谈Major GC,Full GC区别,垃圾收集器有哪些,他们的区别
- OutOfMemoryError这个错误你遇到过吗,你是怎么解决处理的
- JVM调优有哪些参数,介绍下,线上环境上,你是怎么查看JVM的参数并进行调优的
- 能不能自己写一个类叫java. lang. String(类加载的过程,双亲委派模型)
# 框架相关问题
- Spring用了哪些设计模式?Spring注入bean的方式?对SpringIOC和SpringAOP的理解
- Spring事务的隔离机制和传播机制
- Mybatis的缓存机制(一级缓存和二级缓存),Mybatis的mapper文件中#和$的区别
- SpringMVC的流程
- Spring和SpringBoot的区别
- 对SpringBoot的理解
- RPC框架有哪些,他们的区别
- Dubbo的使用和理解
- SprigCloud的使用和组件,谈谈你得理解
# 消息中间件
- 你们公司是如何进行消息中间件的技术选型
- 如何保证消息中间件的高可用
- 如何保证消息中间件重复发送消息
- 消息队列积压了大量的消息,你该怎么处理
- 如何保证消费者消费消极是有顺序的
- 让你来开发一个消息中间件,你会怎么架构
# 缓存
- 你们公司为什么要使用Redis,Redis有几种数据类型
- Redis持久化机制,Redis的过期策略
- 怎么保证Redis的高可用
- 什么是缓存穿透,如何避免,什么是缓存雪崩,如何避免
- 如何保证缓存与数据库的读写一致性
- Redis单线程模型原理,为什么能支撑高并发
- Redis哨兵架构的理解和底层原理
# 数据库
- 工作中你是怎么优化sql的
- 什么情况下,索引会失效
- 数据库的存储引擎,比如:MySQL的MyISAM和InnoDB区别
- 索引的最左原则
- 索引的底层原理
- 你们公司是怎么进行分库分表,分库分表的方案
# 其他
- 分布式事务是怎么解决的
- 分布式session方案
- 设计一个秒杀场景
- 怎么防止表单多次提交
- Linux的基本操作命令
- ElasticSearch的使用和原理
- zookeeper的使用和原理
打赏一下
「真诚赞赏,手留余香」
# 打赏记录
打赏者 | 打助金额 (元) | 支付方式 | 时间 | 备注 |
---|---|---|---|---|
John | 12 | 微信 | 2020-06-09 | tip of you |
艾斯 | 32 | 支付宝 | 2020-07-11 | 火拳赞赏 |
HickSalmon | 15 | 微信 | 2020-09-21 | 有赏交流 |