文档章节

Java基础知识_day04_(Random类,一维数组,二维数组)

S
 Sunmos
发布于 2017/05/13 00:19
字数 1364
阅读 13
收藏 0

内容摘要:

  • Random随机数类
  • 一维数组
  • 二维数组

1. Random随机数类

作用:

用于产生随机数.

使用步骤:

导包:
    import java.util.Random;
创建对象:
    Random r = new Random();
获取随机数:  
    int num = r.nextInt(10);
    获取的数据范围:[0,10),包含0,不包含10.
注意:
    当nextInt()无参数时,产生的随机数结果是浮点型数据,范围是[0,1).

案例:

package com.heima.random;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
    public static void main(String[] args) {
        Random random = new Random();
        int num = random.nextInt(100) + 1;
        System.out.println("随机数已生成!");
        int guessNum = 0;
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你猜的数字(1-100):");
            guessNum = scanner.nextInt();
            if (guessNum > num) {
                System.out.println("你猜的" + guessNum + "大了!");
            }else if (guessNum < num) {
                System.out.println("你猜的" + guessNum + "小了!");
            }else {
                System.out.println("恭喜你,猜中了!");
                break;
            }
        }
    }
}

2. 一维数组

数组:

数组是存储同一种数据类型的多个元素的容器.
数组存储同数据类型必须一致.(可以存储基本数据类型和引用数据类型).

定义格式:推荐使用第一种

数据类型[] 数组名; -> int[] arr;定义了一个int类型的数组,数组名是arr;
数据类型 数组名[]; -> int arr[];定义了一个int类型的变量,变量名是数组arr[];

数组的初始化:为数组开辟内存空间,并为数组中的每个元素赋初始值.

Java中数组必须先进性初始化后,才能使用.
动态初始化:只给出数组的长度,由系统给出初始化值
    数据类型[] 数组名 = new 数据类型[数组长度]; ->new是申请一块连续的内存空间.
静态初始化:给出数组的初始化值,由系统给出数组的长度.
    格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,…,元素n};
    简化格式: 数据类型[] 数组名 = {元素1,元素2,…,元素n};

数组元素的访问:

数组名代表是的整个数组的地址.
数组中的每一个元素均有一个唯一的编号(索引),最小编号是0,最大编号是数组长度-1.
访问格式:数组名[索引];

Java中内存分配:

栈:存储的局部变量(局部变量是存储在方法中的变量)
堆:存储的是new出来的东西(就是对象)
    每一个对象都有一个地址值;
    每一个对象的数据都有默认值.
方法区:面向对象使用
本地方法区:和系统相关
寄存器:CPU使用

一维数组常见问题:

ArrayIndexOutOfBoundsException:数组索引越界异常(访问不存在的索引);
NullPointerException: 空指针异常(数组已经不指向堆内存中的数组,再访问就会出此错误);
空常量,null只能赋值给引用类型(类,接口,数组).

一维数组案例:

package com.heima.array;
/* * 一维数组的遍历 */
public class ArrayDemo3 {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        // 将数组的元素顺序输出
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //使用for循环输出
        for (int i = 0; i < 3; i++) {
            System.out.println(arr[i]);
        }
        // 使用数组长度属性:length输出数组数据
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

package com.heima.array;
/* * 求数组中的最大值 */
public class ArrayDemo4 {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        // 假设最大值为0
        int max = 0;
        // 让max与数组中的每一个值进行比较,使用max记录最大值
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
    }
}

package com.heima.array;
/* * 数组的使用的常见问题 */
public class ArrayDemo2 {
    public static void main(String[] args) {
        int[] arr = {1,2};
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[2]); // 数据索引越界异常ArrayIndexOutOfBoundsException
        arr = null; // 将arr指向的数组置为空
        System.out.println(arr[1]); //空指针异常NullPointerException
    }
}

3. 二维数组

本质:

本质是其元素为一维数组的数组(将一维数组作为一维数组的元素值).

定义格式:

数据类型[][] 数组名;(推荐)
数据类型 数组名[][];
数据类型[] 数组名[];

初始化:

静态初始化:
    数据类型[][] 数组名 = new 数据类型[][]{{元素…}, …{元素…}, {元素…}};
    简化格式: 数据类型[][] 数组名 = {{元素…},… {元素…}, {元素…}};
动态初始化:
    数据类型[][] 数组名 = new 数据类型[m][n];
    m表示二维数组中一维数组的个数;
    n表示一维数组中元素的个数.

