社区
Java SE
帖子详情
常量的存在与回收
猪小烧
2007-06-17 07:00:53
例如
String str = "string";
对于这个常量,是什么时候java会回收他呢?
如何回收呢?
...全文
260
10
打赏
收藏
常量的存在与回收
例如 String str = "string"; 对于这个常量,是什么时候java会回收他呢? 如何回收呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_pla
2007-06-18
打赏
举报
回复
常量是不会被vm回收的,只有在vm退出时交给os回收
tdy1234
2007-06-18
打赏
举报
回复
你这个问题的实质是这样的 String str = (new String)"string";
java 中间仍和变量都是引用存储在栈中。而后面的"string";存储在动态内存中间。java有一个垃圾回收机制,当没有任何引用指向这个“string”时,垃圾回收会将这一块内存释放。这个市自动触发执行的。如果对于static关键字定义下的常量要进行回收那么就要自己写回收函数了。
大概就是这样
「已注销」
2007-06-18
打赏
举报
回复
常量是编译之后就定下来的
至于读取文件的时候,通过readLine()读进来的,不是常量
joejoe1991
2007-06-18
打赏
举报
回复
学习。。 汗 常量不回收 那读取文件的时候 不就生成了N多垃圾String实例了么
「已注销」
2007-06-18
打赏
举报
回复
常量不回收
除非你的程序退出才会回收
ngqzmjmj
2007-06-18
打赏
举报
回复
既然是常量当然就不回收了,
zhuyf333
2007-06-18
打赏
举报
回复
当str不再指向“string”,而且没有其他引用指向“string”时,“string”就成为垃圾,之后
java虚拟机会在适当的时候回收这块空间(也许在需要内存的时候,不确定)
shuhang1106
2007-06-18
打赏
举报
回复
当,str=null或不在指向“string”,而且没有其他引用指向“string”时,“string”就成为垃圾,当java虚拟机启动时就会将其回收,释放内存
xiaxinhuo
2007-06-18
打赏
举报
回复
java自动回收 就是它的gc功能.
hyylcz3
2007-06-17
打赏
举报
回复
没用的时候JVM自动收回,
也可以调用 System.gc();
常量
池垃圾
回收
:判断类的存活
方法区中的
常量
池也需要进行垃圾
回收
。主要
回收
对象是废弃的
常量
和无用的类。其中,判断类的存活需要同时满足以下3个条件:1. 该类所有的实例已经被
回收
,即Java堆中已经不
存在
任何该类的实例。2. 加载该类的ClassLoader已经被
回收
。3. 该类对应的java.lang.Class对象没有在任何地方被引用,即无法在任何地方通过反射访问该类的方法。同时满足这3个条件的类,就是可回...
【JVM】String
常量
池与 JVM 字符串
常量
池的垃圾
回收
转载自http://blog.csdn.net/xsf50717,做了一点修改补充。 1、String
常量
池 为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串
常量
时,JVM会首先检查字符串
常量
池。如果字符串已经
存在
池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。 Note:
常量
池在java用于保
存在
编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的
常量
,也包括字符串
常量
,如String s = "java
Java
常量
池原理以及垃圾
回收
Java
常量
池
常量
池:用于存放编译期间生成的各种字面量和符号引用 字面量:由字母数字等构成的字符串或数值
常量
,如int a = 1中 1就是字面量 符号引用:编译原理中的概念;是相对直接引用来说的,主要包括三类
常量
类和接口的全限定名, 字段的名称和描述符 方法的名称和描述符 这些
常量
池现在都是静态信息,只有运行时被加载到内存后,这些符号才有对应的内存地址信息;就变成了运行时
常量
池,在程序加载或运行时会被转变为直接引用,也就是动态链接; 字符串
常量
池 字符串的创建和分配耗费高昂的时
【Java】字符串
常量
池(实现原理、垃圾
回收
)
前言 字符串
常量
池在java6之前位于永久代,永久代从名字上已经告诉我们这里垃圾
回收
效果很差,如果字符串
常量
池中含有大量的字符串,那么很容易造成永久代溢出。从java7开始,字符串
常量
池挪到了堆中,堆空间一般比较大,而且堆空间的
回收
效率很高,所以相对于在永久代,放到堆空间后,内存溢出的情况大大减少。 本文接下来先通过代码观察一下
常量
池,然后介绍字符串
常量
池如何实现的。本文使用的是jdk8。 本文目录 一、代码实验 二、字符串
常量
池实现原理 一、代码实验 这里主要使用String.intern方法
Java
常量
什么时候被
回收
,JVM GC调优(2)-GC算法判定对象可以被
回收
(部分摘自深入理解Java虚拟机) - Java 技术驿站-Java 技术驿站...
这次我们介绍JVM中的GC算法引用计数法可达性分析法首先我们提出四个问题哪里的内存需要
回收
?什么时候
回收
?如何
回收
?Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”, 墙外面的人想进去, 墙里面的人却想出来。哪里需要
回收
?需要排查各种内存溢出,内存泄漏的问题的时候,当垃圾的收集称为系统高并发量的瓶颈的时候。我们需要堆垃圾收集技术做必要的监控和调节。由于在线程独占区的线程开始和...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章