Java day 4

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)也可以存储引用数据类型
原文地址:https://www.cnblogs.com/cqxljj/p/10159245.html