Java入门(六):数组

【过检测】2026调试级去虚拟化虚拟机成品 EternalBlaze调试级虚拟机是由恒烈开发的定制化VMware环境,适用于逆向工程、病毒分析等专业场景。该虚拟机基于Windows 10 1909专业版,预装Python/JDK等开发环境和逆向工具包,支持快照回溯功能。特色包括:一键去虚拟化方案、双机调试支持、驱动开发环境等。适用场景涵盖CTF竞赛、软件调试、病毒行为分析等,但不支持DX12游戏和视频盗录。使用前需按步骤关闭安全中心、安装特定VMware版本并执行去虚拟化操作。虚拟机提供基础版和逆向调试增强版两种配置,均预装必要工具链。(149字) 阅读详情

数组是一种数据结构,用于存储同一类型值的集合,也可以看做是数据类型一致的一组数据。

一、语法和声明数组

1、语法:数据类型[ ] array = new 数据类型[长度];

注意:

使用长度创建数组的时候,每个元素都有默认值。

对于int、byt、short、long,其默认值为0;

对于double、float,其默认值为0.0;

对于boolean值,其默认值为false;

对于char,其默认值为编码是0的字符;

对于引用类型(其中包括String),其默认值为null。

2、如果事先已经知道数组的元素,可以直接使用元素初始化数组,但是不需要写数组长度,元素的个数就是数组长度。其次,例如int[ ] a 和int a[ ]两种声明都可用,但是不建议使用后面的写法。

3、如果数据元素不多,并且知道每个元素的值,可以直接使用元素进行初始化。如果元素过多,使用长度创建数组。如果元素没有初始值,使用长度初始化。

   /**
     * 数组的声明
     */
    public static void testMethod() {
        // 第一种写法
        int[] array = new int[3];
        // int类型的默认值是0
        System.out.println(array[0]); // 0
        String[] strArray = new String[3];
        // 于引用类型(其中包括String),其默认值为null
        System.out.println(strArray[0]); // null
        // 数组声明的第二种写法
        int[] array2 = {1,2,3};
        System.out.println(array2[0]); // 1
        // 下面这种写法也可以,但是不建议使用,将[]紧跟在数据类型后面,方面理解和区分
        int array3[] = {4,5,6};
        System.out.println(array3[0]); // 4
    }

二、访问数组元素

1、使用 数组名[下标序号] 来访问数组元素。

2、数组的 .length 属性,可以获取数组的长度,即数组元素个数。

3、数组下标范围是从0开始,一直到 length-1 。

4、如果超范围访问,会出现运行异常,数组下标越界。下标小于0或者大于等于length,都是超范围。

    /**
     * 数组长度获取,元素访问
     */
    public static void arrayLength() {
        // 获取数组的长度,使用 .length 属性
        int[] array = {1,2,3,4};
        System.out.println(array.length); // 4
        // 数组的长度一经定义,就不能改变,因为其length属性是由final关键字修饰的,不可修改
        //array.length = 5; // The final field array.length cannot be assigned
        // 访问数组的元素,使用 [元素所在下标] , 下标从0开始
        System.out.println(array[0]); // 打印数组第一个元素1
        // 下标越界后,会出现 java.lang.ArrayIndexOutOfBoundsException 的异常
        // System.out.println(array[4]); 
    } 

三、数组遍历

利用for循环和for each循环,可以很轻松实现遍历数组元素。

   /**
     * 数组遍历
     */
    public static void seeArrayElements() {
        int[] array = {1,2,3,4,5};
        // for循环遍历打印
        for (int i=0; i<array.length; i++) {
            System.out.println(array[i]);
        }
        // for each遍历打印,括号中的第一个参数是元素的数据类型
        // 第二个参数是获取值的局部变量名称(可以随意命名),第三个参数是数组名
        for (int element : array) {
            System.out.println(element);
        }
    }

四、数组拷贝和扩容

1、数组拷贝。

使用java.util.Arrays类中的copyOf( )方法来实现,而Arrays.copyOf( )方法的实现原理是借助System类的arraycopy方法,感兴趣的可以去尝试自己造下轮子,然后和官方的arraycopy方法进行对比。

2、数组扩容。

