【第六天 数组的相关学习】 一维数组 二维数组 以及内存图

2022/1/17 7:09:04

本文主要是介绍【第六天 数组的相关学习】 一维数组 二维数组 以及内存图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数组

  • 前言
  • 一、一维数组
    • 1. 特点
    • 2.数组的定义格式
    • 3.数组的初始化方式:
    • 4.数组的遍历
  • 二、二维数组
    • 1.定义:
    • 2.定义格式:
    • 3.注意事项
  • 三、数组内存图

前言

认真理解,反复练习

一、一维数组

   定义:存放同一种数据类型元素的集合,也可以看作是一个容器。

1. 特点

 (1)元素的数据类型一致,可以存放基本数据类型,也可以存放引用数据类型。
 (2)数组的长度是固定的。

2.数组的定义格式

  (1)数据类型[] 数组名; (推荐使用第一种)
  (2)数据类型 数组名[];

3.数组的初始化方式:

  (1)动态初始化:在定义时候只给定数组的长度,值是由系统默认给出的。
       语句定义格式:
       数据类型[] 数组名 = new 数据类型[元素的个数];
       举例:int[] arr = new int[3];
       表示的是定义一个长度为3并且元素是int类型的一维数组。
  (2)静态初始化:在定义的时候,就手动给出元素值。
       语句定义格式:数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2...};
       简化格式:数据类型[] 数组名 = {元素值1,元素值2...};

4.数组的遍历

  (1)获取的长度的属性:length
       使用格式:数组名.length

二、二维数组

1.定义:

 元素是由一维数组组成的数组

2.定义格式:

(1)定义格式一:
    数据类型[][] 数组名 = new 数据类型[m][n];
    m:表示的是有多少个一维数组
    n:表示的一维数组的元素个数
    举例:int[][] arr = new int[3][2];    
    表示的是定义一个有3个长度为2的一维数组组成的二维数组。

(2)定义格式二:
    数据类型[][] 数组名 = new 数据类型[m][];
    m:表示的是有多少个一维数组
    举例:int[][] arr = new int[4][];

(3)定义格式三:
            数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
            举例:int[][] arr = new int[][]{{1,2},{3,4,5},{1,2,34,5}};
    简化版格式:
            数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
            举例:int[][] arr = {{1,2},{3,4,5},{1,2,34,5}};
            表示的是:二维数组arr中有三个一维数组,分别是{1,2},{3,4,5},{1,2,34,5}

3.注意事项

 注意:
     1、以下几种写法也是二维数组
        数据类型[] 数组名[];
        数据类型 数组名[][];
     2、格式3不能与格式1、格式2混合使用。
        错误格式:int[][] arr = new int[2][]{{1,2},{3,1,2}};

需要掌握二维数组的遍历方式,结合着一维数组遍历方式去看

package com.shujia.wxl.day06;

/*
        二维数组遍历
        
        数加科技
            十三期
                小王,小李
            十四期
                小明,小刘,小张
            十五期
                小虎,小宇,小旺,小凯
            十六期
                小火,小杨,小爱,小周
 */
public class Array2Demo4 {
    public static void main(String[] args) {
        //定义一个二维数组表示是一个数加科技
        String[][] shujia = {{"小王", "小李"}, {"小明", "小刘", "小张"}, {"小虎", "小宇", "小旺", "小凯"}, {"小火", "小杨", "小爱", "小周"}};

        for (int i = 0; i < shujia.length; i++) {
//            System.out.println(shujia[i]);
            //外层循环遍历到的是每一个一维数组
            //要想获取每个一维数组中的元素,再进行一次for循环遍历
            System.out.println("第" + (i + 1) + "个数组:");
            for (int j = 0; j < shujia[i].length; j++) {
//                System.out.println(shujia[i][j]);
                if (j == shujia[i].length - 1) {
                    System.out.print(shujia[i][j] + "]");
                } else if (j == 0) {
                    System.out.print("[" + shujia[i][j] + ",");
                } else {
                    System.out.print(shujia[i][j] + ",");
                }
            }
            //每次内循环结束表示打印完一个一维数组,换行
            System.out.println();
        }
    }
}

三、数组内存图

1. JVM将内存划分成的5个部分,
(1)栈:局部变量和方法的调用
(2)堆:new出来的东西都在堆里面
(3)方法区(面向对象的时候讲解)
(4)本地方法区
(5)寄存器

内存图

 2. 数组动态初始化和惊静态初始化

在这里插入图片描述
在这里插入图片描述

3.定义两个数组
(1)定义两个数组并赋值
(2)定义两个数组共用一个地址

(1)在这里插入图片描述
(2)
在这里插入图片描述

  4.二维数组内存图

在这里插入图片描述



这篇关于【第六天 数组的相关学习】 一维数组 二维数组 以及内存图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程