Java基础知识三——数组

    xiaoxiao2022-06-30  158

    1.语法

    定义数组,初始化数组

    类型数组,保存一组其他类型的数据,元素类型 int[] int Array 和C语言兼容方式 int intArray[];数组的初始化(数组的长度是固定的) (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是空引用数组的下标访问,用中括号[]指定下标 (1)下标的类型一定是int (2)数组的长度是n个,则下标的取值范围是:[0,n-1]数组本质上也是一个对象(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. 引用类型变量:无论引用变量保存在栈上还是堆上,背后的数据(对象)一定是在堆上


    最新回复(0)