JVM为了方便管理内存空间,充分使用内存空间,把使用到的内存空间,分为以下几块区域,每块区域只存放特定的信息
堆:
存放信息:所有的对象和数组
这块内存区域又分为新生代、老年代。新生代用于存放刚产生的新对象,老年代存放年长的对象,多次GC都没有被回收的对象。新生代又分为三块区域:Eden:刚产出的对象,S0 1:至少经过一次GC活下的对象。之所以这样区分的目的,是为了垃圾回收快速选择要回收的对象
所有线程共享
内存溢出时抛出:OutOfMemoryError
设置该内存块大小:-Xms512m -Xmx1024m
栈:
存放信息:方法的局部变量、部分结果,并参与方法的调用和返回
栈分为,虚拟机栈和本地方法栈:两者区别不大,本地方法栈,主要是Native方法使用到内存空间,这部分由C语言实现。
每个线程都会有一个私有的栈空间
内存溢出时抛出:StackOverflowError 和OutOfMemoryError
设置该内存块大小:-Xss 1M
持久代:
存放信息:类的元数据,比如类的完整名称,父类的完整名称,类型修饰符,类的方法信息等等
设置该内存块大小:-XX:PermSize=256M -XX:MaxPermSize=512M

Java内存结构模型相关推荐

  1. 冷静对待你遇到的所有Java内存异常

    被人说烂的Java内存模型 Java内存模型的相关资料在网上实在是太多了,不管是过时的还是不过时的,网络上充斥的学习资料,比如各类研究Java内存模型的博文,也随着Java的发展,渐渐失去了其内容的准 ...

  2. Java并发知识梳理(上):并发优缺点,线程状态转换,Java内存模型,Synchronized,Volatile,final,并发三特性,Lock与AQS,ReetrandLock

    努力的意义,就是,在以后的日子里,放眼望去全是自己喜欢的人和事! 整个系列文章为Java并发专题,一是自己的兴趣,二是,这部分在实际理解上很有难度,另外在面试过程中也是经常被问到.所以在学习过程中,记 ...

  3. 从底层吃透java内存模型(JMM)、volatile、CAS

    前言 随着计算机的飞速发展,cpu从单核到四核,八核.在2020年中国网民数预计将达到11亿人.这些数据都意味着,作为一名java程序员,必须要掌握多线程开发,谈及多线程,绕不开的是对JMM(Java ...

  4. Java内存溢出详解之Tomcat配置

    Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...

  5. 32位jdk最大内存_你了解Java 内存区域和GC机制吗?

    目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...

  6. 循序渐进:带你理解什么是Java内存模型

    近期笔者在阅读<深入理解Java虚拟机:JVM高级特性与最佳实现(第3版)>,书中提到关于Java内存模型的知识点,但是看完之后还是感觉有些模糊,便查阅一些其他相关资料.本文是笔者经过对知 ...

  7. java并发编程实战:第十六章----Java内存模型

    一.什么是内存模型,为什么要使用它 如果缺少同步,那么将会有许多因素使得线程无法立即甚至永远看到一个线程的操作结果 编译器把变量保存在本地寄存器而不是内存中 编译器中生成的指令顺序,可以与源代码中的顺 ...

  8. 好理解的Java内存虚假共享(False Sharing)性能损耗以及解决方案

    虚假共享(False Sharing)也有人翻译为伪共享 参考 https://en.wikipedia.org/wiki/False_sharing 在计算机科学中,虚假共享是一种性能降低的使用模式 ...

  9. JSR 133 Java内存模型以及并发编程的最权威论文汇总

    Java内存模型 先看官方文档: https://docs.oracle.com/javase/specs/ JSR 133:Java TM内存模型和线程规范修订版:https://www.jcp.o ...

最新文章

  1. 计组--习题--总线
  2. 听完李厂长和雷布斯在乌镇讲AI段子,我突然理解为什么这两个男人选择在一起了
  3. Spark学习之简介
  4. 修改hosts文件不需要重启的方法
  5. MSScriptControl详解(可实现在C#等语言中调用JAVASCRIPT代码)
  6. delphi libeay32 各版本_Zbrush各版本合集
  7. java ajax定义_Ajax的定义
  8. 【计算机组成原理】字符、字符串以及汉字的表示方法
  9. javafx如何调节按钮位置_安全带高度调节器的小知识
  10. NS 802.11函数分析(一)
  11. .NET 环境中使用RabbitMQ 转发 http://www.cnblogs.com/yangecnu/p/4227535.html
  12. 机器视觉专用照明光源
  13. Java高并发程序设计学习笔记(十):并发调试和JDK8新特性
  14. ubuntu14安卓phalcon
  15. java项目源码分享网_分享二十套Java项目源码
  16. java绘制坐标和波形图_java绘制波形图
  17. iOS面试- 0x02 WebView
  18. 关闭amazon kindle 个人文档服务“请在48小时内点击下方以验证此请求”
  19. 电子招标投标系统 —采购招投标管理一体化系统-
  20. NVIDIA Tesla T4 检修纪录之基础安装问题

热门文章

  1. 曼哈顿算法公式_距离计算方法总结
  2. 70年代时尚偶像Bianca Jagger
  3. 如何切换Echarts主题
  4. dpdk内存管理分析
  5. 清空计算机窗口记录,win7系统怎么能够清除运行对话框历史记录
  6. JavaScript新人总结
  7. 总结:工作流,页面流,逻辑流(业务流)
  8. 阿里巴巴计算机招聘学历要求,阿里巴巴招程序员,到底看不看学历?
  9. 蓝盘绿盘黑盘红盘的区别
  10. Android从上往下滑动或从下往上滑动结束Activity