Java基础知识三——数组

1.语法

定义数组,初始化数组

  1. 类型数组,保存一组其他类型的数据,元素类型
    int[] int Array
    和C语言兼容方式
    int intArray[];
  2. 数组的初始化(数组的长度是固定的
    (1)静态方式:用到已知数组中的所有元素
    int[] array = {1,2,3,4,5}; 不用声明长度,不支持修改
    int[] array = new int[]{1,2,3,4,5};
    (2)动态初始化:
    int[ ] array = new int[数组长度]
    (3)不初始化数组,指定一个null字面量
    int[] array = null; //null是空引用
  3. 数组的下标访问,用中括号[]指定下标
    (1)下标的类型一定是int
    (2)数组的长度是n个,则下标的取值范围是:[0,n-1]
  4. 数组本质上也是一个对象(Object 类的派生类)
    1.属性
    int[] array =…
    array.length
    2.方法

2.内存模型

数组是遇到的第一个引用类型
数组本质上是引用类型,是对象,和基本数据类型有很大的区别
1.
空间存储的位置
(1)内存
(2)栈(Stack) 堆(Heap)
在栈内:1.局部变量 2.形参(paramaters)
【注】在子函数中不可以修改主函数的变量值,传参数时是值传递,传递参数是一份拷贝内容
2.
数组类型(引用类型 reference)

    void main(){
       int[] array(栈区) = {1,2,3,4,5}(堆区)
        method1();   //数组不变
        method2();   // 数组变为{1,2,200,4,5} 
}
    void method1(int[] array){
        array = new int[10];
        //array 变成1-10 
       //引用传递也是值传递
}
    void method2(int[] array){
       array[2] = 200;
}
* 

【注】通过动态方式,将array指向新的数组,引用指向的新位置的改变不会影响实参

默认值: 0的各个类型的表示
byte、short、int、log —— 0
float、double —— 0.0
char —— 0x0000
boolean —— false
reference —— null
【注】
1.局部变量不可以享用默认值
2.不初始化数组每个元素都是默认值
3.类中的属性、静态属性都可以享受默认值

【总结】
1. 方法调用过程中,无论是基本数据类型还是引用数据类型,实参到形参都是值传递,在栈里拷贝了一份。
2. 但引用传递如果改的是对象内部的值,实参 可以感受到变化
3. 引用类型变量:无论引用变量保存在栈上还是堆上,背后的数据(对象)一定是在堆上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值