在看《Java核心技术(原书第9版中文版)》的时候,看到113页的一个警告,“注意不要编写返回引用可变对象的访问器方法”。以前没看到过,原来Date对象是可变对象。就可变对象这个概念,查了一下网,我认为可变对象,就是在类中可以不通过域更改器方法就能改变值的对象。 1 package com.csst...
分类:
其他好文 时间:
2015-06-24 16:06:01
阅读次数:
106
什么是不可变对象?
众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。
区分对象和对象的引用
对于Java初学...
分类:
编程语言 时间:
2015-06-18 19:55:50
阅读次数:
184
Python的传递究竟是值传递还是引用传递?在回答这个问题之前,需要知道python中的变量只是一个对象的引用。赋值操作不会改变对象指向的内容,而是把变量从一个对象的引用,改为指向另一个对象的引用。对一个变量重新复制后,复制前后的变量id会发生改变。而在变量直接进行操作情况,分可变对象(list d...
分类:
编程语言 时间:
2015-06-15 14:27:41
阅读次数:
142
String: ?? ? ? ? ?是对象不是原始类型. ?? ? ? ? ?为不可变对象,一旦被创建,就不能修改它的值. ? ? ? ? ? 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. ? ...
分类:
其他好文 时间:
2015-06-13 14:25:22
阅读次数:
91
转载 : http://blog.csdn.net/u010962810/article/details/18887841通过copy方法可以创建可变对象或不可变对象的不可变副本,对于不可变副本,其对象的值不可以改变。通过mutableCopy方法可以创建可变对象或不可变对象的可变副本,对于可变副本...
分类:
其他好文 时间:
2015-06-10 20:53:50
阅读次数:
123
java学习有一段时间了,但学习的东西都是框架等东西,java基础知识有点遗忘,所以重温一下java基础知识,写写文章里面有错的希望大家指正共同进步~~
一、String
大家经常会说使用“+”号连接String 字符串比StringBuffer慢,String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,那接下来我们详细分析一下为什么使用“+”号速度会慢,为什么String 对象是不可变对象:
1、final修饰类、引用变量、基本变量...
分类:
其他好文 时间:
2015-06-06 12:04:31
阅读次数:
100
对象不可变定义
不可变对象是指对象的状态在被初始化以后,在整个对象的生命周期内,不可改变。
如何不可变
通常情况下,在java中通过以下步骤实现不可变
对于属性不提供设值方法
所有的属性定义为private final
类声明为final不允许继承
Return deep cloned objects with copied content for all mutable fields in...
分类:
其他好文 时间:
2015-06-05 19:49:34
阅读次数:
116
1、不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)可变(mutable):字典型(dictionary)、列表型(list)>>>person=['name',['saving',100]]>>>ly=person[:]>>> z...
分类:
编程语言 时间:
2015-05-31 19:56:41
阅读次数:
140
1.String字符串1)String类型介绍String类采用final修饰,String对象为不可变对象,一旦在内存中创建,内容不能发生变化,若要对字符串内容改变,那么就会创建新对象。String对象创建,有静态和动态之分。Stringstr1="dadsadad";Stringstr2=newString("dasdasdadad");2)String..
分类:
编程语言 时间:
2015-05-30 18:24:46
阅读次数:
170
一个对象使用copy或mutableCopy方法可以创建对象的副本1.copy需要实现NSCopying协议创建出来的是不可变副本,如NSString, NSArray, NSDictionary(1)不可变对象调用copy (NSSring除外)不会产生新的对象,而是返回对象本身,相当于retai...
分类:
其他好文 时间:
2015-05-19 20:29:24
阅读次数:
144