黑马程序员技术交流社区

标题: 【西安JavaEE21期基础班】学习笔记 [打印本页]

作者: 董柄晨    时间: 2018-1-29 17:27
标题: 【西安JavaEE21期基础班】学习笔记
1.Random(用于产生随机数)
使用步骤(格式):
导包
  import java.util.Random;
创建对象
  Random r = new Random();
获取随机数
  int number = r.nextInt(m);  
注意:获取数据的范围[0,m)...r.nextInt(m)+n,从开始,区间长度为m.
2.数组(存储同一种数据类型的多个元素的容器)
定义格式:
  A:数据类型[] 数组名;
  B:数据类型 数组名[];......(不推荐使用)
数组的初始化:
  A:所谓的初始化,就是为数组开辟空间,并为数组中的每个元素赋初始值
  B:两种初始化方法
   动态初始化   只给出长度,有系统给出初始值
   静态初始化   给出初始值,由系统计算长度
  1)动态初始化
   数据类型[] 数组名 = new 数据类型[数组长度];
   例: int[] arr = new int[3];
   左边:
    int  说明数组中的元素类型是int类型
    []   说明这是一个数组
    arr  这是数组的名称
   右边
    new  为数组申请内存分配,开辟空间
    int  说明数组中的元素类型是int类型
    []   说明这是一个数组
    3    数组的长度,就是数组中元素的个数
   ①java中的内存分配
    栈(存储的是局部变量,就是方法中定义的变量)
    堆(存储的是new出来的东西,实体,对象...
     1.每一个对象都有地址值
     2.每一个对象的数据都有默认值
      byte,short,int,long---0;
      float,double---0.0;
      char---'\u0000';
      boolean---false;
      引用数据类型-----null;
    方法区(面向对象进阶讲)
    本地方法区(和系统相关)
    寄存器(给CPU使用)
   ②两个数组指向同一个地址时,第二个数组的值会覆盖第一个数组的值
  2)静态初始化
   数据类型[] 数组名 = new 数据类型{元素1,元素2...};
   例: int[] arr = new int{1,2,3...};
    简写为int[] arr = {1,2,3...};
  3)两个常见小问题
   数组索引越界
    产生原因:访问了不存在的索引
   空指针异常
    产生原因:数组已经不再指向堆内存的数据了,你还用索引去访问数组中的元素
  4)数组获取最值的思路
   ①先拿数组中的一个元素做参照物
   ②遍历数组,让后面的所有元素依次和参照物进行比较,如果元素比参照物大,就留下
   ③最终留下的就是最大的元素
   //求最小值思路一样
  5)二维数组(元素为一维数组的数组)
   定义格式
    数据类型[][] 数组名;
    数据类型 数组名[][];
    数据类型[] 数组名[];              //后面两种不推荐
   初始化
    动态初始化
     数据类型[][] 数组名 = new 数据类型[m][n];
      m表示二维数组中一维数组的个数
      n表示一维数组的元素个数         //可以不写,后面定义
   静态初始化
    数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...}...};
    简化格式
    数据类型[][] 数组名 = {{元素...},{元素...},{元素...}...};
     A.二维数组配合索引可以获取到每一个一维数组
     B.每一个一维数组配合索引可以获取到这个数组中的元素
      二维数组arr
      一维数组arr[]
      数组中的元素arr[][]










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2