JVM内存结构

方法区(JDK8以上叫元空间)和堆为线程共享区,虚拟机栈、本地方法栈及程序计数器为线程独占区,  还有一个没有在下图中体现的叫做直接内存(Direct Memory),不受JVM GC 管理。

1.线程共享区域随虚拟机的启动而创建关闭而销毁。

2.线程独占区域生命周期与线程相同, 依赖用户线程的启动/结束而创建/销毁(在Hotspot VM内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死对应)。
3. 直接内存并不是JVM运行时数据区的一部分,但也会被频繁的使用: 在JDK 1.4引入的NIO提供了基于Channel与Buffer的IO方式, 它可以使用Native函数库直接分配堆外内存,
然后使用DirectByteBuffer对象作为这块内存的引用进行操作(详见:Java I/O 扩展), 这样就避免了在Java堆和Native堆中来回复制数据, 因此在一些场景中可以显著提高性能。

最新文章

  1. 计算机程序的思维逻辑 (43) - 剖析TreeMap
  2. jsp实现简单的分页
  3. No.010:Regular Expression Matching
  4. mysql查询语句包含有关键字
  5. C#高级功能(四)扩展方法和索引
  6. JVM学习笔记(一)------基本结构
  7. Swift计算属性
  8. 本机Font字体
  9. OpenCV例程实现人脸检测
  10. Delphi Socket的最好项目——FastMsg IM(还有一些IM控件),RTC,RO,Sparkle等等,FileZilla Client/Server,wireshark,NSClient
  11. 使用C#和.NET 4编写的并行应用程序“多核并发编程的规则”
  12. SQL SERVER 2008 Hierarchyid数据类型
  13. Centos7网络配置-转载
  14. vue loadMore 上拉刷新不能实现的坑
  15. js之数组操作
  16. Java并发编程阅读笔记-锁和活跃性问题
  17. 自适应PC端网页制作使用REM
  18. PHP算法排序之快速排序、冒泡排序、选择排序、插入排序性能对比
  19. __PRETTY_FUNCTION__, __FUNCTION__, __func__
  20. Eclipse中复制项目重命名后重新发布,项目名在地址栏仍然是原来的项目名”的问题

热门文章

  1. 40、JSON数据源综合案例实战
  2. Ultra Edit中的数据对齐
  3. fgets()函数
  4. 《挑战30天C++入门极限》C++的iostream标准库介绍(3)
  5. eclipse快捷键及设置【转】
  6. 无法将“Scaffold-DbContext”项识别为 cmdlet、函数、脚本文件或可运行程序的名称...
  7. postgresql 字段sql语句 更改表名
  8. SpringBoot访问不了JSP但却能进入后台
  9. sass - for循环写法
  10. pip安装各种模块