Day10(1)数组

01_Java 语言基础(数组概述和定义格式说明)(了解)
A :为什么要有数组(容器)
为了存储同种数据类型的多个值
B :数组概念
数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器
数组既可以存储基本数据类型,也可以存储引用数据类型(面向对象时讲)
C :数组定义格式
数据类型 [] 数组名 = new 数据类型 [ 数组的长度 ]
02_Java 语言基础(数组的初始化动态初始化)(掌握)
A :什么是数组的初始化
就是为数组开辟连续的内存空间,并为数组的每个元素赋值
B :如何对象数组进行初始化
a: 动态初始化,只指定长度,由系统给出初始化值
int[] arr = new int[10];
b: 静态初始化,给出初始化值,由系统决定长度
C :动态初始化的格式:
数据类型 [] 数据名 = new 数据类型 [ 数组长度 ] ,就是定义数组的格式
.03_Java 语言基础( java 中内存分配及栈和堆的区别)(掌握)
A :栈:存储局部变量
局部变量:定义在方法里的变量
B :堆:存储 new 出来的数组或对象
C :方法区:面向对象部分讲解
public class Demo9 {
 public static void main(String[] args) {
 int[]a = new int[3];
 System.out.println(a);//[I@10f87f48
 /*
 [I@10f87f48
 [ :代表一位数组
 I :代表 int 类型
 @ :就是@符号
 10f87f48 :是一个十六进制的整数
 */
 System.out.println(a[0]);
 System.out.println(a[1]);
 System.out.println(a[2]);
 System.out.println("---------------");
 a[1] = 3;
 a[2] = 4;
 System.out.println(a[0]);
 System.out.println(a[1]);
 System.out.println(a[2]);
}
}

public class Demo9 {
 public static void main(String[] args) {
 double[] a = new double[10];
 System.out.println(a[0]);
 System.out.println(a[1]);
 System.out.println(a[2]);
 } }
/*
各数据类型的默认值
byte\short\int\long:0
float:0.0f;
double:0.0
boolean:false
char:'\0000' =0 char 是两个字节: 0000 0000 0000 0000 二进制的四位合并为一位:0000=0
String:null
*/
数组内存图解 2 :两个数组

 数组内存图解 3:三个引用两个数组

public class Demo9 {
 public static void main(String[] args) {
 int[] a = new int[3];
 System.out.println(a[1]);
 System.out.println(a[2]);
 System.out.println("数组 a 的内存地址:"+a);
 double[] b = new double[10];
 System.out.println(b[0]);
 System.out.println(b[1]);
 System.out.println(b[2]);
 int[] c = a;
 System.out.println("数组 c 的内存地址:"+c);
 System.out.println("a[0]="+a[0]);
 c[0] = 20;
 System.out.println("c[0]="+c[0]);
 System.out.println("a[0]="+a[0]);
 } }
/*
各数据类型的默认值
byte\short\int\long:0
float:0.0f;
double:0.0
boolean:false
char:'\0000' =0 char 是两个字节: 0000 0000 0000 0000 十六进制是二进制的四位合并为一位:0000=0
String:null
*/

 

 05Java 语言基础(静态初始化的格式)(掌握)

A :静态初始化的格式:
格式:数据类型 [] 数组名 = new 数据类型 []{ 元素 1 ,元素 2 ,…… }
简化格式:
数据类型 [] 数组名 ={ 元素 1 ,元素 2 ,…… }
B :案列演示
对数组的解释
输出数组名称和数组元素
C :画图演示
public class Demo10 {
 public static void main(String[] args) {
 //静态初始化
 //方式一
 int[] a1 = new int[]{10,20,30,40,50};
 System.out.println(a1[0]);
 System.out.println(a1[1]);
 System.out.println(a1[2]);
 System.out.println(a1[3]);
 System.out.println(a1[4]);
 System.out.println("--------------");
 //方式二:
 int[]a2 = {12,23,34,45,56}; //开发中推荐这么写
 System.out.println(a2[0]);
 System.out.println(a2[1]);
 System.out.println(a2[2]);
 System.out.println(a2[3]);
 System.out.println(a2[4]);
 }
}

05_Java 语言基础(数组操作的两个常见小问题:越界和空指针)(掌握)

public class Demo10 {
 public static void main(String[] args) {
 int[]a = {12,23,34,45,56}; //开发中推荐这么写
// System.out.println(a[10]);//ArrayIndexOutOfBoundsException:
 // 数组 索引 越界 异常
 a = null;
 System.out.println(a[0]);//java.lang.NullPointerException
 // 空指针 异常
 } }

 

 05_Java 语言基础(数组遍历)(掌握)

案例演示:
数组遍历:就是依次输出数组中的每个元素
数组的属性: arr.length 数组的长度
数组的最大索引: length-1
public class Demo10 {
 public static void main(String[] args) {
 int[]a = {12,23,34,45,56,67,78,89};
 /* System.out.println(a[0]);
 System.out.println(a[1]);
 System.out.println(a[2]);
 System.out.println(a[3]);
 System.out.println(a[4]);
 System.out.println(a[5]);
 System.out.println(a[6]);
 System.out.println(a[7]);*/
 for(int i=0;i<8;i++){
 System.out.print(a[i]+"\t");
 }
 System.out.print("\n");
 int len = a.length;//可以获取数组的长度
 System.out.println("数组的长度="+len);
 for(int i=0;i<a.length;i++){
 System.out.print(a[i]+"\t");
 }
 System.out.println();
 System.out.println("---------------------");
 //while 循环遍历数组
 int n=0;
 while(n<a.length){
 System.out.println(a[n]);
 n++;
 }
 } }
练习:
写一个方法专门用来遍历数组
public class Demo11 {
 public static void main(String[] args) {
 int[]a = {20,30,40,50,60,70,80};
 printArray(a);
 }
 //遍历数组的方法
 public static void printArray(int[]arr){ //等同于 int[]arr = {20,30,40,50,60,70,80}
 for(int i=0;i<arr.length;i++){
 System.out.print(arr[i]+"\t");
 }
 } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值