代码改变世界

随笔档案-2020年05月

volatile

2020-05-21 16:37 by Tony、, 169 阅读, 收藏, 编辑
摘要: volatile 有两个作用 1 线程内存可见性 2 指令排序 可见性原理: 线程在对Volatile变量执行写操作时强迫线程将最新的值刷新到主内存中,而在读操作时强迫从主内存中读入变量的值 2 指令重排 使用了volatile修饰的变量,在对改变量进行读写的时候会添加屏障规则; 在讲指令重排之前先 阅读全文

synchronized

2020-05-20 11:11 by Tony、, 223 阅读, 收藏, 编辑
摘要: synchronized的使用方式有两种 1 对一个对象进行加锁 synchronized(O){ //代码 } 2 对一个方法加锁 public synchornized void func(){ //代码 } 其实无论是对一个对象进行加锁还是对一个方法进行加锁,实际上,都是对对象进行加锁。 ja 阅读全文

双亲委派机制

2020-05-09 14:49 by Tony、, 504 阅读, 收藏, 编辑
摘要: 机制定义 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自 阅读全文

java 获取动态代理生成的 Class 文件

2020-05-07 14:17 by Tony、, 775 阅读, 收藏, 编辑
摘要: 一 获取 JDK 动态代理生成的 Class 文件 1.1 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");此方式只能在爱main函数中使用 1.2 FileOutputStream o 阅读全文
点击右上角即可分享
微信分享提示