(小白一枚,若有侵权,请指出,谢谢)
数组
我们编程的时候经常使用数组,其索引开始为0,步长为1
使用步骤:
1. 声明数组类型 2. 初始化数组,分配空间 3. 赋值
注意:数组声明完是不能使用的,数组必须初始化才能使用,初始化表示在内存中分配空间,一旦初始化完成
数组的长度就固定了,除非重新初始化,即数组时定长的
数组初始化分为: 1.静态初始化 2.动态初始化
当知道需要存储那些数据类型的时候就用静态否则就用动态,想要动静结合去初始化一个数组是错误的
//数组的通常使用方法 public static void ArrayDemo1() { //动态初始化数组 int[] nums1 = new int[5]; int[] nums2 = new int[3]; nums2 = new int[4];//重新赋值 /* * 动态数组只是开辟空间,(String类型)元素初始化值为null * 初始值 null String[] names = new String[] 将数组中的元素的值赋为null
* * 静态数组直接赋值 * 静态初始化string类型的数组时 * 赋值null String[] bs = null,将整个数组赋为null(这里需要和动态初始化区别) * 所以当调用bs.length 时会崩掉(编译期通过,但是运行期出错) */ //创建长度为 5 的数组 String[] names = new String[5]; for(int i = 0 ; i < names.length ; i++) { System.out.println(names[i]); //此时names[5] 里面的值都为null (string 初始值为null) } int[] nums = new int[]{1,2,3,4,5}; System.out.println(nums.length);//长度是固定的 //nums = {2,4,6};//这样是错误的,上面已经长度固定为5,除非重新初始化 nums = new int[] {2,4,6};//重新初始化 //动静结合创建数组 是错误的 两次开辟空间 //int[] arrays = new int[4]{2,3,4,5} }
public static void arrayDemo2() { //静态初始化数组 以下几种方法都可以 int[] arr = new int[] {6,7,8,9,10}; int arr1[] = new int[] {2,2,3,4,5,6}; //内部也调用了默认构造器 int[] arr2 = {1,2,3,4,5,6}; int arr3[] = {3,4,5,6,7}; //数组的长度 int length = arr3.length; System.out.println("arr3 length:" + length); //数组 重新设置值 arr[3] = 77; for(int i = 0 ; i < arr.length ; i++) { System.out.println(arr[i]); } System.out.println("_______________分割线__________________"); /* //错误 NullPointerException (空指针) * * String[] bs = null; * System.out.println(bs.length); * */ }