Java笔记(第5章数组)

以下为本人学习尚硅谷2023版java第5章的笔记。
1.数组,一旦初始化完成,其长度就是确定的。数组的长度一旦确定,就不能修改
2.对于基本数据类型而言,默认初始化值各有不同。

对于引用数据类型而言,默认初始化值为null(注意与0不同!)

3.数组下标为什么是0开始?

因为第一个元素距离数组首地址间隔0个单元格。

4.    int[ ]x, y[ ];
//x是一维数组,y是二维数组,因为int[ ]是一个整体 

        int[ ] x,y[ ]; 在给x,y变量赋值以后,以下选项允许通过编译的是:x: 一维int[ ]  y:  二维int[ ] [ ]
a)    x[0] = y;                 //no
b)    y[0] = x;                 //yes
c)    y[0][0] = x;              //no
d)    x[0][0] = y;              //no
e)    y[0][0] = x[0];           //yes
f)    x = y;                    //no

5.数组的几种格式
int[][] arr = {{1,2,3},{4,5,6},{7,8,9,10}};

int[][] arr1 = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int[] arr2[] = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int arr3[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int [][]arr4;
arr4 = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

int[][] arr5 = new int[2][];

String arr6[][] = new String[3][4];
错误写法:

int[ ][ ] arr;

arr = new int[3][3]{{1,2,3},{4,5,6},{7,8,9,10}};//静态初始化右边new 数据类型[][]中不能写数字

6.二维数组元素的默认初始值
动态初始化方式1(比如:int[ ][ ] arr1 = new int[3][2];)

1)外层元素:默认存储地址值

2)内层元素:默认与一维数组的不同类型的默认值规定相同。见本文中2.

int[][] arr1 = new int[3][2];
//外层元素默认值
System.out.println(arr1[0]);    //[I@7ef20235  地址
//内层元素默认值
System.out.println(arr1[0][0]);     // 0

boolean[][] arr2 = new boolean[3][4];
//外层元素默认值
System.out.println(arr2[0]);   //地址
//内层元素默认值
System.out.println(arr2[0][1]);     // false

String[][] arr3 = new String[4][2];
//外层元素默认值
System.out.println(arr3[0]);    //[Ljava.lang.String;@4f3f5b24
//内层元素默认值
System.out.println(arr3[0][0]);     // null
动态初始化方式2(比如:int[ ][ ] arr4 = new int[4][ ];)

1)外层元素:默认存储null

2)内层元素:不存在。调用会报错。

int[ ][ ] arr4 = new int[4][ ];
//外层元素默认值
System.out.println(arr4[0]);    //null
//内层元素默认值
System.out.println(arr4[0][0]);     // 空指针异常,报错
7.数组赋值 ,此时修改array2 ,array1的值也会变,因为指向的是同一个内存空间

        数组复制,此时修改array2, array1不会变,因为指向不同的内存空间。比如复制文件夹,删除复制来的文件夹中的文件时,原来的文件夹中的文件不会被删除。

        

8.常见的算法时间复杂度由小到大依次为:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
9.十大内部排序算法

10.数组有没有length()这个方法? String有没有length()这个方法?

        数组没有length(),是length属性。

        String有length()

11.为什么数组要从0开始编号,而不是1

        数组的索引,表示了数组元素距离首地址的偏离量。因为第1个元素的地址与首地址相同,所以偏移量就是0。所以从0开始.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值