iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java如何使用clone()代替new
  • 435
分享到

java如何使用clone()代替new

2023-06-27 20:06:57 435人浏览 独家记忆
摘要

这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。使用clone()代替new

这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。

使用clone()代替new

在Java中新建对象实例最常用的方法是使用 new 关键字。jdk对 new 的支持非常好,使用 new  关键字创建轻量级对象时,速度非常快。但是,对于重量级对象,由于对象在构造函数中可能会进行一些复杂且耗时的操作,因此,构造函数的执行时间可能会比较长。导致系统短期内无法获得大量的实例。为了解决这个问题,可以使用Object.clone()  方法。

Object.clone() 方法可以绕过构造函数,快速复制一个对象实例。但是,在默认情况下,clone()方法生成的实例只是原对象的浅拷贝。

这里不得不提Java只有值传递了,关于这点,我的理解是基本数据类型引用的是值,普通对象引用的也是值,不过这个普通对象引用的值其实是一个对象的地址。代码示例:

int i = 0; int j = i; //i的值是0  User user1 = new User();  User user2 = user1; //user1值是new User()的内存地址

如果需要深拷贝,则需要重新实现 clone() 方法。下面看一下ArrayList实现的clone()方法:

public Object clone() {                try {             ArrayList<?> v = (ArrayList<?>) super.clone();             v.elementData = Arrays.copyOf(elementData, size);             v.modCount = 0;                         return v;         } catch (CloneNotSupportedException e) {                         // this shouldn't happen, since we are Cloneable             throw new InternalError(e);         }     }

在ArrayList的clone()方法中,首先使用 super.clone()  方法生成一份浅拷贝对象。然后拷贝一份新的elementData数组让新的ArrayList去引用。使克隆后的ArrayList对象与原对象持有不同的引用,实现了深拷贝。

以上是“java如何使用clone()代替new”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: java如何使用clone()代替new

本文链接: https://www.lsjlt.com/news/313618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java如何使用clone()代替new
    这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。使用clone()代替new...
    99+
    2023-06-27
  • 如何使用java代码代替xml实现SSM
    本篇内容介绍了“如何使用java代码代替xml实现SSM”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot推荐开发者使用Ja...
    99+
    2023-06-21
  • git中clone如何使用
    本篇内容主要讲解“git中clone如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“git中clone如何使用”吧!git中clone是“克隆”、“复制”的意思,clone命令可以在当前路...
    99+
    2023-06-22
  • java如何使用位运算代替乘除法
    这篇文章主要介绍了java如何使用位运算代替乘除法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。位运算代替乘除法在所有的运算中,位运算是最为高效的。因此,可以尝试使用位运算代...
    99+
    2023-06-27
  • clone()函数如何在java项目中使用
    clone()函数如何在java项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。clone就是复制, 在Java语言中, clone方法被对象调用,所以...
    99+
    2023-05-31
    java clone() ava
  • python如何使用in代替or
    这篇文章主要为大家展示了“python如何使用in代替or”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用in代替or”这篇文章吧。in 代替...
    99+
    2024-04-02
  • JavaScript如何使用clone函数
    小编给大家分享一下JavaScript如何使用clone函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!clone:克隆数据,可深度克隆这里列出了原始类型,时间...
    99+
    2023-06-03
  • git clone命令如何使用
    本篇内容介绍了“git clone命令如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!“git clone”能克隆指定分支代码。“gi...
    99+
    2023-07-05
  • Java如何应用矩阵代替循环
    今天小编给大家分享一下Java如何应用矩阵代替循环的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。应用矩阵代替循环 &nbs...
    99+
    2023-06-19
  • 如何使用@AllArgsConstructor和final 代替 @Autowired
    目录@AllArgsConstructor和final 代替 @Autowiredspring代替 @Autowired(lombok相关注解)注解遇到坑@AllArgsConstr...
    99+
    2024-04-02
  • Java中clone方法使用笔记
    目录注解注解的分类:内置注解元注解(修饰注解的注解)自定义注解对象克隆如何实现克隆总结注解 定义: 注解是一种注释机制,它可以注释包、类、方法、变量、参数,在编译器生成类文件时,标注...
    99+
    2023-02-10
    java中clone方法怎么用 Java clone方法 java中clone方法怎么用
  • java的clone方法怎么使用
    在Java中,clone方法是Object类的一个方法,用于创建并返回一个对象的副本。要使用clone方法,必须实现Cloneabl...
    99+
    2023-08-24
    java clone
  • 如何用LiveDataBus替代RxBus
    这篇文章将为大家详细讲解有关如何用LiveDataBus替代RxBus,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页...
    99+
    2023-06-05
  • Java中clone方法怎么使用
    在Java中,clone方法是Object类的一个原生方法,用于创建并返回对象的一个副本。要使用clone方法,需要满足以下两个条件...
    99+
    2023-08-17
    Java clone
  • 使用java代码代替xml实现SSM教程
    目录1.在IDEA中创建一个普通的maven项目2.添加Spring配置3.添加SpringMVC配置5.测试5.1创建HelloController类5.2创建HelloContr...
    99+
    2024-04-02
  • java中new怎么使用
    在Java中,new关键字用于创建一个对象。其语法如下:```ClassName objectName = new ClassNam...
    99+
    2023-09-25
    java
  • Linux下如何安装并使用apt-clone
    这篇文章将为大家详细讲解有关Linux下如何安装并使用apt-clone,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当我们在基于 Ubuntu/Debian 的系统上使用apt-clone ,包安装会变...
    99+
    2023-06-27
  • python如何使用生成器代替列表
    小编给大家分享一下python如何使用生成器代替列表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!尽量使用生成器代替列表##不推...
    99+
    2024-04-02
  • Java中的clone方法怎么使用
    在Java中,`clone()`方法是用来创建对象的一个浅拷贝副本。要使用`clone()`方法,需要遵循以下步骤:1. 首先,在要...
    99+
    2023-09-15
    Java
  • Vue如何使用对象代替if及switch
    这篇文章主要介绍了Vue如何使用对象代替if及switch,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用对象代替 if 及 switch...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作