【Java】数组的深浅拷贝问题(二维数组举例)(136)
深拷贝和浅拷贝:
对于数组来说,深拷贝就是相当于拷贝了数组的对象(基本数据类型),也就是数组当中的内容。而浅拷贝就是拷贝的是数组的地址(引用类型),浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化。
数组的拷贝:数组拷贝有深拷贝和浅拷贝
深拷贝:一般使用Arrays.copyOf() 方法,,深拷贝修改新的数组不改变原数组。
浅拷贝:一般使用arr.clone() 方法,浅拷贝修改新数组和原数组。
深浅拷贝二维数组举例:
package com.day02;import java.util.Arrays;public class day02 {public static void main(String[] args) {String[][] arr = {{"10","20"},{"30","40","50"},{"60","70","80","90"}};for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println("拷贝前原数组:"+arr[i][j]);}}System.out.println("--------------------------------------");//方式一:深拷贝二维数组(Arrays.copyOf):深拷贝修改新数组不改变原数组;String[][] arr2 = new String[arr.length][];for (int i = 0; i < arr2.length; i++) {arr2[i] = Arrays.copyOf(arr[i], arr[i].length);}for (int i = 0; i < arr2.length; i++) {for (int j = 0; j < arr2[i].length; j++) {arr2[i][j] = arr2[i][j] + "%";}}for (int i = 0; i < arr2.length; i++) {for (int j = 0; j < arr2[i].length; j++) {System.out.println("深拷贝后新数组:"+arr2[i][j]);}}System.out.println("---");for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println("深拷贝后原数组:"+arr[i][j]);}}System.out.println("--------------------------------------");//方式二:浅拷贝二维数组(clone):浅拷贝修改新数组和原数组;String[][] arr3 = arr.clone();for (int i = 0; i < arr3.length; i++) {for (int j = 0; j < arr3[i].length; j++) {arr3[i][j] = arr3[i][j] + "#";}}for (int i = 0; i < arr3.length; i++) {for (int j = 0; j < arr3[i].length; j++) {System.out.println("浅拷贝后新数组:"+arr3[i][j]);}}System.out.println("---");for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println("浅拷贝后原数组:"+arr[i][j]);}}}
}
测试输出:
拷贝前原数组:10
拷贝前原数组:20
拷贝前原数组:30
拷贝前原数组:40
拷贝前原数组:50
拷贝前原数组:60
拷贝前原数组:70
拷贝前原数组:80
拷贝前原数组:90
--------------------------------------
深拷贝后新数组:10%
深拷贝后新数组:20%
深拷贝后新数组:30%
深拷贝后新数组:40%
深拷贝后新数组:50%
深拷贝后新数组:60%
深拷贝后新数组:70%
深拷贝后新数组:80%
深拷贝后新数组:90%
---
深拷贝后原数组:10
深拷贝后原数组:20
深拷贝后原数组:30
深拷贝后原数组:40
深拷贝后原数组:50
深拷贝后原数组:60
深拷贝后原数组:70
深拷贝后原数组:80
深拷贝后原数组:90
--------------------------------------
浅拷贝后新数组:10#
浅拷贝后新数组:20#
浅拷贝后新数组:30#
浅拷贝后新数组:40#
浅拷贝后新数组:50#
浅拷贝后新数组:60#
浅拷贝后新数组:70#
浅拷贝后新数组:80#
浅拷贝后新数组:90#
---
浅拷贝后原数组:10#
浅拷贝后原数组:20#
浅拷贝后原数组:30#
浅拷贝后原数组:40#
浅拷贝后原数组:50#
浅拷贝后原数组:60#
浅拷贝后原数组:70#
浅拷贝后原数组:80#
浅拷贝后原数组:90#
相关文章:
【Java】数组的深浅拷贝问题(二维数组举例)(136)
深拷贝和浅拷贝: 对于数组来说,深拷贝就是相当于拷贝了数组的对象(基本数据类型),也就是数组当中的内容。而浅拷贝就是拷贝的是数组的地址(引用类型),浅拷贝只是复制了对象的引用地…...
【轮趣-科大讯飞】M260C 环形六麦测试 2 - ROS1功能测试与唤醒、语音识别程序解析
所有内容请看: 博客学习目录_Howe_xixi的博客-CSDN博客https://blog.csdn.net/weixin_44362628/article/details/126020573?spm1001.2014.3001.5502原文在飞书,请联系我获取阅读链接,我太懒了...
油猴(篡改猴)学习记录
第一个Hello World 注意点:默认只匹配了http网站,如果需要https网站,需要自己添加match https://*/*代码如下 这样子访问任意网站就可以输出Hello World // UserScript // name 第一个脚本 // namespace http://tampermonkey.net/ // version 0.1 // descri…...
LeetCode 面试题 05.08. 绘制直线
文章目录 一、题目二、Java 题解 一、题目 已知一个由像素点组成的单色屏幕,每行均有 w 个像素点,所有像素点初始为 0,左上角位置为 (0,0)。 现将每行的像素点按照「每 32 个像素点」为一组存放在一个 int 中,再依次存入长度为 le…...
机器人中的数值优化|【六】线性共轭梯度法,牛顿共轭梯度法
机器人中的数值优化|【六】线性共轭梯度法,牛顿共轭梯度法 往期回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化…...
FastestDet---原理介绍
1.测试指标 2.算法定位 FastestDet是设计用来接替yolo-fastest系列算法,相比于业界已有的轻量级目标检测算法如yolov5n, yolox-nano, nanoDet, pp-yolo-tiny, FastestDet和这些算法根本不是一个量级,FastestDet无论在速度还是参数量上,都是要小好几个数量级的,但是精度自然…...
ORACLE 在内存管理机制上的演变和进化
截止目前,计算机内存仍然被认为是我们可以获得的最快速度的物理存储设备。 将频繁访问的数据尽可能地置于内存中,已成为当前各种软件和应用程序提高数据访问性能,减少访问延迟的最为有效的途径。 然而,内存作为关键的计算资源&am…...
Linux ❀ 进程出现process information unavailable时的消除方法
[rootmaster ~]# jps 74963 -- process information unavailable 78678 Jps [rootmaster ~]# cd /tmp/hsperfdata_redhat/ # redhat为启动该java进程的用户ps -ef | grep $pid查找 [rootmaster hsperfdata_redhat]# ll total 32 -rw------- 1 redhat redhat 32768 Sep 27 15:…...
ps智能填充功能平替:alpaca的安装和使用
为了解决ps beta 智能填充无法使用的问题,需要用alpaca来平替,下面是安装教程: 安装方法: 1、下载插件。 alpaca插件汉化-夸克网盘https://pan.quark.cn/s/1168b447a44e#/list/share 2、 根据使用的PS版本,选择对应文件…...
【前端打怪升级日志之ES6篇】玩转函数
学习资料 阮一峰老师《ECMAScript 6 入门》— 函数的扩展 总结应用 1. 函数参数默认值与对象解构赋值默认值的结合使用 // 场景:方法调用时传参希望只传第二个参数 // 方案1: function foo({x1,y2}){console.log(x,y); } foo({}) //1 2 foo({x:2}) /…...
网址静态码手机制作教程,附图文详解!
网址的静态码是如何生成的呢?静态码是二维码的一种常用类型,一般常见的静态码类型主要是文本或者网址,那么在电脑制作静态码的方法相信很多小伙伴都知道怎么做,那么手机上制作的方法,大家感兴趣吗?下面来给…...
服务器性能测试监控平台export+prometheus(普罗米修斯)+grafana搭建
1. export 数据采集工具 简介: export是prometheus是的数据采集组件的总称,它可以将采集到的数据转为prometheus支持的格式 node_export: 用来监控服务器硬件资源的采集器,端口号为9100mysql_export: 用来监控mysql数据库资源的采集器&…...
【24种设计模式】责任链模式
责任链模式是一种行为设计模式,它允许你将请求沿着处理链进行传递,直到有一个处理者能够处理该请求为止。这种模式将请求的发送者和接收者解耦,使多个对象都有机会处理该请求。 责任链模式的结构 责任链模式由以下几个角色组成:…...
C#异步委托的三种实现 BeginInvoke / EndInvoke / IsCompleted
本文将介绍C#异步委托的三种实现方式,并给出相关示例代码及解析。 注意事项 用委托开启线程的前提是:创建项目时必须选择“.NET Framework",如果选择的是”.Net Core“,在调用BeginInvoke时,系统会报错”Operati…...
在HTTP请求中安全传输base64编码的字符串
前言 base64是一种常见的的编码格式,它可以把二进制数据编码成一个由大小写英文字母(a-zA-Z)、阿拉伯数字(0-9),以及三个特殊字符、/、组成的字符串。 问题 但是在URL传输中,、/、这三个特殊…...
05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别
在前面的一些章节中,我们已经讲如何准备打标签的素材、如何制作标签、如何训练以及得到我们最终需要的用于YOLO目标识别的模型。那么现在我们就要正式开始,利用我们训练得到的best.pt,这个模型文件来对图片视频进行识别。 1、基本思路 公安交管场景中,我们经常会遇到需要…...
LeetCode算法题---第3天
注:大佬解答来自LeetCode官方题解 121.买卖股票的最佳时期 1.题目 2.个人解答 function maxProfit(prices) {//更新最低价格和最大利润let minPrice prices[0];let maxProfit 0;for (let i 1; i < prices.length; i) {// 如果当前价格比最低价格还低,更新最…...
欧洲FBA专线海运与陆运的差别
随着全球电商市场的快速发展,越来越多的卖家选择将产品销售到欧洲市场。然而,面对欧洲境内的物流问题,卖家们往往会面临一个重要的选择:选择欧洲FBA专线时是选择海运还是陆运?这两种运输方式在时效、成本和服务质量上都有所不同&…...
UDS诊断
一、UDS诊断简介 汽车诊断技术是指在不拆卸车辆的情况下,通过读取车辆在运行过程中所记录的数据或故障码来查明故障原因,并确定故障部位的汽车应用技术。通过诊断,可以快速检测到汽车故障来提高汽车安全性和维修效率。 USD协议诊断主要采用“…...
计算材料学学习记录1
计算材料学学习记录1 平台:Bohrium 老师:单斌教授 文章目录 1.发展史背景计算材料学 2.计算方法分类3.计算材料学的应用 1.发展史 背景 材料的研究方法发展: 一切靠实验理论开始起作用理论撑起半边天 “……解决全部化学的规律的数学方法…...
PHP8中的构造方法和析构方法-PHP8知识详解
今日分享的内容是php8中的构造方法和析构方法,我们把构造方法和析构方法这两个方法分开来讲: 1、构造方法 构造方法存在于每个声明的类中,主要作用是执行一些初始化任务。如果类中没有直接声明构造方法,那么类会默认地生成一个没…...
【GPU编程】Visual Studio创建基于GPU编程的项目
vs创建基于GPU编程的项目 🍊前言🐸方法一-CUDA Runtime生成😝debug设置 🍅方法二-空项目配置🍉🍉🍉代码验证 🍊前言 cuda以及cudnn的安装以及系统环境变量的配置默认已经做完。如果…...
MySQL面试题-索引的基本原理及相关面试题
先了解一下MySQL的结构 下面我们重点讲一下存储引擎 MySQL的数据库和存储数据的目录是一一对应的,这些数据库的文件就保存在磁盘中对应的目录里 下面我们来看一下对应的具体数据文件 .frm是表的结构,不管什么样的索引都会有 .ibd代表我们现在使用的存…...
MySQL学习笔记19
MySQL日志文件:MySQL中我们需要了解哪些日志? 常见日志文件: 我们需要掌握错误日志、二进制日志、中继日志、慢查询日志。 错误日志: 作用:存放数据库的启动、停止和运行时的错误信息。 场景:用于数据库的…...
为什么u盘在mac上显示不出来
插入U盘是个看似简单的操作,但有时候在Mac电脑上却出现了无法显示U盘的情况。这样的问题是非常让人头疼的,特别是当你急需使用U盘中的文件时。那么,究竟为什么U盘在Mac上会显示不出来呢?今天就让我们一起来深入了解一下这个问题&a…...
【golang】调度系列之sysmon
调度系列 调度系列之goroutine 调度系列之m 调度系列之p 在golang的调度体系中,除了GMP本身,还有另外一个比较重要的角色sysmon。实际上,除了GMP和sysmon,runtime中还有一个全局的调度器对象。但该对象只是维护一些全局的数据&…...
货物寄到英国选择什么物流比较划算?
随着全球化的发展,越来越多的企业开始将产品销售到海外市场,其中英国作为一个重要的贸易伙伴,吸引了大量的中国企业的关注。然而,如何将货物安全、快速地运送到英国,成为了众多企业面临的一个问题。那么,货…...
vite + react 基本项目搭建
新建项目步骤略过 1、下载scss 无需任何配置就可以直接使用scss了 pnpm install sass使用scss配置全局颜色变量 新建/src/styles/variable.scss并在 $primary: #76aef9在vite.cinfig.js里配置 export default defineConfig({css: {preprocessorOptions: {scss: {javascrip…...
一个方法解决三道区间问题
1288. 删除被覆盖区间 56. 合并区间 986. 区间列表的交集 # 1288. 删除被覆盖区间 class Solution:def removeCoveredIntervals(self, intervals: List[List[int]]) -> int:# 按照起点升序排列,起点相同时,按照终点降序排列intervals.sort(key lamb…...
sub0 里斯本精彩回顾:探索波卡区块的创新空间
sub0 Europe 2023 已在葡萄牙里斯本圆满结束!sub0 大会是波卡生态开发者大会,由波卡协议的主要开发方 Parity Technologies 举办的开发者大会,汇聚了全球 Substrate 开发者和学习者,旨在为 Polkadot 和 Kusama 生态的开发者、贡献…...
dz论坛做视频网站教程/目前搜索引擎排名
亲爱的忍忍:为了给忍忍们带来更好的游戏体验,《忍者必须死3》预计于2021年3月25日2:00-10:00进行停服维护(根据具体情况提前或推迟开放)。请各位忍忍相互转告,并合理安排游戏时间,以免造成损失。【维护时间】2021年3月25日2:00-10:00【更新内…...
用于制作网页的工具软件/专业关键词优化平台
问题简介 我写爬虫,用到了asyncio相关的事件循环,新建了一个线程去run_forever(),在docker中运行。后来程序有异常,主线程挂了,但是竟然不报错。查了很久,才找出来。 如果你新建一个线程去运行一般的死循环…...
乡镇政府可以做网站认/刷排名seo
一、条件断点循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可&…...
龙岩做网站开发找哪家/班级优化大师
1. 路由器基本配置请注意:JUNIPER路由器命令不是即时生效的,而是需要通过commit命令来使的命令生效,如果是双的路由引擎,则需要通过commit synchronize来使得命令生效并让配置在两个路由引擎(RE)里同步配置…...
医疗网站建设/平谷头条新闻
咳咳,上课。 起立。 老师再见。??? 你们就这么希望老师走吗。。。。 好了,同学们,今天这节课给大家介绍一下设计模式的一种——模板方法设计模式。 那么什么是模板方法设计模式呢? 当功能内部…...
建设小游戏网站空间类型选择/关键词搜索排名公司
写在最前 文章标题谈到了面向协议编程(下文简称 POP),是因为前几天阅读了一篇讲 Swift 中 POP 的文章。本文会以此为出发点,聊聊相关的概念,比如接口、mixin、组合模式、多继承等,同时也会借助各种语言中的例子来阐述我的思想。 那…...