jvm(一)--java内存区域划分

前言

  本笔记作为jvm学习系列的第一篇,对jvm的内存区域的划分做一个简单介绍。

  以前总想着用一篇大文章大面积的总结jvm的笔记,但是这样却使得后面的笔记难以下笔,并且对之前大篇的笔记也不好维护。所以,现在想把原本大的jvm笔记拆分成很多篇小章节,也方便以后对文章的重新修正与维护。

java内存区域

example

  每次重看笔记,我总喜欢来一段简单的 java 代码片段,以此,来唤起因为上班拧螺丝而忘记了许久的,初学 java 时的记忆。

//运行时, jvm把TestObjectCreate的信息都放入方法区 
public class TestObjectCreate {
    //main方法本身放入方法区
    public static void main(String[] args) {
        Sample test1 = new Sample("测试1");
        //test1是引用,所以放到栈区里,Sample是自定义对象应该放到堆里面
        Sample test2 = new Sample("测试2");

        test1.printName();
        test2.printName();
    }
}

//运行时, jvm把Sample的信息都放入方法区 
class Sample {
    //new Sample实例后,name引用放入栈区里,name对象放入堆里
    private String name;

    public Sample(String name) {
        this.name = name;
    }

    public void printName() {
        System.out.println(name);
    }
}

  在创建对象过程中, 方法区 的交互图如下,

1-1对象创建时栈堆方法区的交互

java 内存区域划分

  java 的内存划分成两大区域: 线程独占区和线程共享区

   线程独占区:虚拟机栈、本地方法栈、程序计数器

   线程共享区:堆、方法区

1-2java内存区域

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值