ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2022-01-16 14:33:19  阅读:120  来源: 互联网

标签:一维 定义 int 数据类型 第六天 内存 数组 格式


数组

前言

认真理解,反复练习

一、一维数组

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

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.二维数组内存图

在这里插入图片描述

标签:一维,定义,int,数据类型,第六天,内存,数组,格式
来源: https://blog.csdn.net/Swagwxl/article/details/122519972

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有