锁->syncronized->Monitor->CAS # 什么是锁 锁其实就是线程共享的一个值,锁存在的意义就是 "
JAVA SE10之后,每6个月更新一次版本,每3年有一个LTS版本。即将发布的JAVA17即是LTS。 http://openjdk.java.net/ JAVA8-JAVA17: 1. lambda表达式--函数式接口实现类 2. 方法引用 3. 接口增加default默认实现方法和static静态默认方法 4. 重复注解 5. Optional类 6. Stream流 7. 新的时间日期类 8. 标准库中增加Base64相关类 9. 其他。 1. Jigsaw模块化 2. Jshell 2. 集合增加.of(E...values)方法,构造不可变集
一、 对象的创建 1. 执行new 操作时,会先看能不能在常量池中定位到这个类的符号引用,然后检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有就要先执行相应的类加载过程。 2. 类加载过后虚拟机将给这个新的实例分配内存。对象(实例)所需要的内存大小在类加载完成后就可以确定了。 3. 内存分配完成后 虚拟机必须把分配的内存空间初始化,各字段设为0值。 4. 接下来,虚拟机还要对对象进行必要的设置,例如这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码(实际上对象的哈希码会延后到真正调用Object::hashCode方法时才计