电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java類初始化時機測試方法解析

瀏覽:79日期:2022-08-27 11:19:22

<clinit>()方法

Java 類加載的初始化過程中,編譯器按語句在源文件中出現的順序,依次自動收集類中的所有類變量的賦值動作和靜態代碼塊中的語句合并產生方法。 如果類中沒有靜態語句和靜態代碼塊,那可以不生成<clinit>() 方法。

并且 <clinit>() 不需要顯式調用父類(接口除外,接口不需要調用父接口的初始化方法,只有使用到父接口中的靜態變量時才需要調用)的初始化方法 <clinit>(),虛擬機會保證在子類的 <clinit>() 方法執行之前,父類的 <clinit>() 方法已經執行完畢(所以java.lang.Object 類總是第一個被加載)

Java類初始化時機測試方法解析

準備父類和子類

class Father { static int father_a = 1; static { System.out.println('父類靜態代碼塊執行'); } static class StaticInnerClass { static { System.out.println('靜態內部類靜態代碼塊執行'); } }}class Son extends Father { static { System.out.println('子類靜態代碼塊執行'); son_a = 300; } static int son_a = 100; static final int M = 1;}

Main方法:

1:父類沒有被引用但是會被先加載

new Son();

Java類初始化時機測試方法解析

2:反射也會產生主動引用:

Class a = Class.forName('clinit.Son');

(運行結果同1)

3:子類使用父類靜態變量或方法不會產生類的引用

System.out.println('Father.a = ' + Son.father_a);

Java類初始化時機測試方法解析

4:通過類創建數組不會加載類(只是開辟一塊空間)

Son[] sons = new Son[8];

Java類初始化時機測試方法解析

5:使用常量不會加載父類和之類(常量在Linking階段就保存在常量池當中了)

System.out.println('Son.CONST = ' + Son.CONST);

Java類初始化時機測試方法解析

6:引用靜態內部類不會加載外部類(應用于單例模式)

new Father.StaticInnerClass();

Java類初始化時機測試方法解析

代碼總結:

public static void main(String[] args) throws Exception {// 1.父類沒有被引用但是會被先加載// new Son();// 2.反射會產生主動引用// Class a = Class.forName('clinit.Son');// 3.子類使用父類靜態變量或方法不會產生類的引用// System.out.println('Father.a = ' + Son.father_a);// 4.通過類創建數組不會加載類(只是開辟一塊空間)// Son[] sons = new Son[8];// 5.使用常量不會加載父類和之類(常量在Linking階段就保存在常量池當中了)// System.out.println('Son.CONST = ' + Son.CONST);// 6.引用靜態內部類不會加載外部類(應用于單例模式)// new Son.StaticInnerClass(); }}

PS:由于是按出現的順序執行的,為了避免不必要的麻煩,應盡量把靜態變量寫在靜態代碼塊之前

public class Test { public static void main(String[] args) { System.out.println('a = ' + cls.a); }}class cls { static int a = 10;8 static { a = 20; }9 }

Java類初始化時機測試方法解析

如果 調換順序輸出結果將是 a = 10

class cls { static { a = 20; } static int a = 10; }

Java類初始化時機測試方法解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | 长城人品牌官网 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 天长市晶耀仪表有限公司| 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 安徽华耐泵阀有限公司-官方网站 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 健康管理师报考条件,考试时间,报名入口—首页 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 传爱自考网_传爱自学考试网 | 小型数控车床-数控车床厂家-双头数控车床| 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 杭州双螺杆挤出机-百科 | 字典-新华字典-在线字典查字-字典趣| 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 心得体会网_心得体会格式范文模板| 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 |