java学习day14
今天学习了数组的概念、特点、及数组的初始化
数组的概念:
数组是一种容器可以同时存放同种数据类型的多个数据
数组的特点:
1、数组是一种引用数据类型
2、数组当中可以存储多个数据,但是类型必须统一
3、数组的长度在程序的运行期间是不可以改变的
数组的初始化:
数组的初始化包括 动态初始化和静态初始化
一、动态初始化
C语言的定义
int temp[10];
java中的动态初始化
类型 对象名=new 类型
数据类型[] 数组名称=new 数据类型[数组长度]
二、静态初始化
C语言的写法
int temp[]={}
java写法
数据类型[] 数组名称=new 数据类型{元素1、元素2、元素3…}
注意事项:
虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的内容进行推测长度
不省略的静态初始化可以拆开为两个步骤
省略了静态初始化不能拆开
直接打印的数组名称,得到的是数组对应的内存地址的哈希值
数组的编号从0开始,到数组长度-1结束
容易出现数组越界的问题
代码如下:
package demo01;
/*1.数组的概念: 是一个容器 可以同时存放同种数据类型的 多个数据
*
* 2.数组的特点
* 数组是一种引用数据类型
* 数组当中可以存储多个数据,但是类型必须统一
* 数组的长度在程序的运行期间 是不可改变的
*
* 数组的初始化:
* 动态初始化
* 静态初始化
*
* (1) 动态初始化
*
* C语言的定义
* int temp[10];
*
* java 中的动态初始化
* 类型 对象名=new 类型
*
* 数据类型[] 数组名称=new 数据类型[数组长度]
*
* (2) 静态初始化
* C语言写法
*
* int temp[]={};
*
* java写法
*
* 数据类型[] 数组名称=new 数据类型{元素1,,元素2,元素3......}
*
* 注意事项:
* 虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的内容进行推测长度
*
*
*
*/
public class Demo01Array {
public static void main(String[] args) {
//1 数组的动态初始化
//创建一个数组,用来存放55个int数据
int[] arrayA=new int[55];//动态初始化
//java成绩
double [] arrayB=new double[55];
//姓名
String[] arrayC=new String[55];
//数组的静态初始化
int[] arrayD=new int[] {1,2,3,4,5};
//String[] arrayE=new String[] {"王芳","张三","李四","周五","赵六"};
//不省略的静态初始化可以拆开为两步骤
String[] arrayE;
arrayE=new String[] {"王芳","张三","李四","周五","赵六"};
//3.数组静态初始化的省略写法
//String[] arrayF= {"王芳","张三","李四","周五","赵六"};
//String[] arrayF;
//错误写法,省略静态初始化不能拆开
//arrayF=new String[] {"王芳","张三","李四","周五","赵六"};
}
}
package demo01;
/*
* 直接打印数组名称,得到的是数组对应的:内存地址的哈希值
*
*
*
*
*
*/
public class Demo02ArrayUse {
public static void main(String[] args) {
int[] array= {10,20,30,40,50};
System.out.println(array);
//数组的下标是从0开始的
System.out.println(array[0]); //第0编号元素
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
System.out.println("---------------------------");
int num=array[3];
System.out.println(num);
}
}
package demo01;
/*
* 动态初始化
*
*
*
*
*
*
*
*
*
*/
public class Demo03Array {
public static void main(String[] args) {
int[] arrayA=new int[3];
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
System.out.println("---------------------");
double[] arrayB=new double[3];
System.out.println(arrayB);
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println("---------------------");
String[] arrayC=new String[3];
System.out.println(arrayC);
System.out.println(arrayC[0]);
System.out.println(arrayC[1]);
System.out.println(arrayC[2]);
System.out.println("---------------------");
arrayC[2]="世界和平";
System.out.println(arrayC[0]);
System.out.println(arrayC[1]);
System.out.println(arrayC[2]);
}
}
package demo01;
/*
* 数组的编号从0开始,到数组长度-1结束
*
*
* 如果容易出现数组越界的问题
*
*
*
*
*
*
*
*/
public class Demo04ArrayIndex {
public static void main(String[] args) {
int[] array= {10,20,30};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
//错误写法 数组越界异常
System.out.println("==============");
//System.out.println(array[3]);
//数组的空指针异常
int[] arrayA=null;
arrayA=new int[3];
System.out.println(arrayA[0]);
}
}
package demo01;
public class Demo05Array {
public static void main(String[] args) {
int[] arrayA=new int[3];
int[] arrayB= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int len=arrayB.length;
System.out.println(len);
//数组的长度不可更改
int[] arrayc=new int[3];
System.out.println(arrayc.length);
arrayc=new int[5];
System.out.println(arrayc.length);
System.out.println("================");
//数组的使用
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println(arrayB[3]);
System.out.println("================");
for(int i=0;i<19;i++)
{
System.out.println(arrayB[i]);
}
System.out.println("================");
for(int i=0;i<arrayB.length;i++)
{
System.out.println(arrayB[i]);
}
}
}