服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 详解Java数组的一维和二维讲解和内存显示图

详解Java数组的一维和二维讲解和内存显示图

2023-05-09 01:03未知服务器之家 Java教程

目录 一.数组的认识 二.一维数组的用法 2.1 数组的创建 2.2数组的使用 2.3数组内存原理 2.3.1Java虚拟机内存划分 2.3.2数组内存示例图 三.二维数组的认识 四.数组作为方法参数和返回值 五.Java常用API 5.1输出数组 5.2数组转集合 5.3数组中

目录
  • 一.数组的认识
  • 二.一维数组的用法
    • 2.1 数组的创建
    • 2.2数组的使用
    • 2.3数组内存原理
      • 2.3.1Java虚拟机内存划分
      • 2.3.2数组内存示例图
  • 三.二维数组的认识
    • 四.数组作为方法参数和返回值
      • 五.Java常用API
        • 5.1输出数组
          • 5.2数组转集合
            • 5.3数组中是否包含某个值 Arrays.asList().contains()
              • 5.4数组排序Arrays.sort()
                • 5.5数组二分查找Arrays.binarySearch()
                • 总结

                  一.数组的认识

                  在C语言里,我们也曾学习过数组,数组是什么?数组就相当于一个容器,存放相同类型数据的容器。而数组的本质上就是让我们能 "批量" 创建相同类型的变量。

                  注:容器是固定了大小的,不可改变的那种,例如:矿泉水瓶子、汽油罐、衣柜等容量大小不一的容器。

                  二.一维数组的用法

                  2.1 数组的创建

                  数组的初始化有2种形式

                  1、静态初始化(固定内容)

                  2、动态初始化(固定长度)

                  静态初始化:指在数组声明的同时,直接给数组引用赋值 ,不需要申明长度数据类型[ ]数组名称 = new 数据类型 [ ]{ 初始化数据 };

                  示例:int[ ]arr = new int[ ]{1, 2, 3};

                  省略方式:数据类型 [ ] 数组名称 = { 初始化数据 }; 示例:int [ ]arr = {1, 2, 3};

                  注:省略方式不允许先声明后赋值,只能声明同时直接赋值。

                  例如:int [ ]arr3; arr3 = {} //编译出错

                  动态初始化:指数组声明和数组引用赋值分开。根据数组定义方式的不同,又分为两种。

                  第一种:直接引用相同数组进行赋值。

                  例如:int[ ] arr=arr;直接将数组arr赋值给了arr;注:一定得相同类型的数组

                  第二种:数据类型 [ ]数组名称 = new 数据类型 [数组长度];

                  例如:int [ ]arr1 = int[10]; int arr1[0] = 0;

                  2.2数组的使用

                  每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引 (index),可以通过数组的索引访问到数组中的元素。 数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度,语句为:数组名。length,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数组的最大索引值为:数组名。length-1。

                  public static void main(String[] args) {
                  	 int[] arr = new int[]{1,2,3,4,5}; 
                  	 //打印数组的长度,输出结果是5
                  	  System.out.println(arr.length);
                      //打印对应数组的值,输出结果为1
                        System.out.println(arr[0]);
                  }

                  2.3数组内存原理

                  在Java中,内存是非常非常重要的,作用:运行程序。我们编写的程序都是存放在硬盘当中的,而在硬盘里的程序是不会运行的,必须得在内存当中才能运行,运行完毕后会清空内存。 Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。

                  2.3.1Java虚拟机内存划分

                  Java为了提高效率,把内存进行了划分,从而使每一片区域都有特点的处理数据方式和内存管理方式。

                  jvm的内存划分:

                  区域名称 作用
                  寄存器 给CPU使用,和我们开发无关
                  本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关
                  方法区 存储可以运行的class文件
                  堆内存 存储对象或者数组,new来创建的,都存储在堆内存
                  方法栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行

                  此处我们不详细讲解,只讲解与数组有关的堆区间。

                  1.栈(Stack): 存放的都是方法中的局部变量。方法的运行一定要在栈当中运行局部变量:方法的参数,或者是方法几内部的变量 作用域: 一旦超出作用域,立刻从栈内存当中消失

                  2.堆(Heap) : 凡是new出来的东西都在堆中

                  2.3.2数组内存示例图

                  详解Java数组的一维和二维讲解和内存显示图详解Java数组的一维和二维讲解和内存显示图

                  5.2数组转集合

                  Arrays.asList()

                  String[] array2 = {"a", "b", "c", "d"};
                  	System.out.println(array2);  
                  	List list = new ArrayList(Arrays.asList(array2));
                  	System.out.println(list);   // [a, b, c, d]
                  	list.add("GG");
                  	System.out.println(list);  // [a, b, c, d, GG]

                  5.3数组中是否包含某个值 Arrays.asList().contains()

                  String[] array = { "a", "b", "c", "d", "e" };
                  boolean isEle = Arrays.asList(array).contains("a");
                  System.out.println(isEle);

                  5.4数组排序Arrays.sort()

                   int[] array = { 3, 1, 2 };
                   System.out.println(Arrays.sort(array));
                  //输出:1,2,3

                  5.5数组二分查找Arrays.binarySearch()

                  int[] array = { 1,2,4,5,3,7,8 };
                  System.out.println(Arrays.binarySearch(array,5));
                  //输出4

                  以上并不是全部,只是列举了一些常用的类方法。

                  总结

                  数组的重点在于了解内存存储的数据,还有如何使用数组的数据,如何快捷使用对应的类方法。

                  原文地址:https://blog.csdn.net/m0_74097410/article/details/129566496

                  延伸 · 阅读

                  精彩推荐