Java学习的第九天(JavaSE基础05

mac2025-05-31  77

一、数组

1.什么是变量??
1.定义:变量是在内存中开辟了一小块空间用来临时存储“一个”数据用的 2.变量在内存中是分布凌乱的 3.变量没有默认值 package com.shuzu; public class Demo1_MoRenZhi { public static void main(String[] args) { int a; System.out.println(a); } } //运行结果:Error:(6, 28) java: 可能尚未初始化变量a
2.数组为什么会存在?它来自何方?(跟变量进行区分)

3.什么是数组??
1.定义:数组是内存中开辟了一块“连续”的空间用于临时存储“多个同种数据类型”的数据用的 2.它是存在默认值的 2.3.整数类型的默认值都是0 2.4.小数类型的默认值是0.0 public class Demo1_MoRenZhi { public static void main(String[] args) { float[] arr=new float[3]; System.out.println(arr[0]); } } //运行结果:0.0 2.5.字符类型的默认值是空字节 public class Demo1_MoRenZhi { public static void main(String[] args) { char[] arr=new char[3]; System.out.println(arr[0]); // } } //运行结果:空 2.6.String类型的默认值是null //运行结果:null
4.如何定义数组??
1.动态声明(分为两步) 第一步:数据类型[ ] 数组名; //在内存中开辟了一个数组 第二步:数组名=new 数据类型[长度]; //给数组赋予一个长度 int[] arr; arr=new int[3]; //两者合二为一:int[] arr=new int[3]; 2.静态声明 数据类型[ ] 数组名=new 数据类型[ ]{值1,值2,...} int[] arr=new int[]{1,2.3,4}; 上述可以缩写,这是开发中最常用的写法,如下所示 数据类型[ ] 数组名={值1,值2,...} int[] arr={1,2.3,4}; 3.拓展:数组的另外的两种写法 int arr[]=new int[3]; int []arr=new int[3];
5.如何往数组中存值??
通过数组名[下标] arr[0]=60; arr[1]=70;
6.如何从数组中取值??
通过数组名[下标] System.out.println(arr[0]);
7.数组的下标(角标/索引)
1.数组只要赋予了长度,那么数组就会有下标(角标/索引) 2.程序中下标都是从0开始 3.数组存放数据和取数据都是通过下标来进行的 数组下标:0|1|2|3|4|5|6|7|8 存数据:arr[0]=10; 取数据: int a=arr[0]
8.在数组中最容易出现的两种异常和错误

ArrayIndexOutOfBoundsException:下标越界异常

public class Demo_ArrayIndexOutofBounds { public static void main(String[] args) { int[] arr=new int[3]; arr[0]=1; arr[1]=2; arr[2]=3; System.out.println(arr[3]);//这里只有三个元素,下标从0-2,而下标到3就会报下标越界异常 } } //输出结果: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at com.shuzu.Demo_ArrayIndexOutofBounds.main(Demo_ArrayIndexOutofBounds.java:9)

NullPointerException:空指针异常

public class Demo_NullPointerExecption { public static void main(String[] args) { int[] arr=new int[3]; int[] arr1=null; arr=arr1; System.out.println(arr[0]); System.out.println(arr[2]); System.out.println(arr[3]); } } //输出结果: Exception in thread "main" java.lang.NullPointerException at com.shuzu.Demo_NullPointerExecption.main(Demo_NullPointerExecption.java:8)
9.为什么会出现空指针异常??
9.1 Java内存分布图

9.2 输出数组名实际输出的内容是什么??
public class Demo_DiZhi { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7}; System.out.println(arr); } } //输出结果:[I@1b6d3586---地址值
9.3 动态定义数组时,存储在堆内存还是栈内存中??

10.如何获取数组的长度
String[] arr={"张三,李四,王五"}; //这个数组的长度是多少?? 1 String[] arr={"张三","李四","王五"}; //这个数组的长度是多少?? 3 如何获取数组的长度---数组名.length arr.length
11.数组的第一个元素arr[0]
12.数组的最后一个元素arr[arr.length-1]
13.感受如下数组的定义
double[] arr={1.1 ,1.2 ,1.3 ,1.4 ,5}; //因为double比int要大,所以会自动转换,这里不会报错 int[] arr={1 , 2 , 3 , 4 ,(int) 5.5}; //这里必须用到强转才可以
14.如何获取数组中的每一个元素

重复做一件事情--循环数组/遍历数组(获取数组的长度去遍历数组)

for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); }
15.二维数组
由于实际企业中开发一般不会使用数组,多用集合,所以不做过多讲解 int[] [] arr=new arr[长度][长度]; //第一个长度值必须要写,第二个长度可给值也可以不给值
最后:下一节中小编会对数组涉及的一些常用的算法进行讲解!!
最新回复(0)