Java虚拟机类加载的初始化
我们知道,《Java虚拟机规范》章节5.5 Initialization ^(1)^ 中严格规定了有且只有六种情况必须立即对类进行初始化:
遇到new(实例化对象)、getstatic(读取一个没有被final修饰、没有在编译期把结果放入常量池的类的静态字段)、putstatic(设置一个没有被final修饰、没有在编译期把结果放入常量池的类的静态字段)或者invokestatic(调用一个类的静态方法)这四条字节码指令时,如果类没有进行初始化则需要触发初始化。
使用java.lang.reflect包的方法对类型进行反射调用
父类还没有初始化
虚拟机启动时,用户需要制定一个要执行的主类(main)
当使用java7新加入的动态语言支持时,如果一个MthodHandle实例最后的解析结果是REF_getStatic、REF_putstatic、REF_invokestatic、REF_newInvokeSpecial四种类型的方法句柄
一个接口定义了default修饰的接口方法,同时接口的实现类发生了初始化
除此之外,所有引用类型的方式都不会触发初始化,称为被动引用:
子类引用 ...
IDEA如何快速添加JavaDoc文档注释
作为程序员,添加javadoc注释可以说是必要的一步,但是每一次都自己手动添加大段内容也无疑是一件很麻烦的事情。
该文章主要做个记录,方便自己下次如果需要换环境的时候重新配置:
(这里的方法是idea自动生成的,不需要安装插件)
类、接口注释
File–>settings–>Editor–>File and Code Templates–>Files–>Class
在模板上加入文档注释模板:
12345678910/** *@ClassName ${NAME} *@Description TODO *@Author ${USER} *@DATE ${DATE} ${TIME} *@Version 1.0 */public class ${Name}{ }
完成之后以后每次创建类或者接口的时候就会自动生成注释了
方法注释
File–>Settings–>Editor–>Live Templates
单击 ...