前言
volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~
- 1.volatile的用法
- 2.vlatile变量的作用
- 3.现代计算机的内存模型(计算机模型,总线,MESI协议,嗅探技术)
- 4.Java内存模型(JMM)
- 5.并发编程的3个特性(原子性、可见性、有序性、happen-before、as-if-serial、指令重排)
- 6.volatile的底层原理(如何保证可见性,如何保证指令重排,内存屏障)
- 7.volatile的典型场景(状态标志,DCL单例模式)
- 8.volatile常见面试题&&答案解析
一面
- 自我介绍
- 项目中的监控:那个监控指标常见的有哪些?
- 微服务涉及到的技术以及需要注意的问题有哪些?
- 注册中心你了解了哪些?
- consul 的可靠性你了解吗?
- consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过?
- 项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
- Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别?
- Spring Cloud 有了解多少?
- Spring Bean 的生命周期
- HashMap 和 hashTable 区别?
- Object 的 hashcode 方法重写了,equals 方法要不要改?
- Hashmap 线程不安全的出现场景
- 线上服务 CPU 很高该怎么做?有哪些措施可以找到问题
- JDK 中有哪几个线程池?顺带把线程池讲了个遍
- 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
- SQL 索引的顺序,字段的顺序
- 查看 SQL 是不是使用了索引?(有什么工具)
- TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的