数组在初始化完成后,其长度是不能修改的,那么想要将一个数组长度变大或者变小,同样可以借助Arrays.copyOf( )方法。无论数组是扩容还是变小,原数组是不会改变的,只是将对象换做了一个新数组。

   /**
     * 复制数组,数组扩容,无论数组是扩容还是变小,原数组是不会改变的
     */
    public static void makeArrayCopy() {
        // 复制数组,这里用到的是java.util.Arrays类中的copyOf()方法
        int[] array = {2,4,6};
        int[] newArray = Arrays.copyOf(array, array.length);
        // 判断两个数组是否相等,用到的是Arrays类中的equals()方法
        System.out.println(Arrays.equals(array, newArray)); // true
        // 数组扩容
        int[] addLength = Arrays.copyOf(array, array.length + 1);
        System.out.println(addLength.length); // 4
        for (int e : addLength) {
            System.out.println(e); // 依次打印2 4 6 0
        }
        // 数组变小
        int[] addLength2 = Arrays.copyOf(array, array.length - 1);
        System.out.println(addLength2.length); // 2
        for (int e : addLength2) {
            System.out.println(e); // 依次打印2 4
        }
    }

五、数组排序

对数组的相邻元素进行比较,按照升序或降序规则进行换位,最后得到排序后的数组。

   /**
     * 对数组进行升序排序
     */
    public static void sortArrayAsc() {
        // 声明并初始化一个数组
        int[] array = {2, 10, 3, 78, 1, 29, 91, 5};
        System.out.println(Arrays.toString(array));
        for (int i=0; i<array.length-1; i++) {
            for (int j=0; j<array.length-i-1; j++) {
                if (array[j] > array[j+1]) {
                    int k = array[j];
                    array[j] = array[j+1];
                    array[j+1] = k;
                }
            }
        }
        System.out.println(Arrays.toString(array));
    }
    
    /**
     * 对数组进行降序排序
     */
    public static void sortArrayDesc() {
        // 声明并初始化一个数组
        int[] array = {2, 10, 3, 78, 1, 29, 91, 5};
        // 将数组变为字符串输出
        System.out.println(Arrays.toString(array));
        for (int i=0; i<array.length-1; i++) {
            for (int j=0; j<array.length-i-1; j++) {
                if (array[j] < array[j+1]) {
                    int k = array[j];
                    array[j] = array[j+1];
                    array[j+1] = k;
                }
            }
        }
        System.out.println(Arrays.toString(array));
    }
    
    /**
     * 利用Arrays.sort()方法进行排序
     */
    public static void utilSort() {
        // 声明并初始化一个数组
        int[] array = {2, 10, 3, 78, 1, 29, 91, 5};
        System.out.println(Arrays.toString(array));
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }

六、二维数组

二维数组,从本质上来讲,还是一维数组,对二维数组的操作其实还是对一维数组的操作。

1、声明。类型[ ][ ] 变量名 = new 类型[ 长度 ][ 长度 ] ;

2、length属性。其长度是第一个[ ]中的长度值。

3、下标也是从0开始,也遵循下标不能越界的规则。

4、其他操作也和一维数组的操作类似。

   public static void stateTwoDimArray() {
        // 声明一个二维数组
       int[][] array = new int[2][3];
        // 对其元素赋值
        array[0][0] = 1;
        array[0][1] = 2;
        array[0][2] = 3;
        System.out.println(Arrays.toString(array[0])); // [1, 2, 3]
        System.out.println(Arrays.toString(array[1])); // [0, 0, 0]
        System.out.println(array.length); // 2
        // 声明并初始化一个二维数组
        int[][] array2 = {{1,2},{3,4}};
        System.out.println(Arrays.toString(array2[0])); // [1, 2]
        System.out.println(Arrays.toString(array2[1])); // [3, 4]
        System.out.println(array2.length); //2
    }

上面的代码都上传至了GitHub,地址是https://github.com/XiaoChuan94/javalearning/tree/master/javalearningday05,有需要的可以去下载观看,如果喜欢就给个star吧!如有不足,欢迎下方留言交流。


文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

公众号后台输入关键字“Java学习电子书”,即可获得12本Java学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程 1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总 阅读详情

相关推荐

GT-Power柴油机瞬态性能仿真与优化——基于EGR-VGT耦合控制策略【附案例】

本文探讨了GT-Power在柴油机瞬态性能仿真与优化中的应用,重点分析了EGR-VGT耦合控制策略的实际效果。通过案例研究展示了如何通过仿真优化提升柴油机的动力响应速度和排放性能,为车辆工程领域的工程师提供了实用的技术参考。

green的博客 764

面试题 数组长度可否赋值

public class ArrayLength { public static void main(String[] args) { String a[] = new String[10]; a.length = 15; System.out.println(a.length); } }   数组长度不能赋值,在编译器中会造成编译错误:The fina...

简约不简单 633

C# WPF多页面间的数据共享(经典)

实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。

sf315418的博客 639

14 数组

数组 数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素每个数组元素可以通过一个下标来访问它们 数组声明创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法 Java语言使用new操作符来创建数组,语法如下: dataType[] array

qq_53537301的博客 1150

(一)ANSYS WORKBENCH实践入门

ANSYS-workbench 有限元分析应用基础教程 (张晔)学习笔记

qq_51767372的博客 1万+

seurat v5更新及样本整合方法

1 Seurat 对象和 Assay 类发生了变化:支持更多种类的检测和数据类型,包括磁盘上的矩阵。引入了分层结构来存储数据,例如原始计数、标准化数据和 z 得分/方差稳定数据。可以使用 $ 访问器或 LayerData 函数来访问数据。现有的 Seurat v4 函数和工作流程仍可在 v5 中使用。2 整合工作流程发生了变化:简化了整合流程,提高了速度和内存效率。整合结果与 v4 工作流程略有不同,但用户仍可在 v5 中运行 v4 整合工作流程。

hx2024的博客 2686

Java学习 6.数组的定义与使用

数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在Java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到: 1. 数组中存放的元素其类型相同。2. 数组的空间是连在一起的。3. 每个空间有自己的编号,其实位置的编号为0,即数组的下标。

m0_52468661的博客 1454

人工智能_大模型095_Web版003_deepseek R1本地安装_私有化部署_支持RAG_调用HTTPAPI做自己的AI应用_安装RagFlow以及使用_---人工智能工作笔记0240

这里的一定要注意,是资源不够用了,可以点击ragflow-server左边的小绿点,查看 结果。注意去把内存改成10G把至少,我这里改成了10G,因为电脑一共就16G,再试试吧.可以看日志,就显示的是没有连接上mysql,结果我一看,mysql,根本没启动.然后下面选择general就可以了,然后点击确定,然后再去点击。手动去启动,然后再去试试,注意,内存这里给8G太小了还是.调成8G了,然后硬盘大了大了一些换成50G了,然后。点击系统模型设置可以看到,选择聊天模型就可以了,

添柴程序猿的专栏 449

java中的数组

java中关于数组的初级操作

cj_Hydra's Blog 1191

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 867

wflow模型hbv

毛管水的处理 😄 快速流的处理 K4是为了产生基流的 找到了令人激动的kenematic模块 😄

m0_46268055的博客 781

javas数组

1.数组反转 2.获取最大数 3.排序 数组分为一维数组,二维数组和多维数组 一维数组 数组的初始化 数组的初始化分为动态初始化和静态初始化 动态初始化 声明并开辟数组 数据类型[] 数组名=new 数据类型[数组长度] 数组长度:代表你可以向数组存储多少个数据 数组的下标是从零开始到数组长度-1,当超出数组的索引长度则会产生java.lang.ArrayIndexOutOfBoundsException异常信息 数组名.length:获取数组长度

m0_56173583的博客 421

深度解析:LPDDR5 采样 Mask 背后的秘密 —— 从 Jitter 到 BER 全面剖析

在 LPDDR5 中,CK/DQS 信号相当于“指挥棒”,而数据(DQ)要在时钟节拍里被准确采样。Crosspoint Mask 区域横轴:时间 (Time)纵轴:电压 (Vref)👉 只要采样点落在这个区域内,数据就是正确的。否则就会出错。BERPBERPMask 就像高速公路的收费站口,如果车(采样点🚗)在车道内,顺利通过;一旦跑偏,就撞护栏。LPDDR5 的速率极高,UI 非常短,Mask 区域成为核心指标各种 Jitter、Noise 会不断压缩 Mask。

weixin_43199439的博客 354

Java 基础入门(六):数组的基本使用

数组是Java中一种用于存储多个相同类型数据的数据结构。它可以让我们方便地管理和操作一组数据。

菜狗小测试 210

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java基础(六):数组全面解析

🔥 深度解析Java数组内存机制+高效操作秘籍,从底层原理到Arrays工具类实战,彻底掌握数组设计与性能优化!

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java基础语法(六)——数组的定义与使用

文章目录Java基础语法(六)——数组的定义与使用一、 数组基本用法1.什么是数组2. 创建数组3.定义数组的方式4. 数组的使用(1)获取长度(2)访问数组中的元素(3)下标越界(4)遍历数组1.遍历方式(一)-----for循环2.遍历方式(二)---->for-each3.遍历方式(三)——使用操作数组的工具类进行数组的打印 本次内容介绍大纲 Java基础语法(六)——数组的定义与使用 一、 数组基本用法 1.什么是数组 数组本质上就是让我们能 “批量” 创建相同类型的变量. 例如: 如果需

rain67的博客 5691

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥

数组:可以看成是相同类型元素的一个集合,在内存中是一段连续的空间。

