首页 > 编程语言 >你能说说Java深拷贝和浅拷贝区别吗

你能说说Java深拷贝和浅拷贝区别吗

时间:2023-03-19 21:12:47浏览次数:34  
标签:Java 指向 区别 对象 复制 引用 拷贝

引用拷贝

创建一个指向对象的引用变量的拷贝。

对象拷贝

创建对象本身的一个副本。

注:深拷贝和浅拷贝都是对象拷贝

浅拷贝

被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。

浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。

使用clone()方法默认是浅拷贝,调用clone()方法前提是该类实现Cloneable接口

深拷贝

深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。

简而言之,深拷贝把要复制的对象所引用的对象都复制了一遍。

一般实现通过对象序列化实现深拷贝

 

标签:Java,指向,区别,对象,复制,引用,拷贝
From: https://www.cnblogs.com/xfeiyun/p/17233975.html

相关文章

  • php线程安全(TS)和非线程(NTS)安全区别 本文来源:码农网 本文链接:https://www.coderct
    以下线程安全简称TS非线程安全简称NTS首先unix/linux不强调使用线程模型,强调使用多进程模型,windows下面才强调使用多线程。创建进程的速度比创建线程慢几倍,并且相互通信......
  • Java实现简易酒店管理系统
    实现订房退房查房退出四个基本功能酒店有三楼,每楼5个房间,房间号按照101,102,...201,202·有双人间,单人间,地铺间能实现订房退房查房等基本功能在控制台中实现,操作便捷一......
  • 相对路径和绝对路径的区别
    一个超级简单的解释:相对路径相对路径是一种简化版的路径,以当前文件,活动窗口目录为根目录,进行向上或者向下c绝对路径就是真实的路径,是计算机中完整路径,必须准确,否......
  • Java NIO Socket学习
    前言这周学习尼恩编著的《Netty、Redis、ZooKeeper高并发实战》,这本书写的很不错,通过十几个例子带领大家去体会高并发如何实现,这周我看了最基础的JavaNOI部分,读书的时......
  • Java中的恍然大悟
    Java中的恍然大悟数组与集合最大的区别数组里既可以装8钟基本数据类型,还可以装包装类型。集合里只能装包装类型集合工具类给你封装了排序方法java.util.Collections......
  • 程序的内存分配C,堆和栈的区别
    前言:C语言二进制映像文件由,堆,栈,数据段(只读数据段,未初始化数据段BSS,已初始化数据段),代码段组成1.栈区:由编译器进行管理,自动分配和释放,存放的是函数调用时的各种参数,局部变量......
  • java文本获取
     使用正则方式提取文本中间内容获取文本中间(单次)参数1:文本参数2:文本前参数3:文本后返回一个StringpublicstaticStringgetSubString(Stringtext,Stringleft......
  • 【JavaScript】50_终篇_编程进阶与BOM编程概览(3k字+)
    12、节点的复制使用cloneNode()方法对节点进行复制时,它会复制节点的所有特点包括各种属性这个方法默认只会复制当前节点,而不会复制节点的子节点可以传递一个true作为参数,......
  • Java多线程开发CompletableFuture的应用
    ​做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,......
  • java的数据类型
    2023-03-19java是强类型语言要求变量的使用严格符合规定,所有的变量需要先定义、后才能使用java的数据类型分为两大类1、基本类型 2、引用类型引用数据类型包括类......