Java数组在内存中是如何存放的
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。那么Java数组在内存中是如何存放的?以下仅供参考!
Java中有两种类型的数组:
基本数据类型数组;
对象数组;
当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的,因为数组也是一个对象;
一维数组
int[] arr = new int[3];
在以上代码中,arr变量存放了数组对象的引用;如果你创建了空间大小为10的整形数组,情况是一样的',一个数组对象所占的空间在堆上被分配,然后返回其引用;
二维数组
那么二维数组是如何存储的呢?事实上,在Java中只有一维数组,二维数组是一个存放了数组的数组,如下代码及示意图:
int[ ][ ] arr = new int[3][ ];
arr[0] = new int[3];
arr[1] = new int[5];
arr[2] = new int[4];
对于多维数组来说,道理是一样的;
数组对象及其引用存放在内存中的哪里?
在Java中,数组同样是一个对象,所以对象在内存中如何存放同样适用于数组;
正如我们都知道的,java运行时数据区包括堆,JVM栈和其它。如下代码是一个小例子,那么就让我们来看看数组和它的引用在内存中是如何存放的.
class A { int x; int y;
}
ic void m1() { int i = 0;
m2();
}public void m2() {
A a = new A();
}
...
-
java中String和StringBuffer的区别
java中String和StringBuffer的区别String这个类是Java中使用得最频繁的类之一,以下就是小编精心推荐java中String和StringBuffer的区别,希望对大家有帮助!看到这个讲解的不错,所以转一下在java中有3个类来负责字符的操作。acter是进行单个字符操作的,ng对一串字符...
-
2017年3月计算机二级考试Java关键字
大家回忆一下我们在学习汉语的时候,开始学的是什么?肯定是先学一些单个的字,只有认识了单个的字,然后才能组成词,然后才能慢慢的到句子,然后到文章。学习同计算机语言跟这个过程是一样的,首先我们得学习一些计算机看得懂的单个的字,那么这些单个字在Java里面就是关键...
-
Java工程师是做什么的
Java工程师职位描述提要:精通Java/J2EE编程,能熟练使用SpringMVC、hibernate、框架进行项目开发,熟练使用freemarker等前端模板语言。Java工程师职位描述:1、负责产品功能开发;2、遵循公司技术标准、规范,高质量完成设计、开发任务;3、参与研发部门技术积累、技术难题...
-
40个Java多线程问题总结
Java多线程是什么Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级。依我的理解,Java多线程完全就是为了提高CPU的利用率。Java的线程有4种状态,新建(New)、运行(Runnabl...