Java
吃货先生
几年工作经验总结,在一些难点中加入自己的理解,希望与您交流,共同成长
展开
-
Java volatile 怎么保证不被指令重排序优化
内存间交互操作lock: 作用主内存unlock: 作用主内存read/load:这两个操作顺序执行,不能单独出现;主内存的变量=>工作内存的变量use: 作用工作内存,把工作内存变量传给执行引擎assign: 作用工作内存,把执行引擎收到的值赋给工作内存变量store/write: 这两个操作顺序执行;不能单独出现;工作内存的变量=>主内存的变量通过主内存与工作内存交互来理解这些操作...原创 2018-02-04 13:46:04 · 4811 阅读 · 2 评论 -
JVM编译优化
JVM编译优化JVM编译优化编译器与解释器解释器编译器触发条件热点代码编译优化技术表达式优化方法内联逃逸分析编译器与解释器解释器 省去编译时间,立即执行编译器how?3阶段 1.高级中间代码 方法内联,常量替换2.低级中间代码 控制检查消除,范围检查消除3.机器代码原创 2018-02-04 15:27:51 · 269 阅读 · 0 评论 -
协变与逆变
型变(协变与逆变)今天理清了一下关于java与scala中的型变这个概念, 比较一下这两个JVM语言是如何对待这个问题的Java中的协变与逆变static class Person { public void hi() { System.out.println("hi"); }}static class Student extends Person {原创 2018-02-06 11:02:46 · 243 阅读 · 0 评论 -
设计模式-Visitor
引子1.方法重载class FirstTest { static class Person{ } static class Man extends Person{ } static class Test { void run(Person person) { System.out.println("this is person fun"); ...原创 2018-03-04 13:53:44 · 236 阅读 · 0 评论