`

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

    博客分类:
  • java
阅读更多

昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读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.)

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

 

 

 

 

 

2
1
分享到:
评论

相关推荐

    华为电子器件选型规范-保险丝选型规范.doc

    对于按照IEC标准认证保险丝:保险丝可以在额定电流下运行,实现保护。例如:额定10A保险丝,可以用于10A实际工作电流。 对于单板的工作电流,应注意是允许的最低电压下的电流。例如额定电压是-48—60V,允许20%的...

    ZFJObsLib主要是通过Python写的混淆工具.zip

    具体功能有方法混淆、属性混淆、类名混淆、添加垃圾代码、自动创建垃圾类、删除注释、修改资源文件Hash值、加密字符串、翻新资源名、模拟人工混淆、混淆文件名、混淆文件目录、混淆词库、混淆日志、映射列表、敏感词...

    软件设计规范

    可能目前我们在语言层面上混淆不清的关键也在这里,没有区分语言和立体构造的责任。一个趋势是语言本身总是试图包揽建筑师的责任。把立体构造独立出来,带来的问题是:这个构造本身必须能够证明自己是正确的。1)能...

    study_obscure:混淆反混淆

    第四课 实现一个自定义检查规范的 Clang 插件 链接: 第五课 llvm-词法分析 第六课 llvm-语法分析 第七课 单个函数的解释器实现 第二章 llvm与ollvm混淆使用 第八课 llvm pass 编译与调试 链接: ...

    机器学习KNN实践—鸢尾花分类(基于sklearn库)

    利用Python实现KNN算法,完成鸢尾花分类任务,实现步骤: 1. 数据集的准备。 (1)使用SCIKIT-LEARN的自带的鸢尾花数据集,获取数据集的后两个特征,形成原始数据集D。 (2)待决策样本集D1的产生:在原始二维特征空间...

    apache-tomcat-9.0.37.exe

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    SQL Server 2008数据库设计与实现

     8.5 数据混淆  8.6 监视与审核  8.6.1 服务器与数据库审核  8.6.2 使用DML触发器查看表的变更历史  8.6.3 DDL触发器  8.6.4 分析器日志  8.7 最佳实践  8.8 总结 第9章 表结构与索引  9.1 ...

    apache-tomcat-10.0.0-M5.exe

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    与线性规范变换相关的混淆多相采样

    在这项研究中提出了在线性规范变换(LCT)域中的混叠多相采样。 结果表明,可以通过使用并行采样器在LCT域中获得更高的采样率来实现采样定理。 进一步的分析表明,x(nM + m)的LCT谱复制| X(a,b,c,d)(u)| 在...

    apache-tomcat-8.5.55.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.0.21-windows-i64.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.46.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-9.0.0.M1.tar.gz

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.51-src.zip 源码

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.19.exe

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-9.0.11.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.3.zip

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.53-src.zip源码

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-9.0.0.M20.tar.gz

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

    apache-tomcat-8.5.54-src.zip 源码

    Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...

Global site tag (gtag.js) - Google Analytics