前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】堆(heap)、栈(stack)和方法区(method)

【Java】堆(heap)、栈(stack)和方法区(method)

作者头像
陶然同学
发布2023-02-24 11:48:35
4260
发布2023-02-24 11:48:35
举报
文章被收录于专栏:陶然同学博客

栈:调用方法将在栈中开辟内存,称为入栈(压栈)。

栈内存存放基本类型值和引用数据类型的地址。

栈内存中的数据,没有默认初始化值,需要手动设置。

方法调用完成,栈内存立即释放,称为出栈(弹栈)

堆:用于存放使用new创建的对象或数组。

所有的对象都有内存地址值。

数据都有默认初始化值。

堆内存中的对象不再被指向时,JVM启动垃圾回收机制,自动清除。

方法区:与Java堆一样,是各个线程共享的内存区域。

存储已被Java虚拟机加载的类信息、常量、静态变量、以及编译器编译后的代码等。

代码语言:javascript
复制
public class User {
    int m ;
    public void demo() {
        int i;
        System.out.println(i);	            //编译时异常,局部变量没有初始化,及没有默认值
        System.out.println(m);	            //运行时,可以输出0
    }
}
public class TestDemo {
    public static void main(String[] args) {
        User user = new User();
        user.demo();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档