安全拷贝 Protecte Copy
来源:互联网 发布:python twisted 下载 编辑:程序博客网 时间:2024/05/16 07:14
在java中 如果两个引用指向同一个变量 其中某一个引用更改了值那么另一个引用使用此值时也会改变 有些情况下 我们不允许外界可以任意修改变量的值 例如 银行单位 具体怎么实现如下例
例 一个学校再招生之后不允许学生私自不来上课 或者退学
public class Clazz {private String[] studs;public Clazz(String[] ss){this.studs=ss;}public void reCall(){for(String s:studs){System.err.println(s);}}}
public static void main(String[] args) throws Exception {String[] sss = {"Jack","Rose","Tom"};Clazz cls = new Clazz(sss);cls.reCall();System.err.println("============");sss[0] = "MarrayA";cls.reCall();}
这时有sss和cls类的studs成员同时指向一个变量 虽然studs不允许随意修改 但是由于两个引用同时指向了一个变量
假设sss修改了变量的值 studs也会随之改变 非常不安全
解决办法
可以修改Clazz的构造方法
public Clazz(String[] ss){this.studs=new String[ss.length];//new 新的String变量for(int i=0;i<ss.length;i++){this.studs[i] = ss[i];}}这时studs指向的变量是新new出来的变量和sss引用所指向的变量不再是同一个了 就不会受其影响
0 0
- 安全拷贝 Protecte Copy
- 拷贝(copy)
- 保护性拷贝(defensive copy)
- copy client 集团拷贝
- copy拷贝构造函数
- javascript copy拷贝对象
- zore copy 零拷贝
- iOS - OC Copy拷贝
- 拷贝 copy()和deepcopy()
- zero-copy零拷贝
- angular.copy() 深拷贝
- angular copy深度拷贝
- 关于copy, mutableCopy, 浅拷贝,深拷贝
- 深拷贝,浅拷贝与copy,strong
- Copy(浅拷贝)、MutableCopy(深拷贝)
- Copy mutableCopy 深拷贝、浅拷贝
- copy(浅拷贝) mutableCopy(深拷贝)
- 浅拷贝 深拷贝 copy mutableCopy
- cocoachina论坛代码库开源项目推荐(1.3)
- 汇编汇总
- Java模式(适配器模式)
- FreeTDS安装 for linux ‘s mssql
- Vs2008 解决方案的目录结构设置和管理
- 安全拷贝 Protecte Copy
- 黑马程序员---java7k面试---11银行
- PV、UV、IP的区别
- C#打开默认浏览器网址
- Java获取当前的系统时间
- 解析一个html网页,读取指定的正文(去新闻广告)
- C数据结构 单链表操作
- 图论基本知识
- 问1:蜂鸣器中三极管的接法及作用