jvm六:主动使用(1.new一个对象, 2.反射)
生活随笔
收集整理的這篇文章主要介紹了
jvm六:主动使用(1.new一个对象, 2.反射)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
new一個對象?
package com.atChina.jvm;public class Test4 {public static void main(String[] args) {// 所有的java虛擬機實現必須在每個類或接口被java程序"首次主動使用"時才初始化他們。(初始化只會被執行一次)Father4 f = new Father4(); // new一個對象,屬于主動使用,會初始化,因此會執行類的靜態代碼塊System.out.println("已經初始化......");Father4 ff = new Father4(); // 不是首次使用,因此不會再次初始化了,不會再次執行類的靜態代碼塊了} } class Father4{static{System.out.println("桃園結義");} }?反射
package com.atChina.jvm;class CL{static {System.out.println("Class CL");} }public class Test12 {public static void main(String[] args) throws Exception {ClassLoader loader = ClassLoader.getSystemClassLoader();Class<?> clazz = loader.loadClass("com.atChina.jvm.CL"); // 沒有導致CL類的初始化System.out.println(clazz);System.out.println("==============================");clazz = Class.forName("com.atChina.jvm.CL"); // 反射屬于主動使用,會導致CL類的初始化System.out.println(clazz);} }?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的jvm六:主动使用(1.new一个对象, 2.反射)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm五:编译期不能确定常量的值
- 下一篇: jvm七:数组创建本质