文档章节

Java中的内存分配

亭子happy
 亭子happy
发布于 2014/04/08 11:50
字数 229
阅读 69
收藏 5

    今天举例说一下Java中的堆和栈。

    1、基本类型

int a = 1;

    对于以上变量a,是在栈中存放的。    

    2、 对象    

A a = new A();

   其中,引用a是在栈里存放的,对象A()是在堆里存放的。

    3、数组

int[] a = new int[4];
a[0] = 1;
a[1] = 2;
a[3] = 3;
a[4] = 4;

   数组的内存分配如下图所示,引用a是在栈中,数组对象在堆中。

    

    4、函数一

void test() {
    int[] a = new int[4];
    a[0] = 1;
    a[1] = 2;
    a[3] = 3;
    a[4] = 4;
    
    change(a);
}

void change(int[] a) {
    a[0] = 10;
}

  内存情况如图:

    

    5、函数二

void test() {
    int[] a = new int[4];
    a[0] = 1;
    a[1] = 2;
    a[3] = 3;
    a[4] = 4;
    
    change(a);
}

void change(int[] a) {
    a = new int[4];
    a[0] = 7;
    a[1] = 8;
    a[2] = 9;
    a[3] = 10;
}

    内存情况如下图:

    







© 著作权归作者所有

共有 人打赏支持
亭子happy
粉丝 119
博文 234
码字总数 46492
作品 0
海淀
程序员
私信 提问
mina中的allocate和directAllocate区别

allocate和directAllocate 区别在于内存的类型,allocate分配的内存在jvm管理范围内,directAllocate分配的内存则不是由jvm管理,可以理解成是类似C++那种分配的内存,大一定会说那由directA...

JavaGG
2009/07/08
362
0
容器中 Java 应用程序的内存和 CPU 如何分配?看这一篇就够了!

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! 随着2018年的结束,我们将回顾排名前五的最受读者欢迎的文章。今天分享的第一篇文章,将帮助那些在容器中运行...

docker公司
01/04
0
0
Tomcat中JAVA JVM内存介绍、内存溢出及合理配置

一、Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创...

學無止境
2018/07/16
0
0
Tomcat中JVM内存溢出及合理配置

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行...

陶邦仁
2012/10/18
0
9
Tomcat中JVM内存溢出及合理配置

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行...

奋斗的小菜一碟
2015/11/09
0
4

没有更多内容

加载失败,请刷新页面

加载更多

想问一下C++里queue要怎么遍历

如题,想知道怎么遍历<queue>对象的元素? 貌似不能遍历。要么全部pop push一遍,要么换个容器呗。 queue是先进后出的数据类型,只能不断读top()然后再pop()掉。故意把遍历操作隐藏掉了,...

shzwork
昨天
2
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
2
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
3
0
【转】go get命令使用socket代理

由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如: 1234...

yiduwangkai
昨天
6
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部