c语言会出现fullgc,以上述代码为基础,在发生过一次FullGC后,上述代码在He
这是一个关于java的垃圾回收机制的题目。垃圾回收主要针对的是堆区的回收,因为栈区的内存是随着线程而释放的。堆区分为三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,使用永久代来实现方法区)jdk1.7及以后,常量池逐步从永久代中移出,在堆内另外开辟了一块空间。
年轻代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。
年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收
永久代:存储的是final常量,static变量,常量池。
str3,str4都是直接new的对象,而substring的源代码其实也是new一个string对象返回,如下图:
经过fullgc之后,年老区的内存回收,则年轻区的占了15个,不算PermGen。所以答案选C
常量池是介于栈和堆外的另一种独立的内存管理空间,相同内容常量池中永远只有一份,基本数据类型、对象的引用都存在栈中,执行速度快,包装类型,对象存储,new出来的对象都是存储在堆中,Byte,Short,Integer,Long,Character这5种整型的包装类只是在对应值小于等于127时才可使用对象池。超过了就会堆内创建新对象,所有才会出现上述情况,而String是个较为特殊的包装类型,直接用=“”创建的数据是存放在常量池,且无论数据大小都不会申请空间创建,除非使用new关键字。
c语言会出现fullgc,以上述代码为基础,在发生过一次FullGC后,上述代码在He相关推荐
- VC代码的编写和调试---编写易于调试的VC代码
转自:http://www.vcgood.com/forum_posts.asp?TID=1692&PN=1 一 程序的设计 要避免错误,首先要从好的设计开始.对于程序的设计,需考虑到程序的两 ...
- c语言编程工具栏没有了,2009计算机二级C语言:工具栏,可拖动,并在被隐藏的地方显示的实现代码...
2009计算机二级C语言:工具栏,可拖动,并在被隐藏的地方显示的实现代码 分类:计算机等级 | 更新时间:2016-07-07| 来源:中华网考试 1.在Toolbar资源中新建一个工具栏IDR_TO ...
- 【初级C语言】代码版式(空行,空格,对齐,长行代码,注释)
.空行 1. 空行起着分隔程序段落的作用,空行会在预编译阶段被删除不会浪费内存,请放心使用! 2. 每个函数定义结束之后都要加空行 3. 在一个函数体内,逻揖上密切相关的语句之间不加空行(如if-el ...
- python登录代码思路_用python登录Dr.com思路以及代码分享
用python登录Dr.com思路以及代码分享 发布于 2014-08-28 22:31:52 | 192 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...
- OpenAI数十亿代码训出Codex:能将英语翻译成代码,给四句话就能写个神经网络...
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:大数据文摘本文约2088字,建议阅读4分钟 本文介绍了Open ...
- eclipse java代码某一行需要修改注释_看看这些Java代码开发规范吧!你好,我好,大家好!...
作为一名开发人员,当你接手他人的项目时,且当你阅读他人的代码时,是有没有遇到脑袋充血,感觉Java要把你"送走"的感觉呢?我们在用Java开发技术进行开发前,一定要牢牢恪守Java ...
- vba遍历数组_VBA代码解决方案的第59讲内容:如何在代码运行时创建数组
大家好,我们今日继续讲解VBA代码解决方案的第59讲内容:如何在代码运行时创建数组 .数组大家并不陌生,在之前我讲过很多了,估计详细阐述数组的只有我这个平台可以找到了,今日讲的是在VBA中代码运行的时 ...
- 代码命名,代码里的命名规则:错误的和正确的对比 命名方法总结 “自我描述的源代码”用代码表达出你的思想,让其他人通过代码能明白你的意图。...
http://www.aqee.net/express-names-in-code-bad-vs-clean/ 编程初学者总是把大量的时间用在学习编程语言,语法,技巧和编程工具的使用上.他们认为,如果 ...
- java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势
java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...
- java 编写代码_Java 7:如何编写非常快速的Java代码
java 编写代码 当我第一次写此博客时,我的目的是向您介绍ThreadLocalRandom类,它是Java 7中新增的用于生成随机数的类. 我在一系列微基准测试中分析了ThreadLocalRan ...
最新文章
- Servlet(1)
- 机器学习知识点(二十八)Beta分布和Dirichlet分布理解
- 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器
- 计算机一级专题训练,计算机等级考试一级MSOFFICE综合训练试题
- Linux下C++静态库、动态库的制作与使用
- php+nginx环境下的php报错设置
- perl linux 独立运行,Perl脚本打包为独立执行程序
- ASCII 码表对照 2
- 三菱伺服自动调谐_三菱伺服参数设置调试软件MR Configurator2 Ver 1.70Y
- ado控件连接mysql_VB利用ADO控件连接access数据库
- 元胞自动机及其MATLAB实例
- H5页面内实现分享给微信好友功能
- java opencv 模板匹配算法_opencv 模板匹配
- winform做的单机登录界面和账号注册界面
- hdu 4607 Park Visit(树上最长链)
- 从软件工程师到IT猎头续:告诉你如何写简历
- ANGULAR之中的$STATE、 $WATCH、 $SCOPE、 $ROOTSCOPE 分别是什么?
- 瓶子破碎的最高安全楼层
- 麦克米伦高阶词典 7500词汇表 红星
- 当财务部的人会编程,会发生什么?Python实现自动化群发工资条