java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?

java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?小编典典静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆的部分中,因为它们是反射数据(与类相关的数据,而不与实例相关的数据)的一部分。更新说明:请注意,只有变量及其技术值(原始或引用)存储在PermGen空间中。如果你的静态变量是对对象的引用,则对象本身存储在堆的常规部分(青年/旧世代或幸存者空间)中。这些对象(除非它们是类之类的内部对象)不会存储在PermGen空间中。例:sta…

大家好,又见面了,我是你们的朋友全栈君。

小编典典

静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆的部分中,因为它们是反射数据(与类相关的数据,而不与实例相关的数据)的一部分。

更新说明:

请注意,只有变量及其技术值(原始或引用)存储在PermGen空间中。

如果你的静态变量是对对象的引用,则对象本身存储在堆的常规部分(青年/旧世代或幸存者空间)中。这些对象(除非它们是类之类的内部对象)不会存储在PermGen空间中。

例:

static int i = 1; //the value 1 is stored in the PermGen section

static Object o = new SomeObject(); //the reference(pointer/memory address) is stored in the PermGen section, the object itself is not.

关于垃圾回收的一句话:

不要不依赖finalize(),因为它不能保证运行。JVM完全可以决定何时运行垃圾收集器以及收集什么,即使对象符合垃圾收集的条件。

当然,你可以将静态变量设置为null,从而删除对堆上对象的引用,但这并不意味着垃圾收集器将收集它(即使没有更多引用了)。

另外,finalize()它仅运行一次,因此你必须确保它不会引发异常,否则会阻止对象被收集。如果你通过某些异常暂停完成,finalize()则不会再次在同一对象上调用。

最后要注意的是:如何存储代码,运行时数据等取决于所使用的JVM,即HotSpot可能与JRockit不同,并且在同一JVM版本之间甚至可能有所不同。上面的内容基于Java 5和6的HotSpot(基本上是相同的),因为在回答之时,我会说大多数人都使用了这些JVM。由于Java 8的内存模型发生了重大变化,因此上述陈述可能不适用于Java 8 HotSpot,并且我没有检查Java 7 HotSpot的变化,所以我想以上对于该版本仍然适用,但我不确定在这里。

2020-03-06

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136616.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RewriteCond 和RewriteRule

    RewriteCond 和RewriteRuleApache的Mod_rewrite学习(RewriteCond重写规则的条件)收藏RewriteCondSyntax:RewriteCondTestStringCondPattern[flags]  RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这…

    2022年5月1日
    37
  • Java 中的 StringBuilder 类的常用方法

    Java 中的 StringBuilder 类的常用方法StringBuilder类提供了很多方法来操作字符串:例如:在下面的示例代码中,创建了StringBuilder对象,用来存储字符串,并对其做了追加和插入操作。这些操作修改了str对象的值,而没有创建新的对象,这就是StringBuilder和String最大的区别。运行结果: …

    2022年7月17日
    18
  • 微商分销代理商城源码带代理等级和升级条件 thinkphp框架「建议收藏」

    微商分销代理商城源码带代理等级和升级条件 thinkphp框架「建议收藏」  介绍:微商分销代理商城源码基于think框架开发是一款微商分销代理商城源码,可以自己设置代理等级和升级条件(如购买指定商品、消费额度)网站搭建方式介绍:测试环境php7.0+mysql5.6数据库配置文件applicationdatabase.php后台/admin用户:admin密码:123456下载链接:thinkphp框架微商分销代理商城源码-代理等级和升级条件…

    2022年5月17日
    47
  • 电子元器件/模块供应商汇总

    电子元器件/模块供应商汇总本榜单内的35家企业中,上市/拟上市公司有11家、官方自愿披露数据的企业有16家,累计约占总样本数的80%;非官方来源的第三方佐证数据有8个,约占20%。中电港产品线:3PEAK、华大北斗、AMD、Amlogic、AMS、Barefoot、上海贝岭、BOSCH、Centec、Dialog、DatangNXP、奇鲸科技、Dynax、EPSON、复旦微电子、Gemalto、HDSC、Hosonic、ISSI、Lattice、Liteonsemi、Maxim、MAXLINE…

    2022年6月16日
    30
  • 最火前端Web组态软件(可视化)

    最火前端Web组态软件(可视化)随着物联网、大数据等技术高速发展,我们逐步向数字化、可视化的人工智能(AI)时代的方向不断迈进。本文将介绍mxgraph,le5le-topology,HT-2D/3D等当前流行的前端组态软件,以及发展的趋势。

    2022年5月30日
    103
  • Vue2+VueRouter2+webpack 构建项目实战(一)准备工作

    Vue2+VueRouter2+webpack 构建项目实战(一)准备工作Vue2+VueRouter2+webpack构建项目实战(一)准备工作之前写的博客没有采用打包工具,而是直接引用js的方式来做的。这种方式很扯淡,也因此,我写了三篇博客之后就没有再写了。通过几个月的学习和实战,基本厘清了Vue1+VueRouter1+browserify的一些技术点。并且通过几个实际项目的工作,已经验证了自己利用该技术完成项目是没有问题的了。但是,现在主流的打包方式已经

    2022年7月27日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号