创建数组 :
一、声明并赋值
二、声明数组名开辟空间并且赋值
三、声明数组时指定元素个数然后赋值
四、在以上的基础上创建多维数组
总结
- 无论那种方法声明必须有 :数据类型 [ ] , 如:int[ ]
- 创建多维数组时,new后面的第一个方括号中的元素数量总不能省略
- “new 数据类型[]{}”创建数组时,其中花括号可以省去,但要在“[ ]”中填写数组的个数
- 数组特点:
– 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
– 其元素必须是相同类型,不允许出现混合类型。
– 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
数组概述:
数组是一种引用类型。变量只可以存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型。
数组定义格式与初始化
1. 定义一个数组的格式为:数据类型[] 数组名称;数据类型代表数组中保存的数据全都是统一的哪种类型。通过数组名称可以使用其中的多个数据。
2.数组一定要初始化之后才可以使用。初始化是指:为数组在内存当中开辟内存空间,用来保存数据,并且设置默认值。没有初始化的数组无法使用。数组的初始化方式分成两种:
如何使用数组:
▪ 使用数组四步走: 1、声明数组 2、分配空间
3、赋值 4、处理数据
分配空间:
声明数组并分配空间
数据类型[ ] 数组名 = new 数据类型[大小] ;
栈(Stack):主要用来存放局部变量。堆(Heap):凡是new出来的东西,都在堆当中。堆当中的数据有默认值规则:a) 如果是整数,默认是0;b) 如果是浮点数,默认是0.0;c) 如果是字符,默认是’\u0000’(Unicode写法);d) 如果是布尔值,默认为false;e) 如果是引用类型(包含字符串),默认为null(空常量)。方法(Method Area):存放与.class相关的信息。本地方法区(Native Method Area):与操作系统相关。寄存器(pc Register):与CPU相关,性能极高。
数组赋值:
▪ 赋值:向分配的格子里放数据
▪ 方法1: 边声明边赋值
▪ 方法2:动态地从键盘录入信息并赋值
数组初始化:
1.Java 数组初始化的两种方法:
静态初始化: 程序员在初始化数组时为数组每个元素赋值;
动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。
Java数组是一种引用数据类型。数组变量并不是数组本身,而是指向堆内存中存放的数组对象。
2.数组是否必须初始化:
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
数组的界限:
▪定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
▪数组元素的引用方式:arrayName[index]
üindex为数组元素下标,可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
ü数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 ~ n-1;
▪每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度
(元素个数);
数组的长度: 数组名.length
▪ 起点和终点
起点: 数组名[0]
终点:数组名[length-1]
二维数组:
总的原则:任何对象在被调用之前必须先被初始化!
一维数组的定义:
方法1,先new对象,然后再初始化每个元素
方法2,直接赋初值来创建对象
方法3,new完对象直接初始化
二维数组的定义:
方法1,先new对象,然后再初始化每个元素
方法2,直接赋初值来创建对象
方法3,new完对象直接初始化
二维数组的初始化方法:
1、使用大括号直接赋值,适合已经确定知道数组元素的情况
2、给定二维数组的大小
3、数组第二维的长度可变化,未改变
数组的拷贝:
System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。
命令行参数:
- 运行class文件
执行带main方法的class文件,命令行为:
java <CLASS文件名> - 运行jar文件中的class
原理和运行class文件一样,只需加上参数-cp <jar文件名>即可。 -
-client,-server
这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能