预备知识
请谈谈你对volatile的理解
-
1.volatile是Java虚拟机提供的轻量级的同步机制
- 1.1 保证可见性
- 1.2 不保证原子性
- 1.3 禁止指令重排
-
2.JMM你谈谈(线程安全性获得保证)
-
2.1 可见性
-
2.2 原子性
-
2.3 VolatileDemo代码演示可见性+原子性代码
-
2.4 有序性
指令重排类比:高考时答卷子,不一定按试题顺序做,先做简单,再做复杂的
-
3.你在哪些地方用到过volatile?
彩蛋
-
1.什么是JUC
java.util.concurrent -
2.并发与并行
- 并发:秒杀(多个线程去访问同一个资源)
- 并行:泡面(一边烧热水,一边倒调料),写论文(一边听音乐,一边写论文)
-
3.JMM与JVM
- JMM(Java Memory Model,Java内存模型)
- JVM(Java Virtual Machine,Java虚拟机)
-
4.系统分类
-
高并发/单机版/分布式
-
5.CPU-Z软件
看处理器和缓存
-
6.硬件读取速度
硬盘<内存<CPU
在内存和CPU之间,还有一层缓存cache
-
7.工作内存与主内存
如上是t1,t2,t3三个线程分别读取age=25,然后t1修改age=37,t2和t3立即知道t1修改了age,这就是JMM的可见性
-
8.学习三把斧(另一位老师方法论:目标,思路,代码)
- 理论
- 代码
- 小总结
-
9.idea 模板,以创建线程为例【idea模板化编程要掌握】
-
10.idea快捷键
1) tsleep回车【应该得配置】
- ctrl+alt+m抽取方法
3)forthread10(其实也是模板)
4)10.for回车
-
11.idea查看字节码(汇编指令)
配置参考
-
12.API调用工程师 vs 增删改查程序员
-
13.大道至简(越是朴素的道理越是整理,越是复杂说明还不成熟)
-
14.视频中出现的思维导图:2019互联网面试题第2季.mmap 可以百度搜索到