获取二维数组元素:

二维数组名配合索引可以获取到每一个一维数组;
每一个一维数组配合索引可以获取到数组中的元素.
    如:二维数组名为arr
    arr[索引]代表二维数组中的一维数组;
    a[索引][索引]代表一维数组中的元素值.

二维数组元素遍历: int[][] arr

arr.length代表是的一维数组的个数(就是二维数组的行数);
arr[m].length代表的是第m-1个一维数组中元素的个数.

二维数组案例:

package com.heima.array;
/* * 二维数组:初始化,遍历 */
public class ArrayArrayDemo {
  public static void main(String[] args) {
      int[][] arr = {{1,2},{3,4},{5,6}};
      System.out.println(arr);        // 输出二维数组的地址值[[I@1774b9b
      System.out.println(arr.length); // 输出二维数组的长度,就是一维数组的个数
      System.out.println(arr[0]);     // 输出第一个一维数组的地址值
      System.out.println(arr[0][0]);  // 输出第一个一维数组的第一个元素值
      // 数组的遍历,输出数组的值
      for (int i = 0; i < arr.length; i++) {
          for (int j = 0; j < arr[i].length; j++) {
              System.out.println(arr[i][j]);
          }
      }
  }
}

本文转载自:http://blog.csdn.net/l631106040120/article/details/63720161

共有 人打赏支持
S
粉丝 0
博文 34
码字总数 0
作品 0
成都
私信 提问
java基础重点讲解,看了还不会找我(五)

视频下载地址:https://download.csdn.net/download/xxfisgirlgad/10886817 ###05.01_Java语言基础(数组概述和定义格式说明)(了解) * A:为什么要有数组(容器) * 为了存储同种数据类型的多个值...

谢小芳是女神
2018/12/30
0
0
【广州】我想应聘一个C/C++/java软件开发职位

本人预计六月底七月初将去广州生活。希望在广州找到一份c/c++/java方面的软件开发职位。 以下 是我的简历,希望广州地区的it企业可以联系我。 周西的个人简历 姓  名: 周西 性  别: 男...

numcpp
2012/06/07
512
1
【JAVA基础知识点总结】JAVA数据类型基础

《Java基础知识点总结》这一栏目是对自己学JAVA的整个过程一个总结,把这些JAVA基础知识分享出来,给大家参考参考。 本文主讲JAVA数据类型基础,具体如下: 简单数据类型包括:   整型(Inte...

潭州学院
2015/06/05
0
0
Java基础之数组队列及Java堆外内存学习笔记[图]

Java基础之数组队列及Java堆外内存学习笔记[图] 1.数组 1.1 数组基本概念: 数组是一个容器,可以存储同一数据类型的N个数据;数组是一个数据结构,是数据结构中访问速度最快的; 数组是直接...

原创小博客
2018/08/25
0
0
【JavaSE(二)】Java语法基础(下)

原文地址:https://www.cloudcrossing.xyz/post/34/ 1 方法 1.1 方法的概述 方法,简单的说就是完成特定功能的代码块(注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法)。 ...

苍云横渡
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java并发编程

并发与并行 并发指的是同时应对多个事件的能力,并行指的是同时做多件事的能力。 位级并行:32位计算机能够同时处理32位数运算,而8位计算机却要进行多次运算。 指令级并行:表面上看cpu是串...

春哥大魔王的博客
21分钟前
0
0
js数组遍历和对象遍历

数组遍历 for for(var i=0,len=arr.length;i<len;i++){console.log(arr[i]);} forEach - ES5语法,性能比for弱,不能使用break终止循环,不能使用return arr.forEach(function(item,inde......

祖达
40分钟前
2
0
Spring "reg:zookeeper" 的前缀 "reg" 未绑定等类似问题解决方案。

今天同事遇到一个Spring启动加载配置文件时,不识别reg:zookeeper标签的问题。 我查看配置,发现是Spring配置文件的头部没有引入reg标签的命名空间,具体如下图: 所以,以后遇到类似的标签未...

花漾年华
今天
2
0
阿里云领衔云市场

近期,2018年Q4及全年的全球云基础设施服务市场数据新鲜出炉,发布方是美国市场研究机构Synergy Research Group。这个机构是专做电信网络市场情报的公司,成立于1999年,每年都会公布各大公有...

linuxCool
今天
2
0
C++友元函数和友元类(C++ friend)详解

私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书...

shzwork
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部