A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

王春辉

注册黑马

  • 黑马币:20

  • 帖子:8

  • 精华:0

[报到] 小白技术贴

© 王春辉 注册黑马   /  2018-10-9 14:01  /  504 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

       在黑马学习了一周了,有些内容是我学习中感觉有必要分享的:  对象内存图
内存总共分为:栈内存、堆内存、方法区、本地方法栈、寄存器。我们目前在java中常考虑的是前三个。
1、一个对象调用方法的内存图

由图可知:
首先在方法区中产生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、数组的内存图:
图片2.png
如上图所示,数组程序的执行流程:
1、main方法进入方法栈执行
2、创建数组,在堆内存中开辟空间存储数组,并且在堆内存中有自己的内存地址
3、在栈内存中生成arr数组变量,并且将堆内存的内存地址赋值给arr数组变量
以上是一个数组的内存图,其实两个数组在内存的执行流程大致相同。
5、数组的遍历
数组的遍历是根据for循环,将数组中的每一个元素分别取出来。
例:访问数组a中的每一个元素
for(int i=0;i<a.length;i++){
System.out.println (a);
}
以上就是最近学习的一些需要注意的地方。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马