当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

对于规范和实现,你会混淆吗?

发表于: 2015-07-19   作者:yangshangchuan   来源:转载   浏览:
摘要: 昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息: JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So

昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:

JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. Some of these data areas are created on Java Virtual Machine start-up and are destroyed only when the Java Virtual Machine exits. Other data areas are per thread. Per-thread data areas are created when a thread is created and destroyed when the thread exits. http://url.cn/eyfKNQ

早上起床后发现了一个朋友的回复:

川哥,一直有一个疑问。之前了解到Java内存对于堆内存分为新生代,老年带,永久带,而常量池和字节码文件归属于永久带内存,这里为啥又属于方法区了~对于Java内存分为堆和非堆又是以什么维度划分的

我的回复如下:

你之前的了解没有错,"permanent generation"(永久带)是JVM规范的实现之一(即HotSpot)的概念,“Method Area”(方法区)是JVM规范中的概念,在JVM规范中明确指出:方法区逻辑上是堆的一部分,规范没有强制指定方法区在内存中的位置(参见规范2.5.4节描述: Although the method area is logically part of the heap, simple implementations may choose not to either garbage collect or compact it. This specification does not mandate the location of the method area or the policies used to manage compiled code.)在最新的HotSpot中,已经移除了"permanent generation":The Permanent Generation (PermGen) space has been replaced by a new space called Metaspace. 至于如何区分堆(heap)和非堆(non heap),我认为需要把握堆的定义,一开始说堆是用于存储类实例(class instances )和数组(arrays),后来又说方法区(Method Area)逻辑上也是堆的一部分,当然,除了这两部分,其他的都是非堆(non heap)了(参见规范2.5.3节描述:The heap is the run-time data area from which memory for all class instances and arrays is allocated.)

有不同想法或疑惑的同学欢迎一起讨论!

 

 

 

 

 

对于规范和实现,你会混淆吗?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我们从七岁就开始学习,到现在已经有十五年了,难道还没学会学习?很遗憾!是的,到现在大多数人还
洗手是最价廉、最简单的健康干预,洗手看似简单,却也蕴含着大学问。在“病从口入”的过程中,我们
本题节选自《C/C++程序员面试指南》一书 面试题1:斯密斯夫妇握手问题 史密斯夫妇邀请另外四对夫妇
本文已迁移至:http://thinkinside.tk/2013/01/01/money.html 快年底了,假如你们公司的美国总部给
在MindManager 15中文版思维导图中,用户为了美化导图,往往会用到导图背景、主题图片等功能,MindM
  Ubuntu 高调推出后,Firefox OS 紧跟其后,在巴塞罗那世界移动大会上宣布推出Firefox移动操作系
下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (
过了“圣诞节”,一切回归自然,兴奋,激动地心情过后,还有什么? -----------------无疑,(代码陪
读研已经快一个学期了,小硕期间的研究方向也基本定下来了。但常常和身边的朋友们聊天,大家抱怨最
  程序员热衷于长时间地工作。我想说的是,你就承认吧,你的工作/老板并没有让你这样做,你自己要
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号