浅拷贝与深拷贝 可变(mutable)参数和不可变(immutable)参数 Python中string、tuple和number是不可变对象,而dict、list等是可变对象;不可变对象在进行重新赋值的时候,实际上是将原始值丢弃,将变量指向一个新值;可变对象的可变性实质上是指更改可变对象中的子对象 ...
分类:
编程语言 时间:
2019-09-23 15:06:09
阅读次数:
98
Optional 主要解决的问题: NullPointerException 文档说明 Option 是一个容器对象,可能包含,也可能不包含一个非null的值 它是一个基于值的对象 被 final 修饰,不可变(允许包含指向可变对象的引用); 有 equals、hashCode、toString 方 ...
分类:
其他好文 时间:
2019-09-14 11:49:08
阅读次数:
107
区别1.可变与不可变String—>privatefinalcharvalue[];final不可变的StringBuilder/Buffer—>charvalue[]可变的String设计成不可变原因->多个指引指向同一个内存空间,如任意指引修改,值将改变,其它引用也将改变。2.是否多线程安全String—>安全(不可变对象)StringBuilder—>不安全St
分类:
编程语言 时间:
2019-09-07 01:36:36
阅读次数:
98
一、列表 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements)。每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现 3.可变长度,异构以及任意嵌套 列表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套 ...
分类:
编程语言 时间:
2019-08-14 14:18:53
阅读次数:
261
Java 创建对象是一个映射的过程,类似于C中的指针,在堆中new 一块空间,再将变量名对应至那个空间。String a = new String("空间");String b = a;a和b指向同一块区域String (“空间”)。String是不能修改静态域final,一旦初始化就不能修改。St ...
分类:
编程语言 时间:
2019-08-10 17:27:08
阅读次数:
88
一、可变对象与不可变对象 三、传递可变对象 四、必须参数 五、关键字参数 六、默认参数 七、单星号元祖形参 八、双星号字典形参 九、星号参数: 注意事项: ...
分类:
编程语言 时间:
2019-08-07 19:08:46
阅读次数:
122
1.集合(set)是一个无序的不重复元素序列 2.可以使用大括号 { } 或者 set() 函数创建集合,空集合用set() 3.用{}就是没有value只有键的字典:dic ={"苹果","西瓜","水蜜桃"} 4.set 存储的元素是没有顺序的,任何可变对象都不能放入set中,必须是不可变对象, ...
分类:
其他好文 时间:
2019-08-05 18:52:25
阅读次数:
95
输出: 结论: 可变对象:list dict set 不可变对象:tuple string int float bool ...
分类:
编程语言 时间:
2019-08-02 11:23:29
阅读次数:
124
在说深拷贝浅拷贝之前,先说一下什么是可变对象,什么是不可变对象 对象的数据是允许被修改的就是可变(mutable)对象,反之就是不可变(immutable)对象 例如像列表,字典就是可变对象,像字符串,数字,元组就是不可变对象 下面再来说拷贝,浅拷贝只拷贝最外层对象,深拷贝还会递归拷贝内层对象 当最 ...
分类:
其他好文 时间:
2019-07-28 13:53:18
阅读次数:
81