🐱🏍 一、Java的内存划分
二、🐱🏍一个数组的内存图
/** * @author :CaiCai * @date : 2022/4/5 11:03 */ public class Demo05Array { public static void main(String[] args) { //动态初始化数组 int[] array=new int[3]; System.out.println(array);//地址值 System.out.println(array[0]);//0 System.out.println(array[1]);//0 System.out.println(array[2]);//0 //改变数组当前的元素 array[1]=10; array[2]=20; System.out.println(array[0]);//0 System.out.println(array[1]);//10 System.out.println(array[2]);//20 } }
三、🐱🏍两个数组的内存图
/** * @author :CaiCai * @date : 2022/4/5 11:03 */ public class Demo05Array { public static void main(String[] args) { //动态初始化数组 int[] array=new int[3]; System.out.println(array);//地址值 System.out.println(array[0]);//0 System.out.println(array[1]);//0 System.out.println(array[2]);//0 //改变数组当前的元素 array[1]=10; array[2]=20; System.out.println(array[0]);//0 System.out.println(array[1]);//10 System.out.println(array[2]);//20 System.out.println("=================="); //动态初始化数组 int[] array1=new int[3]; System.out.println(array1);//地址值 System.out.println(array1[0]);//0 System.out.println(array1[1]);//0 System.out.println(array1[2]);//0 //改变数组当前的元素 array1[1]=100; array1[2]=200; System.out.println(array1[0]);//0 System.out.println(array1[1]);//10 System.out.println(array1[2]);//20 } }
四、🐱🏍两个引用指向同一个数组
五、🐱🏍数组索引越界异常
- 数组的索引编号从0开始,一直到数组的长度减1
- 如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常(ArrayIndexOutOfBoundsException)
- 原因:索引编号写错了
- 解决办法:修改成为存在的正确索引
/** * @author :CaiCai * @date : 2022/4/5 11:36 */ /* 数组的额缩影从0开始,一直到数组的长度减1 如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常ArrayIndexOutOfBoundsException 原因:索引编号写错了 解决办法:修改成为存在的正确索引 */ public class Demo06 { public static void main(String[] args) { int[] array={15,25,35}; System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); //错误写法并不存在3号元素所以发生异常 System.out.println(array[3]);//ArrayIndexOutOfBoundsException } }
六、🐱🏍空指针异常
- 所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有
- 如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException
- 原因:忘记new
- 解决办法:补上new
package Project45; /** * @author :CaiCai * @date : 2022/4/5 11:46 */ /* 所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有 如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException 原因:忘记new 解决办法:补上new */ public class Demo07 { public static void main(String[] args) { int[] array=null; // array=new int[3]; System.out.println(array[0]);//NullPointerException } }
🐱🏍七、获取数组的长度
- 数组名称.length
- 这将会的到一个int数字,代表数组的长度
- 数组一旦创建,程序运行期间,长度不可改变
/** * @author :CaiCai * @date : 2022/4/5 11:54 */ /* 如何获取数组的长度 数组名称.length 这将会的到一个int数字,代表数组的长度 数组一旦创建,程序运行期间,长度不可改变 */ public class Demo08 { public static void main(String[] args) { int[] arrayA=new int[3]; int[] arrayB={10,20,30,40,7,8}; int len=arrayB.length; System.out.println(len); System.out.println(arrayA); System.out.println("==============="); int[] arrayC=new int[3]; System.out.println(arrayC.length);//3 arrayC=new int[5]; System.out.println(arrayC.length);//5 } }
🐱🏍八、遍历数组
遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出
package Project45; /** * @author :CaiCai * @date : 2022/4/5 12:58 */ /* 遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出 */ public class Dem09 { public static void main(String[] args) { int[] array={15,20,35,50,90}; //使用 for循环 for (int i = 0; i <array.length ; i++) { System.out.println(array[i]); }
🧨求数组元素当中的最大值
public class Demo10 { public static void main(String[] args) { int[] array={10,30,20,21,55,70}; int max=array[0]; for(int i=1;i<array.length;i++){ if(array[i]>max){ max=array[i]; } } System.out.println("最大值是:"+max); } }
🧨求数组元素当中的最小值
public class Demo11 { public static void main(String[] args) { //求出数组当中的最小值 int[] array={20,60,50,32,11,9,5}; int min=array[0]; for(int i=1;i<array.length;i++){ if(array[i]<min){ min=array[i]; } } System.out.println("最小值是:"+min); } }
🐱🏍九、数组元素反转
数组元素的反转,其实就是对称位置的交换
/** * @author :CaiCai * @date : 2022/4/5 13:17 */ /* 数组的反转 本来的样子:[1,2,3,4] 反转的样子:[4,3,2,1] 要求不能使用新数组,就使用原来的唯一一个数组 */ public class Demo12 { public static void main(String[] args) { int[] array={10,20,30,40,50}; for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } System.out.println("============="); for(int min=0,max=array.length-1;min<max;min++,max--){ int temp=array[min]; array[min]=array[max]; array[max]=temp; } //再次打印遍历输出数组后来的样子 for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } }