Java基础语法(四)

版权声明:作者已开启版权声明,如转载请注明转载地址。 https://blog.csdn.net/qq_34829447/article/details/81951446

一.流程控制语句switch

1.switch

  • 在switch语句中使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。具体实现代码如下

    switch (表达式){
    case 目标值1:
        执行语句1
        break;
    case 目标值2:
        执行语句2
        break;
    ......
    case 目标值n:
        执行语句n
        break;
    default:
        执行语句n+1
        break;
    }
  • 注意:switch语句接受的数据类型为:JDK1.7 数据类型接受 byte short int char enum(枚举), String

  • case穿透:case具有穿透性,在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。 而且,当case后如果没有break,程序会一直向下穿透

二.数组[引用类型,故存的是内存中的地址]

1.数组的概述

数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。 [存储同一类型的多个元素数据,长度固定]

2.数组的定义

  • 定义数组(只指定数组的长度,由系统自动为元素赋初值的方式称为动态初始化):数据类型[] 数组名 = new 数据类型[元素个数或数组长度];

  • 静态初始化(定义数组的同时就为数组的每个元素赋值 )

    数据类型 [] 变量名 = new 数据类型[]{"...","..."};
    数据类型 [] 变量名 = {"...","..."};
  • 定义数组的相关要点说明:

    • 数据类型: 数组中存储元素的数据类型
    • [] 表示数组的意思
    • 变量名 自定义标识符
    • new 创建容器关键字
    • 数据类型: 数组中存储元素的数据类型

    • [] 表示数组的意思

    • 元素个数,就是数组中,可以存储多少个数据 (恒定, 定长)
  • 数组创建过程中内存的分配情况

    int[] x;            // 声明一个int[]类型的变量
    x = new int[100]; // 创建一个长度为100的数组
    • 第一行代码 int[] x; 声明了一个变量x,该变量的类型为int[],即一个int类型的数组。变量x会占用一块内存单元,它没有被分配初始值。内存中的状态如下图所示

    这里写图片描述

    • 第二行代码 x = new int[100]; 创建了一个数组,将数组的地址赋值给变量x。在程序运行期间可以使用变量x来引用数组,这时内存中的状态会发生变化,如下图所示

    这里写图片描述

    • 在上图中描述了变量x引用数组的情况。该数组中有100个元素,初始值都为0。数组中的每个元素都有一个索引(也可称为角标),要想访问数组中的元素可以通过“x[0]、x[1]、……、x[98]、x[99]”的形式。需要注意的是,数组中最小的索引是0,最大的索引是“数组的长度-1”。在Java中,为了方便我们获得数组的长度,提供了一个length属性,在程序中可以通过“数组名.length”的方式来获得数组的长度,即元素的个数。
  • 当数组被成功创建后,数组中元素会被自动赋予一个默认值,根据元素类型的不同,默认初始化的值也是不一样的。

数据类型 默认初始化值
byte、short、int、long 0
float、double 0.0
char 一个空字符(空格),即’\u0000’
boolean false
引用数据类型 null,表示变量不引用任何对象

* 数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号。自动编号,最小值是0, 最大值,长度-1。自动编号专业名次, 索引(index), 下标, 角标。访问数组存储的元素,必须依赖于索引, 公式 数组名[索引]。

  • 数组的length属性可以得到数组的长度:数组名.length 结果数据类型为int。数组的最小索引是0, 最大索引数组.length-1。

  • 数组的内存图

    这里写图片描述

3.数组中常见的异常

  • 数组的索引越界异常ArrayIndexOutOfBoundsException

  • 空指针异常NullPointerException

这里写图片描述

4.二维数组的定义

  • 定义方式一:

    int arr = new int[3][4]; //定义了一个3*4的二维数组
  • 定义方式二:

    int[][] arr = new int[3][];//此方式定义时,数组中每个元素的长度不确定
    arr[0] = new int[5];//第一行5个元素
    arr[1] = new int[2];//第二行2个元素
    arr[2] = new int[3];//第三行3个元素
  • 定义方式三:

    int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};//二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9}
  • 二维数组内存图

    这里写图片描述

三.JVM(Java Virtual Machine)

1.JVM内存划分

  • JVM对自己的内存划分为5个区域
    • 寄存器:内存和CPU之间
    • 本地方法栈: JVM调用了系统中的功能
    • 方法和数据共享: 运行时期class文件进入的地方
    • 方法栈:所有的方法运行的时候进入内存
    • 堆:存储的是容器和对象

2.JVM内存划分图解

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_34829447/article/details/81951446