String 深浅拷贝的测试---有待继续测试

public class TestString {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = new String();
        str = "12345";

        String str_1 = str;

        String str_2 = null;
        str_2 = str;

        String str_3 = new String();
        str_3 = str;

        System.out.println("str:"+str);
        System.out.println("str_1:"+str_1);
        System.out.println("str_2:"+str_2);
        System.out.println("str_3:"+str_3);

        str = "2345678";

        System.out.println("str:"+str);
        System.out.println("str_1:"+str_1);
        System.out.println("str_2:"+str_2);
        System.out.println("str_3:"+str_3);
    }

}

总结:上述几种方式 String 都是深拷贝

时间: 2024-08-29 03:16:24

String 深浅拷贝的测试---有待继续测试的相关文章

关于Java中的HashMap的深浅拷贝的测试与几点思考

0.前言 工作忙起来后,许久不看算法,竟然DFA敏感词算法都要看好一阵才能理解...真是和三阶魔方还原手法一样,田园将芜,非常可惜啊. 在DFA算法中,第一步是需要理解它的数据结构,在此基础上,涉及到一些Hashmap的赋值.这里的赋值非常有趣,三个Hashmap翻来覆去赋值,就解决了敏感词表的初始化. 里面都是属于下文中的Hashmap"浅拷贝",那么究竟Java中的Hashmap有哪些拷贝方法呢? 1.测试代码 HashMap hm_source = new HashMap();

string类的深浅拷贝问题

字符串是我们在编写程序的时候经常用的到的.C++库已经帮我们实现了一个功能更加强大的字符串类string,我们要去了解它是怎么实现的. 只要是涉及到 string类的地方多少都会涉及到深浅拷贝的问题.在C++中,在用一个对象初始化另一个对象时,只复制了成员,并没有复制资源,使两个对象同时指向了同一资源的复制方式称为浅复制.       深拷贝是将指向内容复制到给当前对象新分配的缓冲区中的一种复制方式.     下面就是自己实现的深拷贝string类: #include<iostream> #i

C++模板实现动态顺序表(更深层次的深浅拷贝)与基于顺序表的简单栈的实现

前面介绍的模板有关知识大部分都是用顺序表来举例的,现在我们就专门用模板来实现顺序表,其中的很多操作都和之前没有多大区别,只是有几个比较重要的知识点需要做专门的详解. 1 #pragma once 2 #include<iostream> 3 #include<string> 4 #include<stdlib.h> 5 using namespace std; 6 7 template <class T> 8 class Vector 9 { 10 publ

C++/C#中堆栈、对象内存模型、深浅拷贝、Array.Clone方法

转载自:http://blog.csdn.net/jarvischu/article/details/6425534 目录 1.      C++/C#中对象内存模型..................................................................................................... 1 1.1.       栈内存与堆内存.............................................

关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

最近对深浅拷贝(复制)做了一些研究,在此将自己的理解写下来,希望对大家有所帮助.本人尚处在摸索阶段,希望各位予以指正. 本文包括如下方向的探索: 1.指针与对象: 2.深/浅拷贝(复制): 3.可变/不可变对象: 4.Objective-C中的copy与mutableCopy方法. 一.指针与对象 在初始学习编程的时候,对于绝大多数面向对象编程的语言,这都是个绕不开的重点与难点.非常惭愧的是对它的认识我一直是不够的,并且感觉这项技术有许多的内容可以挖掘.说这是面向对象编程的核心思想也不为过.很多

python学习笔记4:基础(集合,collection系列,深浅拷贝)

转载至:http://www.cnblogs.com/liu-yao/p/5146505.html 一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)

3.python基础补充(集合,collection系列,深浅拷贝)

一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作

集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)

小数据池 #int ==比较数值 is 比较内存地址 id 测试内存地址 #str 不能含有特俗字符 单个元素*数字,不能超过21 i1 = 'a'*20 i = 'a'*20 id一样 i1 = 'a'*21 i = 'a'*21 id不一样 编码 ascii   英文的数字,字母,特殊字符 字节 8位表示一个字节 字符 内容的最小组成单位 abc  a一个字符 中国 中  一个字符 unicode :万国码 期初 两个字节,表示一个字符2**16不够用 升级 四个字节,表示一个字符2**32

Python基础之小数据池及深浅拷贝

一.小数据池 == (等于) == 官方:判断等号两边的内容是否相同 ? 白话:判断两个人长得是不是一样 is ? 官方:判断两边的内容是不是一个 ? 白话:判断这两个人是不是一个人 a = 10000 b = 10000 print(a == b) is 是通过内存地址进行判断 print(id(a),id(b)) 输出结果 ,内存地址一致 代码块:一个py文件,一个函数,一个模块,一个类,交互模式(终端)下的每一行 先执行代码块,然后小数据池! 代码块机制内容:Python在执行同一个代码块