文章详情页
关于Java垃圾回收问题
浏览:125日期:2023-12-17 10:06:52
问题描述
循环中的变量在每次循环后都会被回收吗
比如
for (int i=0;i<1000000;i++){ Date date=new Date(); }
这个date没有被引用,这样会被垃圾回收吗? 如果创建对象被引用,结果又是怎样的了?
问题解答
回答1:java的GC有YGC和FGC。你这里没有被引用的date对象一定会被回收,但不是在每次循环结束后。GC的时机和你的代码执行没有必然联系。相关知识,你可以baidu下java GC
回答2:这个问题的答案在于,jvm的垃圾回收机制在什么情况下会进行垃圾回收。局部变量的作用于是{},也就是说,date没有被引用了,当执行垃圾回收动作的时候,这里的date就会被回收。
回答3:new一个对象,那么就是存放在堆中,而且刚创建的对象存放在eden区中,只有当eden区满了,才会触发Monitor GC进行回收。你可以在运行参数中添加-XX:+PrintGCDetails观察GC回收的情况。
标签:
java
相关文章:
1. objective-c - 从朋友圈跳到我的APP 如何实现?2. java - PHP开发微信无法获取到signature,timestamp,nonce3. 请教一个python字符串处理的问题?4. HTML5禁止img预览该怎么解决?5. 怎么可以实现在手机浏览器看到链接的title属性,就是鼠标放上去会有一个tip效果的6. 如何分别在Windows下用Winform项模板+C#,在MacOSX下用Cocos Application项目模板+Objective-C实现一个制作游戏的空的黑窗口?7. 网页爬虫 - python爬虫用BeautifulSoup爬取<s>元素并写入字典,但某些div下没有这一元素,导致自动写入下一条,如何解决?8. html5 - h5+中webview的show方法有延迟9. javascript - vscode alt+shift+f 格式化js代码,通不过eslint的代码风格检查怎么办。。。10. javascript - html 中select如何修改样式,鼠标悬浮时改变option样式,有没有插件啊
排行榜
