黑马程序员技术交流社区
标题: 小白技术贴 [打印本页]
作者: 王春辉 时间: 2018-10-9 14:01
标题: 小白技术贴
在黑马学习了一周了,有些内容是我学习中感觉有必要分享的: 对象内存图
内存总共分为:栈内存、堆内存、方法区、本地方法栈、寄存器。我们目前在java中常考虑的是前三个。
1、一个对象调用方法的内存图
[attach]253070[/attach]
由图可知:
首先在方法区中产生phone.class文件,包括成员变量和成员方法,然后main方法进栈,在栈内存中产生一个phone p的变量,并且在堆内存中产生一个Phone文件,然后把Phone在堆中产生的内存地址赋给栈中的p。当访问堆中的成员变量时,通过栈内存中的地址找到堆内存的成员变量和成员方法。
数组
数组是用来存储数据的,把一些比较多的数据集中到一起,方便内存的管理和使用。
1、数组的概念:
数组就是存储固定长度的容器,并且数组存储的长度要保持一致。
2、数组的定义:
数组的定义分为三种:
1、动态定义:
int[ ] a =new int[ 数组长度
这种定义方式是已知数组长度,但是数组内容不可知。
举例:动态定义一个数组长度为10的数组
int[ ] a=new int[10]
2、复杂的静态定义
int[ ] a = new int[ ]{数据1,数据2,数据3};
举例:定义一个数组元素为1,2,3的数组
int[ ] a =new int[ ]{1,2,3}
3、简易的静态定义
Int[ ] a = { 数据1,数据2,数据3};
举例:定义一个数组元素为1,2,3的数组
Int[ ] a= {1,2,3};
3、数组的访问:
索引:(也叫数组下标),是每一个存储数组元素都含有的,都会有一个从0开始的编号,这个编号称为数组索引
索引访问数组的元素:
数组名[索引]=数值 是为数组中的元素赋值
数值=数组名[索引] 是获取数组中的元素
例:
访问数组a中的第三个元素: a[2];
给数组的第一个元素赋值: a[0]=1;
4、数组的内存图:
如上图所示,数组程序的执行流程:
1、main方法进入方法栈执行
2、创建数组,在堆内存中开辟空间存储数组,并且在堆内存中有自己的内存地址
3、在栈内存中生成arr数组变量,并且将堆内存的内存地址赋值给arr数组变量
以上是一个数组的内存图,其实两个数组在内存的执行流程大致相同。
5、数组的遍历
数组的遍历是根据for循环,将数组中的每一个元素分别取出来。
例:访问数组a中的每一个元素
for(int i=0;i<a.length;i++){
System.out.println (a);
}
以上就是最近学习的一些需要注意的地方。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |