Java Statics原始,对象,方法和堆(内存管理和最佳实践)
好的,所以我一直在
Java开发一年多,我正在努力深入了解这个语言和最佳实践.
所以这就是我所知道的: > Java“通过类型” – 这是通过复制和对象引用传递的副本(引用指向它们在堆上的对象)的原语. 所以这里是我想要理解的: >静态和静态的最终原语和引用活动在哪里JVM能够使用单个实例? 我已经阅读了很多不同的解释(全部不同),如果一个经验丰富的Java语言的老将可以提供一个很好的解释,那么会很喜欢.提前致谢! 解决方法
年轻的空间包括伊甸园和幸存者空间.
它没有定义,但是在Sun / Oracle JVM中,静态字段生活在类字段的特殊对象中.每个类加载器都有一个实例,因此静态字段可以有多个实例.
在它们的Sun / Oracle Java 7中.他们可能在彼尔姆根或任何其他地方.
将它们保持在最低限度.
如果您可以将最终的字段更改为静态的最终字段,那么可以节省一些空间(如果有多个实例).但是,清晰度通常比性能更重要. (为了清楚,我会做这个) BTW:我在Java开发了13年.
他们是独立的每个类加载器都可以加载自己的类的版本(代码不一定相同),每个类都拥有自己的静态字段(它们也不一定相同)
没有.
否.一个位置中未定义的某些数据可能在任何地方,具体取决于实现和版本.
它是旧的一代=终身烫发的一部分. 年轻人= eden幸存者空间* 2 最大堆尺寸限制了年轻人终身总计.二代和直接记忆都有自己的限制.内存映射文件完成遵循任何这些限制. 这对于默认的并行收集器和并发标记扫描是正确的. G1收集器不会以相同的方式划分空格. 链接了解更多细节 http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html Java heap terminology: young,old and permanent generations? http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |