首页 > 系统相关 >数组及数组JVM内存划分day4

数组及数组JVM内存划分day4

时间:2024-07-30 22:17:35浏览次数:15  
标签:一维 数组 int day4 元素 数据类型 JVM new



 java中第一个存储数据的容器:数组
    特点:
        1、数组的长度大小是固定的
        2、同一个数组中,存储的元素数据类型是一样的

    数组的定义语句格式:
        数据类型[] 数组名;
        举例:int[] arr; // 定义了一个可以存储int类型的一维数组,数组名叫做arr

    数组没有初始化,无法直接使用,数组是我们第一个接触到的引用数据类型
    如何对数组进行初始化?
        动态初始化:先规定数组的大小,数组中的元素先系统赋默认值,后续再自己赋值
        静态初始化:自己将数据赋值,大小由系统根据我们赋值的数量来决定

    JVM内存的划分:Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
      栈 存储局部变量
      堆 存储new出来的东西
      方法区 (面向对象部分讲)
      本地方法区 (和系统相关)
      寄存器 (给CPU使用)



    动态初始化:
        语句定义格式:
            数据类型[] 数组名 = new 数据类型[数组的大小];
            举例:int[] arr = new int[3];
        白话文解释:创建了一个可以存储3个int类型元素大小的数组,数组名叫做arr
        专业术语解释:在堆内存中开辟一个连续空间大小为3的数组对象,将地址值赋值给栈内存中arr变量
举例:int[] arr = new int[3];
 左边:
              int: 表示存储元素的数据类型
              []: 表示这是一个一维数组
              arr: 数组名,符合标识符的命名规则,相当于变量名
            右边:
              new: 在堆内存中开辟空间,将来看到new,就意味着在堆内存中开辟空间
              int: 表示存储元素的数据类型
              []: 表示这是一个一维数组
              3: 表示该数组最多可以存储3个元素,数组长度为3
 如何获取数组中的元素?
            java中的数组具有索引下标的概念,可以通过索引获取对应位置上的元素,索引是从左向右,从0开始的
            索引最大值 = 长度-1
            语句定义格式:
                数组名[索引]
 静态初始化:
        语句定义格式:
            数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,....};
            举例:int[] arr1 = new int[]{11,22,33,44,55,66};
        简化格式:
            数据类型[] 数组名 = {元素1,元素2,元素3,....};
            举例: int[] arr1 = {11,22,33,44,55,66};

   注意:
        静态初始化简化写法,无法拆开进行初始化,必须将初始化与定义在同一行,由一个赋值=语句进行赋值;
        而非简化写法,可以拆开定义和初始化。


二维数组:元素为一维数组的数组

    语句定义格式1:
        数据类型[][] 变量名 = new 数据类型[m][n];
        举例:int[][] arr = new int[3][4];
        创建了可以存储3个长度为4的一维数组的数组,元素的类型是int类型

二维数组的语句定义格式2:当二维数组中的每个一维数组的长度不一样的时候,可以采用该种方式定义
        数据类型[][] 变量名 = new 数据类型[m][];
        m: 指的是二维数组中可以存储m个一维数组
        将来我们可以自己创建一维数组,将地址值赋值给对应的二维数组中的元素

创建二维数组的同时,赋值一维数组
    语句定义格式3:
        数据类型[][] 变量名 = new 数据类型[][]{{元素1,元素2,元素3,...}, {}, {},...};
    简化
        数据类型[][] 变量名 = {{元素1,元素2,元素3,...}, {}, {},...};
二维数组的遍历
public class Array2Test1 {
    public static void main(String[] args) {
        //创建一个二维数组
        int[][] arr6 = {{11, 22, 33, 44}, {1, 2, 3}, {100, 200, 300, 400, 500}};
        for (int i = 0; i < arr6.length; i++) { // 外层循环控制的是遍历第几个一维数组元素
            for (int j = 0; j < arr6[i].length; j++) { // 内层循环控制的是每一个一维数组中元素的遍历
                if (j == 0) {
                    System.out.print("[" + arr6[i][j] + ", ");
                } else if (j == arr6[i].length - 1) {
                    System.out.print(arr6[i][j] + "]");
                } else {
                    System.out.print(arr6[i][j] + ", ");
                }

            }
            //换行
            System.out.println();
        }
    }
}

标签:一维,数组,int,day4,元素,数据类型,JVM,new
From: https://www.cnblogs.com/qiwei-bigdata/p/18333458

相关文章

  • 数组元素逆序
    /*数组元素逆序(就是把元素对调)涉及数组元素交换的逻辑的时候,可以定义一个中间变量,作用是临时将值存储一下*/publicclassArrayTest3{publicstaticvoidmain(String[]args){int[]arr={1,2,3,4,5,6,7};System.out.println("......
  • 找出数组中最大和最小值
    找出数组中最大和最小值/*数组获取最值(获取数组中的最大值最小值)*/publicclassArrayTest2{publicstaticvoidmain(String[]args){int[]arr={123,451,45,12,556,12,412};//1、默认将第一个元素作为最大值以及最小值int......
  • (nice!!!)LeetCode 2952. 需要添加的硬币的最小数量(贪心、数组)
    题目:2952.需要添加的硬币的最小数量思路:假设区间[1,s-1]的数都可组合得到,当遍历到x=coins[i]时,1、当x<=s时,可以组合的数就是区间[1,s-1]和区间[x,s-1+x]的交集,即区间[1,s-1+x]2、当x>s时,区间[1,s-1]和区间[x,s-1+x]没有交集,那我就只能通过添加一个数来实现了。在这里......
  • 一维数组
    创建数组一维数组的创建和初始化:声明数组:javaint[]myIntArray;//声明一个整数类型的数组分配内存空间(初始化数组):javamyIntArray=newint[5];//分配一个可以存储5个整数的数组分配数组元素:javamyIntArray[0]=10;myIntArray[1]=20;myIntArray[2]=3......
  • 数组概念
    数组数组(Array)是一种基本的数据结构,用于存储固定数量的元素,这些元素通常是相同类型的。数组提供了一种方式来访问和操作集合数据。以下是数组的一些基本概念:固定大小:一旦声明,数组的大小就不能改变。例如,如果你声明一个包含10个整数的数组,你就不能将其扩展到10个以上的元素。......
  • 数组的算法
    冒泡法冒泡排序(BubbleSort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的......
  • 多维度数组
    多维度数组多维度数组(MultidimensionalArrays)在Java中可以视为数组的数组,最常见的是二维数组,但Java也支持更多维度的数组。多维度数组在内存中并不是连续存储的,它们是按行或按列连续的,这取决于数组的布局方式。声明多维度数组:javaint[][]twoDimArray;//声明一个二维数组i......
  • 算法:请找出数组a所有重复元素和比较数组a和数组b得到不重复的新数组和比较数组a和数组
    /***1.给定数组int[]a,int[]b*(1)请找出数组a所有重复元素,例:int[]a={1,2,3,4,8,9,3,5,1,3},结果int[]a1={1,1,3,3,3}*(2)比较数组a和数组b得到不重复的新数组,例:int[]a={1,2,3,4,8,9,3,5,1,3},int[]b={2,7,6,0,5},结果int[]c={1,2,3,4,5,6,......
  • Android开发 - ArrayList类动态数组与ArrayList<Fragment>解析
    什么是ArrayListArrayList是Java编程语言中的一个类,它实现了动态数组的数据结构。简单来说,ArrayList允许我们创建一个可以动态增长或缩减的数组,这在处理需要频繁添加或删除元素的情况下非常有用主要特点和用途动态大小:ArrayList的大小可以根据需要动态增长或缩减,与普通的数......
  • 利用结构体数组 实现学生信息管理系统(模块化编程)
    核心功能(必须实现):                        新增信息查询信息修改信息删除信息 信息排序扩展功能:                        按字符串索引, 插入信息 提升功能:                        账号注......