Java内存模型

as-if-serial属性

菩提本无树, 何处惹尘埃。

即时编译器(和处理器)需要保证程序能够遵守as-if-serial属性。通俗地说, 就是在单线程情况下, 要给程序一个顺序执行的假象。即经过重排序的执行结果要与顺序执行的结果一致。

另外, 若两个操作之间存在数据依赖, 那么及时编译器(和处理器)不能调整它们的顺序, 否则将会造成程序语义的改变。

Read more

Java反射API的用法

获取Class对象

  • Class.forName获取Class对象
  • getClass()方法
  • 直接使用类名+”.class”. 对于基本数据类型, 它们的包装类型拥有一个名为”TYPE”的final静态字段, 指向该基本数据类型对应的Class对象

integer.TYPE 指向 int.class
对于数组类型 可以使用类名+ “[].class”来访问, 如int[].class

Read more

Java对象的内存布局

java对象的额外内存开销(对象头)

运行数据 (8字节)

包括

  • 哈希码
  • GC信息
  • 所信息
对象类型指针 (8字节)

指向对象对应的类

Read more

Java工具集LTS

使用javap来查看字节码

默认情况下打印所有非私有方法和字段

  • -p选项 还会打印私有方法和字段
  • -v选项 尽可能打印所有信息(这里指)
  • -c选项 只查看方法对应字节码

JOL工具

Read more

java入门学习

Java (c++-)学习笔记

day1 4/14 2019

Java 核心优势:

跨平台/可移植性

Java 各个版本

javaEE(Java Enterprise Edition):企业版:定位在服务器上的应用<br>
JavaME:微型版----会被安卓取代<br>
JavaSE==:(Java Sandard Edition) :标准版:定位在个人计算机的应用<br>
Read more