总结篇(16)---JVM(java虚拟机) (3)运行时数据区

本文详细介绍了Java虚拟机(JVM)的运行时数据区,包括方法区、堆、虚拟机栈、本地方法栈和程序计数器的功能与作用。同时,通过示例解释了创建线程和对象对JVM内存的影响。

运行时数据区

  • Java虚拟机在执行Java程序的过程中,会把所有它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途。

备注:有些人也会称为Java虚拟机内存模型,但无法考证。要注意的是,Java虚拟机内存模型跟Java内存模型有所不同。


一、运行时数据区概括图



二、运行时数据区各个模块介绍


  1. 方法区:属于共享内存区域,存储已被虚拟机加载的类信息常量静态变量即时编译器编译后的代码的等数据。可以理解为已经编译好的代码储存区。
  2. 堆:这块区域是JVM所管理的内存中最大的一块区域,线程共享,主要存放对象实例数组
  3. 虚拟机栈:线程私有,生命周期和线程一致。主要存储基本数据类型,以及对象的引用
  4. 本地方法栈:区别于Java虚拟机栈的是,java虚拟机栈为虚拟机执行java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务
  5. 程序计数器:内存中间小,线程私有。它可以看做是当前线程所执行的字节码的行号指示器。也就是说,线程主要是执行任务,而执行到哪里,需要使用程序计数器来记录。

备注:
(1)创建线程对哪块JVM内存区域有影响?

        方法区跟堆是线程共享数据区域,创建线程不会对其产生太多影响。但虚拟机栈、本地方法栈、程序计数器是线程私有的,每个线程里的数据是不一样的,而且都需要虚拟机栈、本地方法栈、程序计数器,因此每创建一个线程都要为该线程创建虚拟机栈、本地方法栈、程序计数器。也就是说创建线程对JVM内存区域中的虚拟、本地方法栈、程序计数器有影响。
        
(2)Object obj = new Object();发生了什么?

        代码左边的Object obj等于在虚拟机栈的本地变量表中创建一个变量,是一个引用类型。
        代码右边的new Object()等于在堆中给他创建一个对象(分配内存)变量,存储了Object类型的所有实例数据值。
        代码中间的 = 符号则是将new Object对象的内容可通过虚拟机栈中obj进行访问。
        在java中都是通过引用来操纵对象的。

更多java基础总结(适合于java基础学习、java面试常规题):

总结篇(1)---复用类

总结篇(2)---多态

总结篇(3)---内部类 (1)内部类的基本概念

总结篇(4)---内部类 (2)内部类之静态内部类

总结篇(5)---内部类 (3)内部类之成员内部类

总结篇(6)---内部类 (4)内部类之局部内部类

总结篇(7)---内部类 (5)内部类之匿名内部类

总结篇(8)---序列化

总结篇(9)---字符串及基本类 (1)字符串及基本类之基本数据类型

总结篇(10)---字符串及基本类 (2)字符串及基本类之java中公共方法及操作

总结篇(11)---字符串及基本类 (3)String对象

总结篇(12)---字符串及基本类 (4)Integer对象

总结篇(13)--- Java注解及元注解

总结篇(14)---JVM(java虚拟机) (1)JVM虚拟机概括

总结篇(15)---JVM(java虚拟机) (2)类加载器

总结篇(16)---JVM(java虚拟机) (3)运行时数据区

总结篇(17)---JVM(java虚拟机) (4)垃圾回收

总结篇(18)---JVM(java虚拟机) (5)垃圾回收算法

总结篇(19)---JVM(java虚拟机) (6)JVM调优

总结篇(20)---反射

总结篇(21)---Java IO

总结篇(22)---Java 进程

总结篇(23)---Java线程及其相关(1)线程介绍

总结篇(24)---Java线程及其相关(2)多线程及其问题

总结篇(25)---Java线程及其相关(3)线程池及其问题

总结篇(26)---Java线程及其相关(4)ThreadLocal

总结篇(27)---Java并发及锁(1)Synchronized

总结篇(28)---Java并发及锁(2)Volatile

总结篇(29)---Java并发及锁(3)Lock

总结篇(30)---Java并发及锁(4)常见锁及分类

总结篇(31)---JUC工具类(1)CountDownLatch

总结篇(32)---JUC工具类(2)CyclicBarrier

总结篇(33)---JUC工具类(3)Semaphore

总结篇(34)---JUC工具类(4)Exchanger

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值