美文网首页
Java基础笔记总结(2)-数组

Java基础笔记总结(2)-数组

作者: 吵吵先生 | 来源:发表于2019-01-13 22:34 被阅读0次

数组的初始化,为数组开辟连续的存储空间,并为每个元素赋值;

Java一维数组定义格式:

int[] x = new int[num];

数组既可以存储基本数据类型,又可以存储引用数据类型。

数组初始化

1、动态初始化 只指定长度,并由系统给出初始化的值 (在内存空间中开辟指定数量的的空间)

地址值+数组编号才能找到地址

默认初始化值 byte short int long = 0

    float double = 0.0

    bool = false

    char = '\u0000' char占两个字节 16个二进制位 

直接打印数组[i 半个代表一位数组 i代表int 后面是数组地址

2、静态初始化 给出初始化的值,然后由系统决定长度

int[] arr = new int[]{1,2,3};//可以先声明后赋值

int[] arr = {1,2,3};//简写形式声明赋值必须在一行

(动态初始化和静态初始化不能混合使用)

内存有五块空间(.class进入内存空间运行)

1、栈空间:

存储局部变量

2、堆空间

存储new出的数组或对象

3、方法区

面向对象(代码区)

4、本地方法区

和系统有关

5、寄存器

给CPU使用

main方法放在栈底,最先放入,最后执行

数组越界和空指针的问题探索

1、ArrayIndexOutOfBoundsException数组越界 访问了不存在的索引

2、NullPointerException空指针异常 数组已经不再指向堆内存,但仍用数组名去访问元素

数组的遍历(普通循环遍历)

数组的反转操作

for(int i = 0;i< arr.length/2;i++){

int temp = arr[i];

arr[i] = arr[arr.length-i-1];

arr[arr.length-i-1] = temp;

}

数组查表法

二维数组的初始化和赋值

int[][] array = new int[m][n];

int[] array[] = new int[m][n];

int[] array[] = new int[m][]; //一位数组不赋值

array[i]= new int[n];

int [][] array = {{1,1},{1,1,1}};

注意,引用初始化数据类型的值都为null

Java 中参数传递的问题

基本数据类型值传递,不改变原值,因为后会出现弹栈操作,局部变量随之消失

引用数据类型值传递改变原值,因为即使方法弹栈,但是堆内存的数组对象可以通过地址继续访问

Java中到底是传值还是传地址 java中只有传值,因为地址也是值

相关文章

网友评论

      本文标题:Java基础笔记总结(2)-数组

      本文链接:https://www.haomeiwen.com/subject/ughrdqtx.html