Java 基础之数组

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐) 本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。 阅读详情

目录

1、数组的定义

1.1数组的概念

1.2数组的定义方式

1.2 .1 数组的静态初始化(第一种定义格式)

1.2.2 数组的动态初始化(第二种定义格式)

1.3 数组的遍历

1.4 数组的默认初始化值

1.5 数组的弊端 

2、数组内存图解

2.1 Java 的内存分配

2.2 数组的内存分配

​编辑

​编辑

3、数组的常见的问题

3.1 数组角标越界异常

 3.2 空指针异常

4、数组的应用

4.1 遍历

4.2 求和

4.3 数组求最值

4.4 数组的使用思想

5、数组的排序

5.1 选择排序

6、数组查找

6.1 一般查找

7、Array 类的使用​​​​​​​


1、数组的定义

1.1数组的概念

        数组:数组表示的一串连续的存储空间。每个空间中都可以保存一个数据。当我们需要操作的时候,不要去面对单个空间,而直接面对这个整体的连续的存储区域。

1.2数组的定义方式

1.2 .1 数组的静态初始化(第一种定义格式)

静态初始化:初始化数组与给数组元素赋值同时进行。

                      即在定义数组的时候,如果已经知道数组中的具体数据,这时可以在定义数组的时候直接书写具体的数据。

格式:

        数据类型[] 数组名 = {值,值,值.......};

int[] arr={11,22,33,44,-1,0};

1.2.2 数组的动态初始化(第二种定义格式)

动态初始化:初始化数组与给数组元素赋值分开进行

格式:

        数组中保存的数据类型[] 数组的名 = new 数组中保存的数据类型[ 开辟的连续空间个数 ];

把上述定义的格式可以翻译成下述格式:
数据类型[] 数组名 = new 数据类型[长度] ;

//定义变量:
数据类型  变量名 = 值;
int a = 123;

//定义数组:
int[] arr = new int[4];  
在内存中一次开辟4个连续的空间,每个空间都是int类型,
并且这些空间中保存的数据也必须是int类型。

1.3 数组的遍历

需求:将数组中每一个数据打印到屏幕上。

数组的遍历:

  • 遍历:把数组的所有空间都访问一遍。
  • 访问数组的空间需要使用:数组名+数组的下标,才能访问到数组的每个空间。
  • 同一个数组,名称是统一的,只有下标。而下标是从零开始,到长度-1结束,
  • 下标是在有序的增加。
public class Demo4 {
    public static void main(String[] args) {
        int[] arr = new int[]{111, 222, 333};
        for (int i = 0; i < arr.length ; i++ ) {
            System.out.println(arr[i]);
        }
    }
}

1.4 数组的默认初始化值

        因为数组的创建都是通过new出来的,new是一个关键字,已经有点面向对象的意思了;

        所以需要注意的是,数组是引用类型的,那么它和之前讲的基本类型之间是有区别的;

        如果是引用类型变量,只要一旦创建(new),那么jvm虚拟机会自动给它先赋一个默认的初始化值:例如:

Int[] arr = new int[5];

        说明在内存中开辟一组空间,一共有5块区域,虽然是动态初始化,没有赋具体的值但是有默认的初值为:0

  •  int[0]~int[5]的五块区域的值都为0
  • double[]、float[]默认的初始化值为:0.0
  • byte[]、short[]、long[]默认的初始化值为:0
  • char[]默认的初始化值为:’\u0000’
  • boolean[]默认的初始化值为:false

1.5 数组的弊端 

  • 数组一旦初始化,它的长度是不可变的;
    • 集合可以解决数组这个弊端
public class Demo4 {
    public static void main(String[] args) {
        int[] i = new int[]{12,13,14};
        int[] j = new int[10];
        for (int k = 0; k < i.length ; k++ ) {
            j[k] = i[k];
        }
        //数组i的长度为3,数组j只能得到三个数据,对应下标0,1,2的空间
        j[3] = 15;
        j[4] = 16;
    }
}

2、数组内存图解

2.1 Java 的内存分配

JVM把内存划分成5片区域:

①栈内存:栈内存主要是用来运行函数的,在函数中定义的所有变量,都会在这个内存开辟空间。

        在栈内存中定义的变量,不初始化,是不能直接使用的。

        注意:所有的函数都必须在栈内存中运行。

        而jvm只会运行处于栈内存顶部的函数。

        函数被加载到栈内存的动作,称为函数的压栈(入栈)。

        函数执行完之后就会从栈中消失(函数的弹栈,或者叫做出栈)

②堆内存:在程序中使用new 关键字创建出来的所有东西,都会保存在堆内存中。

        堆内存中开辟的空间,不赋值,都会有默认的初始化数据。

        整数:默认是0

        小数 默认是0.0.

        boolean 默认是false

        char 默认是 空格

③方法区:

        JVM在加载class文件的时候,所有的class文件就要加载在这个内存中。(先了解,后面会详细讲解)

④本地方法区:主要是保存native关键字标注的方法

⑤寄存器:是给CPU使用的

2.2 数组的内存分配

数组的简单操作:

        我们需要通过数组的总名称 引用变量空间,然后通过这个引用空间中的地址,再去找到堆内存中的连续的空间,然后才能准确的去操作数组。

获得数组中每个空间中的值:

        数组名[下标];

给数组的每个空间赋值:

        数组名[ 下标 ] = 值;

我们定义的数组名空间:

        它是一个特殊的内存空间,它中只能保存某个数字在堆中的内存地址。而不能像前面学习普通变量一样来保存普通的常量。

        数组名空间保存某个数组的地址,而数组的每个真实空间保存具体的普通常量数据。


3、数组的常见的问题

3.1 数组角标越界异常

 3.2 空指针异常

图解说明:

        注意,在 java 中当被 new 出来的堆中的内存,没有任何一个引用指向它的时候,这时它就是一个垃圾,JVM 就使用垃圾回收器把当前这片内存清理。

//例:请问堆中有垃圾嘛?    
int[] arr = new int[5];
int[] arr2 = arr;
arr = null;

答案:没有,因为上述代码,先有2个引用变量指向数组,后面虽然把一个引用赋值null,但还有一个引用指向数组,这时是没有垃圾的。如果一个内存空间没有任何引用指向,这时这片内存才会变成垃圾。

 

4、数组的应用

4.1 遍历

/**
 * 例:
 *      1、随便定义一个数组,对其遍历。
 *      2、由于数组的下标是有序增加的,所以可以使用循环提供数组的下标
 *      3、在屏幕上将数组中的数据打印出来,并且每个数据之间用逗号隔开。
 */
public class ArrayDemo05 {
    public static void main(String[] args) {
        Demo01();
        System.out.println("====================");
        Demo02();
    }

    //方式一:直接打印
    public static void Demo01() {
        //定义数组
        int[] arr = {1, 2, 12, 4, 5, 6, -1, 0};
        //遍历数组,将数组中的元素打印到控制台
        for (int i = 0; i < arr.length; i++) {
            System.out.println("arr[" + i + "] =" + arr[i]);
        }
    }

    /**
     *  方式二:将打印语句封装到函数中
     */
    public static void Demo02() {
        //定义数组
        int[] arr = {1, 2, 12, 4, 5, 6, -1, 0};
        //调用函数
        printArray(arr);

    }

    /**
     * 	把打印数组的独立代码单独封装到一个函数中
     * 		在定义函数的时候时刻要思考函数需不需要返回值,
     * 		还要确定当前的函数需不需要接收参数
     * @param arr
     */
    public static void printArray(int[] arr) {
        for (int i = 0; i <= arr.length - 1; i++) {
            //如果数据是最后一位,就不需要打印逗号
            if (i == arr.length) {
                System.out.println("arr[" + i + "] =" + arr[i]);
            } else {
                System.out.println("arr[" + i + "] =" + arr[i] + ",");
            }
        }
    }
}

 

4.2 求和

