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

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

Java對象不使用時賦值null的意義詳解

瀏覽:7日期:2022-09-04 15:56:34

先看代碼

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); } System.gc(); }}

idea配置gc日志打印

Java對象不使用時賦值null的意義詳解

運行上面的代碼,載圖gc日志

Java對象不使用時賦值null的意義詳解

現在我們修改上面的測試代碼,將placeHolder置為null

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); placeHolder = null; } System.gc(); }}

再次運行程序,查看gc日志

Java對象不使用時賦值null的意義詳解

由以上載圖日志可以明顯看到二者差別,所以不用對象置為null還是很有意義的。

為啥會造成二者的區別呢?

這還得從jvm認定垃圾的機制:可達性分析說起。

說起這個可達性,首先就得說到根,而“本地變量表”恰恰就可以看成是根。

上面兩段代碼本地變量表是不一樣的。

先看第一段代碼,就是placeHolder沒有置null的“本地變量表 ”

使用javap -v TestDemo1.class

Java對象不使用時賦值null的意義詳解

可以看到placeHolder還在本地變量表中,而且它占用slot槽1號位置, 所以jvm認為它還是活著的。

然后,我們再看placeHolder =null這段代碼的'本地變量表'的情況,其實它與上面一樣,看不出啥差別。

但是如果我們在placeHolder后面再聲明一個變量

public class TestDemo1 { public static void main(String[] args) { if (true) { byte[] placeHolder = new byte[64 * 1024 * 1024]; System.out.println(placeHolder.length / 1024); } String name = 'admin'; System.gc(); }}

Java對象不使用時賦值null的意義詳解

可以看到name這個變量名將slot槽1號位置占用了,是否可以說明placeHolder沒啥用了呢

而且這段代碼與placeHolder = null的gc日志完全一樣。那么應該可以說明,我們聲明的這個String name = 'admin' 斷開了棧中placeHolder與堆中實例之間關系。

而placeHolder =null應該也有這個功能。

總結:代碼離開變量作用域時,并不會自動切斷其與堆的聯系。

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

標簽: Java
相關文章:
主站蜘蛛池模板: 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 电抗器-能曼电气-电抗器专业制造商| 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 陕西自考报名_陕西自学考试网 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 换链神器官网-友情链接交换、购买交易于一体的站长平台 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 |