博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java对象在内存中是如何存储的
阅读量:4099 次
发布时间:2019-05-25

本文共 817 字,大约阅读时间需要 2 分钟。

原文地址:

在Java中,所有的对象都被动态地分配在堆上。这与C++不同,C++的对象要么分配在栈中,要么分配在堆上。在C++中,我们用new()来分配对象,这个对象就会被分配到堆上,如果不是全局的或者静态的,那么就会分配到栈上。

在Java中,只有我们在申明一个类型变量的时候,只创建一个引用(内存不会为对象分配)。为了给一个对象分配内存,我们必须用new()。所以对象总是分配在堆上(详细情况请看)。

例如,下面的程序不能编译,编译器报“Error here because t is not initialed”的错误。

class Test {    // class contents    void show() {        System.out.println("Test::show() called");    }}public class Main {
public static void main(String[] args) { Test t; t.show(); // Error here because t is not initialed }}

用new()分配内存可以让上面的代码运行。

class Test {    // class contents    void show() {        System.out.println("Test::show() called");    }}public class Main {
public static void main(String[] args) { Test t = new Test(); //all objects are dynamically allocated t.show(); // No error }}

转载地址:http://nkhii.baihongyu.com/

你可能感兴趣的文章
Python 趣味打怪:147 段简单代码助你从入门到大师
查看>>
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
查看>>
厉害了!Python 编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!
查看>>
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
7 年工作经验,面试官竟然还让我写算法题???
查看>>
被 Zoom 逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
查看>>
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
再见,Eclipse...
查看>>
超全汇总!B 站上有哪些值得学习的 AI 课程...
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
太赞了!GitHub 标星 2.4k+,《可解释机器学习》中文版正式开放!
查看>>
程序员用 AI 修复百年前的老北京视频后,火了!
查看>>
漫话:为什么你下载小电影的时候进度总是卡在 99% 就不动了?
查看>>
我去!原来大神都是这样玩转「多线程与高并发」的...
查看>>
当你无聊时,可以玩玩 GitHub 上这个开源项目...
查看>>
B 站爆红的数学视频,竟是用这个 Python 开源项目做的!
查看>>
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>