/**
 * 例:计算数组中所有数据的和:
 *      1.定义一个存储数据的数组;
 *      2.定义一个变量用来接收数组中所有数据的和;
 *      3.遍历数组,取出数组中的数据依次和上面的定义的变量相加;
 *      4.将求和的功能封装成一个函数,将求和的结果返回给调用者并打印。
 */
public class ArrayDemo05 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        //调用自定义的函数
        Integer sum = SumArray(arr);
        //在屏幕上打印数组中所有数据的和
        System.out.println("sum = " + sum);
    }

    //求和的函数(接口)
    public static Integer SumArray(int[] arr) {
        //定义一个变量接收数组中所有数据的和
        int sum = 0;
        //遍历取出数组中每个空间中的数据
        for (int i = 0; i < arr.length; i++) {
            //将数组中的每个数据和变量sum相加
            sum += arr[i];
        }
        //将数组的数据和sum返回给调用者
        return sum;
    }
}

 

4.3 数组求最值

数组的最值问题:

        在对数组求最值的时候,一般我们会假设一个值为最大值或者最小值,然后遍历数组中的所有空间,和假设的这个值进行大小比较,只要从数组中取出的值比假设的值大 或者 小, 就进行替换。

        最终把数组遍历完成,就能找到最大值 或者 最小值。

注意:一般要求假设的这个值一定是数组中存在的值。

/**
 * 例:计算数组中的最大值或者最小值。
 *      1.定义一个有数据的数组。
 *      2.定义一个变量max用来接收数组中最大的数据。
 *      3.假设数组中第一个空间中的数据最大,并将数组中的第一个空间的数据赋值给变量max。
 *      4.使用for循环遍历数组中的数据,依次取出数组空间中的数据并和max进行比较。
 *      5.如果取出的数据大于max中保存的数据,则将该数据保存到max空间中。
 *      6.将上述求最值的功能代码封装到函数中,并将保存数组中最大数据的max返回给调用者。
 */
public class ArrayDemo06 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {1, 3, 4, 5, 6};
        //调用自定义函数
        int max = getArrayMax(arr);
        System.out.println("max = " + max);
    }

    public static int getArrayMax(int[] arr) {
        //定义一个变量,存放最值
        int max = arr[0];
        //使用循环取出数组中空间的数据和假设的最大值进行比较
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        //比较结束后将最大值max返回给调用者
        return max;
    }
}

4.4 数组的使用思想

        数组:称为一类容器。它中可以保存多个数据。

        当我们有多个数据的时候,并且数据的类型是统一的,同时个数也是确定的,这时就可以使用数组保存。

        数据少了使用变量保存,数据一旦多了,就使用数组保存。


5、数组的排序

排序:其实就是把一些没有顺序的数据,按照特定的规则进行排列。

排序的方式有两种:升序(从小到大) 降序(从大到小)

5.1 选择排序

        选择排序,从数组空间中选择第一个空间然后和其它空间中的数据进行比较,如果要求升序排列,那么选择的这个空间中的数据和其它空间中的数据比较完之后将最小的数据和当前的第一个空间中的数据进行互换位置,然后再选择第二个空间中的数据和除第一个空间中的数据进行比较,同样找出最小的数据,将两个空间中的数据进行位置互换。后面的数据以此类推,一直将所有的数据变成从小变大的数据为止。

        降序排序,方向相反。

 

/**
 * 选择排序代码实现得思路和步骤:
 *      1)定义一个数组。
 *      2)定义一个函数将选择排序的功能封装到函数中。
 *      3)如果两个空间中需要交换数据,这时需要定义一个临时变量temp来保存选中空间的数据。
 *      4)使用for循环对选中空间的下标进行遍历,这个for循环作为外层循环。
 *      5)使用for循环对选中空间后面的空间的下标进行遍历,这个for循环作为内层循环。
 *      6)使用判断结构对选中空间中的数据和后面的空间中的数据进行比较,如果选中空间中数据大于后面空间中的数据,则交换空间中的数据。如果选中空间中数据小于后面空间中的数据,则不交换空间中的数据。
 *      7)在定义一个函数用来打印数组中的数据。
 */
