java中JVM虚拟机内存模型详细说明
来源:才华咖 本文已影响2.76W人
来源:才华咖 本文已影响2.76W人
以下是本站小编为大家收集的java中JVM虚拟机内存模型详细说明内容,欢迎阅读学习!
JVM的内部结构如下图:
java中JVM虚拟机内存模型详细说明 - 天涯草 - 天涯草
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。
本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。
1 java内存分为:
程序计数器(当前线程所执行字节码的行号指示器,字节码解释器要通过改变这个计数器的值来选择下一条字节码指令,分支、循环、异常处理等。每条线程都有一条独立的程序计数器,属于线程私有的内存区)、
java虚拟机栈(也是线私有的,存储局部变量、操作栈,每个方法执行时创建一个栈帧,执行过程就是栈的出栈入栈操作)、
本地方法栈(执行native方法)、
年轻代堆(eden、from survivor、to survivor)、年老代堆(经过几次垃圾回收,保存下来的)、
持久代堆(也叫方法区,保存常量池和类型数据信息,不会被回收)、
直接内存(使用native方法直接分配堆外内存,再通过堆内的DirectByteBuffer作为这块内存的引用进行操作)
2 对象访问有两种:通过句柄池和直接通过指针,句柄池的好处是垃圾回收后,不需要改变对象引用,只要改变句柄引用;直接指针的好处是效率较高。
引用《深入java虚拟机第二章》
解释了minor gc和major gc,和两个survivor区之于复制收集算法的意义
3 jvm内存机制
java内存中的四种引用解析,强引用、弱引用、软引用、虚引用
JAVA覆盖率工具EMMA详细解析2016
详解Java中的Lambda表达式
java与javascript之间json格式数据互转详解
Java import以及Java类的搜索路径
在Java中执行JavaScript代码
Java语言中SDK/JDK/JRE和JVM之间的关系
Java虚拟机介绍
Java的内存模型
Java虚拟机是什么
Java内存区域的使用详解
Java 2.1 java基本类型的转换和运算符
计算机二级Java入门教程:Java类的基本构成
计算机二级JAVA考试构建JAVA程序2017
Java认证基础知识:java字符串转化整型问题
Java Ajax jsonp跨域请求详解
java与JavaScript语言有何不同
Javascript和Java语言间的异同比较
Java认证辅导:Java实现二叉树遍历算法
JavaScript与Java的区别
什么是Java虚拟机?
计算机二级JAVA全真模拟试题
Java认证考试知识点:JavaSE6的新功能
Java4安卓开发教程之java的变量
Java认证考试知识点:Java时间类的函数
Java与JavaScript的区别
Java中的main()方法详解2016
JavaScript与java语言的区别
java的数据类型说明
午夜,虚拟的诉说
JAVA认证基础知识:Java获取当前的系统时间
JAVA认证基础知识:Java文件解压缩示例
Java零基础如何学好Java语言
sun认证java程序员须知Java日志框架
JAVA认证经验分享:学好java开发的关键七步
Java入门教程:如何使用一个Java
Java与Java web的区别大纲
Java面试题Java写一个折半查找
关于java 四舍五入使java保留2位小数示例讲解
虚拟主机租用协议书
详解Java枚举类型enum及其使用