java基础笔记-数组


三 数组

? Array 引用数据类型,在内存中开辟一整块连续空间

? 长度确认后不能更改

1.数组声明

? 前面 [ ] 的永远为空

//静态初始化
int[] array;
array = new int[]{1,2,3,4};

//动态初始化
String[] names = new String[5]; 

//array = new int[5]{1,2,3,4}; 错误

2.数组默认初始化值

? 0 0.0 char型也是0或者‘\u0000’ false String类型是null

3.内存解析

? int array = new int[]{1,2,3,4};

? 栈:存放局部变量

? 堆:存放new出来的结构,对象,数组

? 改变数组变量的指针,new出来的数组会被垃圾回收

4.二维数组

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

int[][] arr2 = new int[3][2];
int[][] arr3 = new int[3][];//没问题

5. Arrays工具类

import java.util.Arrays;

5.1 equals( int[] a , int[] b)

? 比较数组内容!

? 两个数组 都是null时,为false

5.2 void toString(int[] a )

? 输出数组信息,不是转String

5.2 fill(int[] a , int val)

? 填充指定值

5.4 sort()

? 底层用的快排

5.5 binarySearch( int[] arr, int key )

? 前提:一定要有序