【Java基础知识 4】秒懂数组拷贝,感知新境界

AI摘要

本文介绍了Java中数组拷贝的方法,包括System.arraycopy和Arrays.copyOf的使用,详细讲解了基本类型和对象数组的浅拷贝。同时讨论了数组起始索引为0的原因以及clone()方法在数组拷贝中的应用。

目录

一、前言

二、为什么数组的起始索引是0而不是1?

三、起别名

四、System.arraycopy与Arrays.copyOf(浅拷贝)

1、基本类型数组复制

2、Object数组复制

3、多维数组复制

4、对象数组复制

五、clone()

1、基本数组类型clone()

2、对象数组clone()


一、前言

最近遇到了数组拷贝的问题,之前从来都没想过,数组居然还用拷贝?

小编在今天之前,用的都是循环赋值的方式进行数组拷贝,速度将对较慢,代码看起来很low,不推荐使用。

今天就这个机会,总结一波,分享给大家。

二、为什么数组的起始索引是0而不是1?

这个习惯来源于机器语言,那时要计算一个数组元素的地址需要将数组的起始地址加上该元素的索引。将起始索引设为1要么浪费数组的第一个元素的空间,要么会花费额外的时间来将索引减1。

三、起别名

数组名表示的是整个数组,如果我们将一个数组变量赋予给另一个变量,那么两个变量都将会指向同一个数组。

public class Test01 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        arr[0] = 0;
        arr[1] = 1;
        arr[2] = 2;
        int[] arr2 = arr;
        
java数组拷贝的方法 该方法会返回一个新的数组对象,且改变新数组中的元素值,不会影响原来的数组。因为第一种数组拷贝方式,我们已经在数组扩容的案例中给大家演示了,这里就不再重复展示相关代码了。小千在给大家讲解数组扩容时,涉及到了数组中数据元素的拷贝复制。System.arraycopy()是Java提供的一个本地静态方法,用于将数据元素从源数组复制到目标数组。1. 通过循环语句,将原数组中的各个元素拷贝到新数组中(即数组扩容案例中使用的方法);: 表示新数组的长度。如果新数组的长度超过源数组的长度,会采用数组元素类型的默认值。 阅读详情

相关推荐

高效的数组拷贝方法和Java中的感知新境界

数组拷贝是将一个数组的元素复制到另一个数组中,这在许多算法和数据结构中都是必不可少的操作。方法接受五个参数:源数组、源数组的起始位置、目标数组、目标数组的起始位置以及要复制的元素个数。通过调用这个方法,可以直接将源数组中的元素复制到目标数组中,无需遍历和逐个复制元素。方法进行数组拷贝的好处是它在内存中执行块级复制,因此对于大型数组来说,性能更佳。总结起来,数组拷贝是Java编程中常见的操作,对于大型数组来说,我们应该选择高效的拷贝方法以提高性能。幸运的是,Java提供了一种更高效的数组拷贝方法,即使用。

CyberWizarDD的博客 126

Java数组篇[7]:数组拷贝

在Java程序设计中,经常需要复制数组或创建数组的克隆。这在修改数组内容时保留原始数据不变,或者在多线程环境中避免数据竞争时非常有用。本文将探讨Java中数组拷贝和克隆的不同方法,包括手动拷贝、使用方法、以及数组的克隆。数组拷贝是创建数组内容的一个副本,而克隆则是创建数组对象的一个完整副本。在Java中,数组是引用类型,所以简单的赋值操作只会复制引用,而不是数组对象本身。clone():数组的clone()方法返回数组的一个副本。数组的拷贝和克隆是Java编程中常见的操作。

喵手的博客 1570

CANoe之UDS诊断自动化测试(四):创建诊断自定义Panel发送诊断(替代Session Control窗口)

通过自定义的Panel界面实现诊断发送的功能,并且还可以根据自己的测试需求添加需要的诊断信息,使用非常灵活。

weixin_69677286的博客 1903

Dbeaver连接TDengine时序数据库

也没啥好总结的,就一句话:Dbeaver真香,而且还是我大JAVA实现的,赞。希望能帮到大家,uping。

zwrlj527的专栏 1900

海康视觉平台VisionMaster使用学习笔记(1)

双击图像源设置图像源的属性,像素格式分为Mono8和RDB24分别对应导入的图像是彩色还是黑白。打开相机驱动软件MVS,对连接的相机进行属性上的配置,先对相机的IP进行对应的设置。将自动触发的使能打开,保存配置好的相机属性,默认保存到用户集1中。点击MVS软件中的触发按钮,查看相机是否进行正常的触发拍照。打开VM软件添加一个图像源,选择图像源选项拖出图像源。回到VM软件中将选择相机选项选择到配置好参数的相机。取图方式也可以调整为相机取图,将图像源改为相机。双击相机进行连接后对相机的属性进行配置。

A567852的博客 1万+

基于RK3588调试WiFi模块AIC8800

本文介绍了在RK3588平台上移植AIC8800 WiFi模块驱动的过程。开发环境基于Linux 6.1内核和Buildroot文件系统。驱动移植步骤包括:将驱动包放入SDK指定目录、修改Makefile、编译内核、放置固件文件、手动加载驱动模块等。文章还分析了两种常见异常情况:无法识别模块(检查USB信号线路和供电)和偶发断连(检查硬件连接和调整PHY寄存器)。成功加载后可通过ifconfig看到wlan0节点。

qq_45147279的博客 667

基于全局和局部接受性因果特征的广义学习模型,用于在线增量机械故障诊断

本文提出了一种**因果广义学习模型(CBLM)**,用于在线增量机械故障诊断。该模型结合了**全局因果特征**(时域、频域、故障特征频率均值)和**多尺度局部因果特征**(通过扩张卷积提取),构建了一个具有**增量学习能力**的广泛学习系统(BLS)。CBLM支持**结构增量学习**(增加增强节点)和**样本增量学习**(动态更新权重),无需重新训练整个模型,显著提高了计算效率和诊断精度。在两个滚动轴承数据集上的实验表明,CBLM在诊断准确性和训练时间上均优于传统深度学习模型,适用于在线实时故障诊断。

huanghm88的专栏 387

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1843

【WRF-Chem教程-附录 C】闪电-NOx 参数化方案详解

闪电-NOx 参数化方案详解

WW、forever的博客 973

Vue+OpenLayers7入门到实战目录,OpenLayers7中文文档,OpenLayers7中文手册,OpenLayers7中文教程,OpenLayers7文档pdf

本篇作为《Vue+OpenLayers7入门到实战》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers7.x版本结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers7依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速上手Vue+OpenLayers7开发。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 3970

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 【Java基础知识 7】toString()、String.valueOf、(String)强转
下一篇: sqlsessionfactory和sqlsession
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论 59
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值