学习笔记1:深入理解Java虚拟机——JVM高级特性与最佳实践_走进java_java内存区域与内存溢出异常

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y41992910/article/details/83548962

第一部分:走进java

Java虚拟机
代码在华章下载

jdk发布了六个命令行工具和两个可视化故障处理工具。

推荐书籍
设计原本
领域特定语言

现在著名的Java虚拟机
hotspot vm(默认)
jrockit vm
j9 vm

jdk
sun jdk
open jdk:是开源的(是sun公司宣布开源之后有的)
oracle jdk是商用的(大部分跟openjdk是一样的,只是有了一些商用的功能)

Java的下一个十年规划
1.模块化(jdk9中实现)
2.混合语言
3.多核并行
4.丰富的语法
5.64位虚拟机(这就是为什么java内存限制在4G的主要原因)


第二部分 自动内存管理机制

第2章 java内存区域与内存溢出异常

2.1 运行时数据区域
在这里插入图片描述

Java虚拟机运行时数据区
1.程序计数器。
2Java虚拟机栈
3本地方法栈
4.Java堆:
作用:存放对象的实例,被所有线程所共享。

5.方法区:用于存储已被虚拟机加在的类信息,常量,静态变量,即时编译器编译后的代码数据等。(一般人们也把这部分归入堆中,单严格来说,它有自己的学名)

6.运行时常量池:是方法区的一部分

7.直接内存:nio使用
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/y41992910/article/details/83548962