加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长资讯 > 评论 > 正文

对生产力和薪酬的影响

发布时间:2021-02-17 11:37:35 所属栏目:评论 来源:互联网
导读:可见,在同等的栈容量下,局部变量少的函数可以支持更深的调用层次,换句话说,一个线程中可调用的方法数就越多。 本地方法栈(Native Method Stack) 本地方法栈与虚拟机栈的作用类似,区别只是前者为执行Native方法服务,后者为执行Java方法服务。有的虚拟机

可见,在同等的栈容量下,局部变量少的函数可以支持更深的调用层次,换句话说,一个线程中可调用的方法数就越多。

本地方法栈(Native Method Stack)

本地方法栈与虚拟机栈的作用类似,区别只是前者为执行Native方法服务,后者为执行Java方法服务。有的虚拟机(如Sun HotSpot虚拟机)直接把本地方法栈和虚拟机栈合二为一。

  • 线程私有
  • 和Java虚拟机栈一样,也会抛出StackOverflowError 和 OutOfMemorryError

Java堆(Java Heap)

所有的对象实例以及数组都要在堆上分配,但是随着JIT编译器的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上也渐渐变得不是那么"绝对"了。

  • 线程共享
  • OutOfMemorryError:Java heap space
  • GC的主要区域,因此也被称作"GC堆"
  • JVM所管理的内存中最大的一块
  • 虚拟机启动时创建

虚拟机规范对该区的限制

  • 可以处于物理上不连续的内存空间中,只要逻辑上连续即可
  • 即可以实现成固定大小的,也可以是可扩展的,当前主流虚拟机都是按照可扩展来实现的

方法区(Method Area)

用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

  • 线程共享
  • OutOfMemorryError:PermGen spage
  • GC比较少出现(虚拟机实现时也可以选择不实现GC,但事实证明该区域的GC是必要的)
  • 有一个别名叫"Non-Heap"(非堆):虚拟机规范中把方法区描述为堆的一个逻辑部分,为了与Java堆区分开来

浅谈“永久代”(Permanent Generation)

在HotSpot虚拟机上,很多人都更愿意把方法区称为“永久代”,但本质上两者并不等价,仅仅是因为HotSpot虚拟机的设计团队使用永久代来实现方法区而已。而对于其他虚拟机(如BEA JRockit、IBM J9等)来说是不存在永久代的概念的。目前,在HotSpot虚拟机上也有放弃永久代并逐步改为采用Native Memory来实现方法区的规划了,在JDK1.7的HotSpot中,已经把原本放在永久代的字符串常量池移出。

虚拟机规范对该区的限制

  • 可以处于物理上不连续的内存空间中,只要逻辑上连续即可
  • 即可以实现成固定大小的,也可以是可扩展的,当前主流虚拟机都是按照可扩展来实现的
  • 可以选择不实现垃圾收集

垃圾收集行为在方法区是比较少出现的,但并非数据进入了方法区就如永久代的名字一样“永久”存在了。这里的内存回收目标主要是针对常量池的回收和对类型的卸载,一般来说,这里的回收“成绩”难以令人满意,尤其是类型的卸载,条件相当苛刻,但是这部分区域的回收确实是必要的。

运行时常量池(Runtime Constant Pool)

运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。

直接内存

并非虚拟机运行时数据区的一部分,也不是Java虚拟机规范定义的内存区域。但这部分也被频繁使用,而且也可能导致OOM。

JDK 1.4中加入的NIO类,引入了一种基于通道与缓冲区的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的 DirectByteBuffer 对象作为这块内存的引用进行操作。

本机直接内存的分配不会受到Java堆大小的限制,但还是会受到本机总内存大小以及处理器寻址空间的限制。

5大数据区对比



 

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读