此人很懒,什么都留下了...快进来看看吧 2454

(六)Java数组详解

数组作为Java中最基础的数据结构,具有简单、高效的特性。通过本文的学习,我们系统地了解了:数组的基本概念和特点数组的声明、初始化和基本操作多维数组的使用方法数组与工具类的配合使用数组与方法的交互方式数组的高级特性和性能优化常见数组算法和问题解决方案Java新版本中的数组增强功能掌握数组不仅有助于理解更复杂的数据结构,也是编写高效Java程序的基础。在实际开发中,应根据具体需求合理选择数组或集合类,并注意避免数组常见的问题和性能陷阱。

MeyrlNotFound的博客 1405

Java基础(六):数组

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

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

Java数组操作入门:掌握数组的基本技巧

本文将带领读者深入了解Java中数组的基本操作。通过学习本文内容,读者将能够熟练地使用Java中的数组,为后续的Java编程打下坚实的基础。在Java中,数组是一种引用类型的数据结构,它可以存储多个相同类型的数据。Java数组的定义和初始化是使用new关键字完成的。// 定义并初始化一个整型数组// 定义并初始化一个二维字符数组通过本文的学习,读者应该已经掌握了Java中数组的基本操作方法,包括数组的定义、初始化、访问和操作。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 5035

【java从入门到精通】第七篇·数组

Java是很多人除了C语言外接触的第一门计算机语言,而且在遥远的未来,它有很大的概率将陪伴你一路走下去。猫猫整理这一份文档,希望能帮助每一位想要入门Java的战友们,未来就在我们脚下,让我们一起努力吧✊全面知识梳理特别知识梳理(全面知识梳理一律加上【第*篇】字样,是软件工程所有知识的全面梳理)(特别知识梳理针对【面向对象】部分的知识展开,这是Java的核心部分)《Java从入门到精通(第7版)》是2023年清华大学出版社出版的图书,作者是明日科技。

十二月的猫 1308

Java入门篇 六 数组

Java基础 六 数组Eclipse Eclipse 为提高开发效率,编译环境换为Eclipse。 注:Eclipse有版本对应的JDK需求(可自行百度)。 Eclipse国内镜像下载地址:http://mirrors.ustc.edu.cn/eclipse/technology/epp/downloads/release/ 使用教程可自行百度(推荐:尚硅谷-宋红康讲师)。 ...

Cc 258

java入门基础(数组和方法)

数组概念:相同数据类型元素的集合,是一种引用数据类型,我们将类型相同,逻辑相关的数据,存到数组中数组的定义数据类型[] 数组名 = new 数据类型[大小];//声明整型数组,包含5个元素//声明浮点型数组,包含3个元素//声明布尔型数组,包含4个元素声明了整型数组arr,其中包含5个元素,每个元素都是int类型,默认值为0该格式会在声明的同时分配一块内存空间供该数组使用整数数据类型所占空间为4个字节,arr保存的元素有5个,所以该数组总共占用4*5=20个字节2)数组元素的默认值规则。

impact99的博客 1474

Java入门(六)——数组

二分法查找(在已排列好的数组中,将数据对半分,直到找到想要找到的值为中间值)- 选择排序算法(先找出最小的,比较前一位的值,从小到大依次排列)- 在数组上随机删除或者增加元素,效率低,会涉及后面元素统一向前或者向后位移的操作。- 数组一旦建立,长度不可变,类型固定统一,元素内存地址连续,占用空间大小一样。- 扩容:将内容拷贝到另一个新建的大数组中,对象的拷贝实际是对象地址的拷贝。- 数组对象是堆内存当中,若是存储“java对象”,实际是对象的引用。- 自带length属性,获取数组中的长度。

qq_61562251的博客 428

Java入门之数组

概念:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理 简称: 多个数据的组合 Java中的容器:数组、集合框架 : 在内存中对多个数据的存储。

2401_87607742的博客 1678

Java ==> 数组(入门)

在Java语言当中,数组是一种基本的数据结构,它存储了固定大小的同类型元素的集合。数组中的每个数据项都被称为元素,并且可以通过索引(一个非负整数)来访问。数组的索引从0开始,这意味着第一个元素位于索引0处,第二个元素位于索引1处,依此类推。提示:以下是本篇文章正文内容,下面案例可供参考希望这篇文章能够为您带来一些有价值的信息和启示。在未来的日子里,我们将继续探索更多关于博客技术的精彩内容,敬请期待。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习。

2401_84365662的博客 1290
上一篇: Java入门(五):控制流程
下一篇: virtualbox+ievms:还你一个原装IE8
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值