public class ArrayDemo08 {
    public static void main(String[] args) {
        int[] arr = {11, 22, 33, 44, 55, 66, 77, 99, 0, -1};
        //打印数组
        printArr(arr);
        System.out.println("---------------");
        //对数组进行升序
        int[] acs = acsSort(arr);
        printArr(arr);
        System.out.println("---------------");
        //对数组进行降序
        int[] desc = descSort(arr);
        printArr(arr);
    }

    //数组升序排序
    public static int[] acsSort(int[] arr) {
        //对数组进行升序
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                //数组进行对比
                if (arr[i] > arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

    //数组降序排序
    public static int[] descSort(int[] arr){
        //对数组进行降序排列
        for (int i = 0; i < arr.length; i++) {
            //数组进行对比
            for (int j = 0; j < arr.length; j++) {
                if (arr[i] < arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

    //打印数组
    public static void printArr(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println("arr[" + i + "] =" + arr[i]);
        }
    }
}


6、数组查找

数组查找:就是去遍历数组,找到数组中的某个元素,并找到该元素的位置。

6.1 一般查找

/**
 * 	例:从指定的数组中找出指定值的下标。
 *      1、 定义一个数组
 *      2、需要定义一个功能(函数),然后接收调用者传递进来的数组和指定的值key,需要返回找到的下标。
 * 		3、循环遍历数组,在遍历的过程中取出数组的中的值和指定的key进行比较:
 * 				相等就找到,返回当前的下标。
 *      4、如果循环都结束了,也没有相等的,说明当前指定的数据,在数组中不存在,
 * 	一般只要是程序中关于查找的问题,没有找到统一都返回-1
 */
public class ArrayDemo07 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {-2,11,22,33,44,55,66,77,99,0,-1};
        int index = getIndex(arr,3);
        System.out.println("index = " + index);
    }

    public static int getIndex(int[] arr, int key) {
        /*
          循环遍历数组,在遍历的过程中取出数组的中的值和指定的key进行比较
		  相等就找到,返回当前的下标,如果循环都结束了,也没有相等的,
		  说明当前指定的数据,在数组中不存在,
		  一般只要是程序中关于查找的问题,没有找到统一都返回-1
        */
        for (int i = 0; i < arr.length; i++) {
            if (key == arr[i]) {
                return i;
            }
        }
        //如果循环都结束了,说明根本就没有找到和指定的值相等的数据
        return -1;
    }
}
【实战篇】【硅基流动API+Cherry Studio搭建个人知识库全流程解析:从零到精通的超详细指南】 在人工智能技术高速发展的今天,基于大语言模型的知识库已成为开发者提效的必备工具。然而云端服务存在响应延迟、数据隐私、硬件依赖等痛点。通过硅基流动API与的深度整合,我们既能享受大模型的强大能力,又能实现本地化部署与高效管理。本文将从环境配置到高阶调优,手把手带你构建企业级知识库系统。 阅读详情

相关推荐

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1118

java数组方法案例

java数组方法练习案例,买飞机票、找素数、评委打分、数字加密

weixin_62023527的博客 628

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 745

数组类—StaticArray

StaticArray 上一节数组类的抽象类里我们在程序里构造的Array类里定义了成员的地址变量,有了可以返回数组的大小的方法,也通过下标合法性的检查避免了数组越界的问题,但是还有一个问题没有解决,就是数组之间可以赋值。在这篇博客里,我们新创建的一个类继承自Array类,然后去客服数组间不能互相赋值的问题。 设计要点: 类模板 封装原生数组 实现函数返回数组长度 拷贝

晴。 811

内网环境下的高德地图离线化实战:从瓦片下载到交互功能集成

本文详细介绍了在内网环境中部署离线高德地图的完整实战方案。针对军工、能源、金融等对网络隔离与数据安全有严格要求的场景,文章核心解决了离线地图的两大基石:地图瓦片数据的高效下载与本地化,以及高德地图JS API的获取与插件集成。通过具体代码示例,进一步讲解了如何实现地图初始化、海量点标注与聚合、自定义图标及框选查询等核心交互功能,并分享了内网部署的路径配置、性能优化及法律合规等关键注意事项,为开发者在封闭网络环境下构建稳定、可控的地图应用提供了清晰指南。

Apple的专栏 394

Wider Face+YOLOV7人脸检测

使用Wider Face数据集训练YOLOV7

chen_znn的博客 8407

java数组讲解_Java基础学习笔记之数组详解

本文实例讲述了Java基础学习笔记之数组。分享给大家供大家参考,具体如下:数组的定义于使用1:数组的基本概念一组相关变量的集合;在Java里面将数组定义为引用数据类型,所以数组的使用一定要牵扯到内存分配;想到了用new 关键字来处理。2:数组的定义格式区别:动态初始化后数组中的每一个元素的内容都是其对应数据类型的默认值,随后可以通过下标进行数组内容的修改;如果希望数组定义的时候就可以提供内容,则采...

weixin_39990138的博客 262

VC Spyglass CDC验证避坑指南:如何正确配置同步复位信号(实验二重点解析)

本文深入解析VC Spyglass CDC验证中同步复位信号的正确配置方法,通过实验二案例详细展示错误配置的典型表现及修正过程。文章提供同步复位的最佳实践方案,包括约束文件修改指南、验证流程优化建议和高级调试技巧,帮助工程师有效避免CDC验证中的常见陷阱。

rock5的博客 678

Java如何创建数组并初始化

Java如何创建数组并初始化

Aa_Lyang的博客 2222

开源PACS系统Orthanc(DICOM服务器)配置

PACS(Picture Archiving and Communication System)是医学影像的数字化存储、检索和传输系统,用于管理和存储医学图像和相关信息,如放射学、核医学、超声、病理学等各种医学影像。PACS系统通过数字化技术取代了传统的胶片方式,使医疗机构能够更高效地存储、传输和查看医学图像,从而提高了医疗图像的管理和工作流程。

qq_42231043的博客 6250

科普:Frenet坐标

理想情况下,描述这种常见驾驶行为在数学上应该很容易。一种方法是使用新的坐标系。现在,而不是放下一个正常的笛卡尔网格,我们做一些事情,就像你看到下面…Frenet Coordinates是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式。如果我们想要方程式来描述这个动作,那就不容易了!想象一下像下面这样一条弯曲的道路,笛卡尔坐标系就位于它的上面…使用这些笛卡尔坐标,我们可以尝试描述车辆通常在路上行驶的路径…那么在Frenet坐标系下呈现的典型轨迹是什么样的?在这里,我们定义了一个新的坐标系统。

OceanStar的博客 1万+

PHP数组索引从1开始

将一个数组的索引重置且数组索引由1开始递增1;

cheng1a的博客 1117

华为非AI方向0603笔试真题-爆破小游戏(详细思路+多语言题解)

华为非AI方向0603笔试第二题【爆破小游戏】,提供详细思路讲解以及代码实现。

qq_45776114的博客 358

JAVA数组基础

初识Java数组,基础要打牢!

zhao_2907的博客 1621

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JAVA基础:数组

Java中数组的基本使用

愿你我都能实现自己的梦想 2320

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Java基础】数组基础

Java当中的数组在栈中被使用,而数组指向堆中的数据才是真实的数据。数组只是引用了这些数据,因此,我们称数组为引用类型。当数组指向对应的数据时,我们称为”引用指向对象“。如下图所示,我们假设0x99是堆中的数据,数组array在栈中存放着这些数据的地址,通过调用指向堆中各自对应的数据,这就是”引用“。那么有没有可能存在数组不指向对象呢?在上面的代码中,arr2并不存在引用的情况,arr2这个引用不指向任何一个对象,只对数组进行了初始化。在运行了array[0]之后,则数组出现空指针异常。

Starc_的博客 943

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java基础 — 数组

Java数组是存储固定数量同类型元素的数据结构,属于对象类型。声明数组需指定元素类型和方括号,如int[] arr或int arr[],推荐前者规范写法。创建数组必须使用new关键字指定长度,例如int[] arr = new int[5],此时元素会根据数据类型自动初始化默认值(整型0,浮点0.0,布尔false,对象null)。也可直接初始化具体元素:String[] names = {"Alice", "Bob"}。数组通过从0开始的索引访问元素,arr[0]表示首个元素。

2403_89893216的博客 1181

java数组基础

目录 一,数组的基础概念 1.1什么是数组 1.2创建数组 1.3数组的使用 1.4数组的打印 1.5数组的拷贝 1.6引用数据类型的理解 二,数组的练习 2.1冒泡排序法 2.2判断一个数组是否有序 2.3二分查找 三,二维数组 一,数组的基础概念 1.1什么是数组 数组(Array)是有序的元素序列,在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式,这些有序排列的同类数据元素的集合称为数组。 数组可以看做相同数据类型的数据的一个存.

qq_57958234的博客 880

Java之数组基础

一.首先,了解Java引用和传值的区别。 引用和传值的区别我这里是转载的一篇博文,感觉写的很棒很清楚,附原文链接:https://blog.youkuaiyun.com/weixin_36759405/article/details/82764339 传值:传递的是值的副本。方法中对副本的修改不会影响到调用方。 传引用:传递的是引用的副本,共用一个内存,会影响到调用方。因为传引用后指向的是同一个地址,修...

YangTongA的博客 574

Java数组(基础)

​//变量类型 变量名字 = 变量的值//数组类型 数组是相同数据类型的有序集合int[] arr;//1.声明一个数组//2.创建一个数组 这里面可以存放10个int类型的数字把1.2.合在一起也行//3.给数组元素赋值arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;arr[4] = 5;arr[5] = 6;arr[6] = 7;arr[7] = 8;arr[8] = 9;//计算所有数字的和。

Naclarb优快云的博客 928

Java数组基础详解

Java数组基础相关内容

感谢阅读 885

java 数组成员_java数组基础

java中的数组是引用数据类型。//在栈空间声明数组引用对象int[] NAME;int NAME[]; //中括号放哪边都是等价的className[] NAME;//在堆空间划分数组空间并初始化数组对象NAME = new int[3];NAME = new className[3]//赋值,在堆空间中填充每个数组成员NAME[0]=0;NAME[1]=1;...className[0]...

weixin_42310670的博客 933

Java基础(六):数组

数组的概念数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理数组中的概念数组名下标(或索引)元素数组的长度数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型创建数组对象会在内存中开辟一整块连续的空间。占据的空间的大小,取决于数组的长度和数组中元素的类型数组中的元素在内存中是依次紧密排列的,有序的数组,一旦初始化完成,其长度就是确定的。数组的长度一旦确定,就不能修改。

从基础到源码解析的学习记录 2809

[Java基础] 创建一个对象数组

先从一段错误的代码切入,然后在后面提出正确的创建方法。先考虑这段代码:public class Student { private int age; private String name; public void Student() { this.age = 21; this.name = "someone"; } public v

lkxlaz的博客 1万+

java 数组类型_Java基础之数组类型

对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大部分跟基础相关的内容,但是看完之后发现之前学的很多东西都忘记了(太急于求成,动手实践太少),所以想在学习框架之前二刷一遍,把基础知识点在重温一下。顺便写写博客记录我的JAVA学习历程,以及我所理解的知...

weixin_42568801的博客 544

Java基础:数组

Java基础:数组 文章目录Java基础:数组数组的定义数组声明变量数组的创建内存分析三种初始化数组的四个基本特点数组边界数组的使用For-Each循环数组作为函数的参数数组作为函数的返回值二维数组 数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 数组声明变量 需要先声明数组变量,才能在程序中使用 语法 dataType[] arrayRefVar; //

qq_46541289的博客 513
上一篇: Cause:java.lang.reflect.UndeclaredThrowableException,data=null
下一篇: Java 学习路线
Bug_marker
博客等级 码龄5年 15粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值