1、随机数(Random:无参构造方法,用于生成随机数)使用步骤(和Scanner类似):
(1)导包:import java.util.Random();
(2)创建对象:Random r=new Random();
(3)获取随机数:int number=r.nextInt(10) ;[注意:产生的随机数包括0不包括10]
2、数组:存储同一种数据类型的多个元素的容器
# 定义格式:(1)数据类型[ ] 数组名(常用);(2)数据类型 数组名[ ](很少用)
举例:a、int[ ] arr;定义了一个int类型的数组,数组名是arr;
b、int arr[ ];定义了一个int类型的变量,变量名是arr数组
# 数据初始化(为数据开辟内存空间,并为数组中的每个元素赋予初值):
(1)动态初始化(只给出长度,由系统给出初始化值):数据类型[ ] 数组名=new 数据类型 [ 数组长度];
(2)静态初始化(给出初始化值,由系统决定长度):数据类型[ ] 数组名=new 数据类型[ ]{元素1,元素2,元素3,...} (简化格式:数据类型[ ] 数组名=new {元素1,
元素2,元素3,...})
3、Java中的内存分配:
(1)栈:存储的是局部变量(定义在方法中的变量),使用完毕,立即回收;
(2)堆:存储的是new出来的东西(实体,对象),每一个对象都有地址值,每一个对象的数据都有默认值(byte,short,int,long为0;float,double为0.0;char
为"\u0000";boolean为false;引用类型为null),使用完毕后,会在垃圾回收置空闲的时候被回收;
(3)方法区:面向对象进阶;
(4)本地方法区:和系统相关;
(5)寄存器:给CPU使用
注意:数组中每个元素都是有编号即索引,索引从0开始,最大的索引是数组的长度-1
访问格式:数组名[索引]
数组编译中两个常见的小问题:
(1)ArrayIndexOutOfBoundsException:数组索引越界异常(访问了不存在的索引);
(2)NullPointerException:空指针异常 (数组已经不再指向该内存的数据了)
4、获取数组元素个数:数组名.length
5、二维数组:元素为一维数组的数组(二维数组名配合索引可以获取到每一个一维数组,然后每一个一维数组配合索引名可以获取到数组中的元素)
定义格式:a、数据类型[ ] [ ]数组名(常用);
b、数据类型 数组名[ ][ ];
c、数据类型[ ] 数组名[ ]
初始化:a、动态初始化:数据类型[ ][ ] 数组名=new 数据类型[m][n](m为二维数组中一维数组的个数,n为一维数组中的元素个数)
b、静态初始化:数据类型[ ][ ] 数组名=new 数据类型[ ][ ]{{元素...},{元素...},{元素...},...}(简化:数据类型[ ][ ] 数组名={{元素...},{元素...},{元素...},...}
6、数组的特点:
(1)元素类型必须一致;
(2)元素有整数索引;
(3)一旦定义好长度则无法改变;
(4)可以存储基本数据类型;
(5)也可以存储引用数据类型