java 温故知新 第四天

数组:为系统开辟连续内存空间

动态初始化 只指定长度,由系统给初始化值

格式:type [] name = new type[length]
整形:byte,short,int,long--初始值为0
浮点:float,double--初始值为0.0
布尔:boolean--初始值为false
字符:char--初始化值为'\u0000'每一位都是十六进制

静态初始化 给出初始化值,由系统决定长度

格式:type [] name = new type [] {a,b,c};可先声明再赋值
type [] name = {a,b,c}; 声明与赋值必须同事进行
type [] name = {a,b,c}的存储过程
1)在栈内存中开辟一个空间存name
2)在对内存中开辟三个空间,每个空间给个初始化值
3)数组内容重新给值
4)栈内存存放堆内存地址

常见实例:

取最值,
反转,
查表法,
元素查找

二维数组

  • 格式: type [] [] name = new type [row] [col];
    解释: 定义 一个二维数组,里面包含row个一位数组,每个一维数组有col个空间
  • 格式:type [] [] name = new type [row] []; 声明了二维数组
    type[] name2 = new type[col] 对二维数组中的一维数组初始化
  • 格式:type [] [] name = {{1,2,3},{4,5},{6,7,8,9}}
    这种定义方式一维数组的长度可控
  • 二维数组内存图:

只有二维数组的引用在栈内存里面,已为数组的引用在堆内存里面

java 温故知新 第四天_第1张图片
52525.png

值传递问题:

  • 基本数据类型:基本数据类型里面存放的是值,这个值的变化跟那个值的变化没有联系,所以不会改变原值。
  • 引用数据类型:引用数据类型里面存放的是地址,引用的是同一个地址,对这个地址里的对象的操作,会保留下来,所以会改变原值。

你可能感兴趣的:(java 温故知新 第四天)