编程中的引用类型和值类型,给无数的程序员带来了认识和理解上的困难。即使理解了之后,用起来也可能忽视两者的差别,给软件带来不必要的Bug。
引用是有很大好处的:较小的存储空间、较快的查找效率、共用同一个对象等。常犯的错误是共用同一个对象造成的千奇百怪的结果。
从服务器端传一个对象到客户端,再传一个对该对象的修改操作,该对象传到客户端多个并行的模块。
通过引用的方式传到各个模块,修改操作只需执行一次;通过克隆后传到各个模块,修改操作需要执行多次。可有人就用引用的方式传递,执行多次修改操作,每次都修改都是创建新的对象覆盖掉旧的对象。由于多个模块对引用对的修改是相同的,所以结果看起来一致,但实际上执行了n-1次无用的操作,占用了计算机的内存和CPU。