• java值传递和引用传递笔记


    近期在项目上遇到过一个问题:

      先说明下情况:现有一张表单A,A表单有1条分录A1,我需要复制表单A生成表单B,B需要2条分录B1,B2(两条数据不一致)。这两条分录都是复制A1后在A1的基础上修改的。

      然后我在处理的时候就发现:我的B1,B2是一模一样的!调试发现我的B1=A1,修改B1是没问题的,但是在B2=A1,修改B2后B1也变了,变成和B2一样了。

    后来才发现是引用传递的问题,这边把这个问题及相关的知识点记录下,做下笔记(有理解不对的地方还望指正)。

    java数据类型分基础数据类型和引用数据类型:

      基础数据类型主要包括:byte,short,int,double,float,long,char

      常见的引用数据类型:类,数组,接口等

    基础数据类型和引用数据类型在使用“=”号赋值时是不一样的:

      基础数据类型是值传递,即把数据的值复制一份给新的对象,在对新的对象修改时不影响原来的对象

      引用数据类型是引用传递,传递的是原来对象的地址,即新的对象和原来的对象指向的是同一个地址,所有在上面的情况中,我修改B2的时候,B1也会变。

    基础数据类型相对引用数据类型,所占的内存不多,在传递时候可以使用值传递;而引用数据类型在有的时候数据会很大(如类对象有很大属性),这个时候如果还是用值传递就很消耗资源。

    如果像我上面这种情况,引用数据类型确实是需要值传递的时候,可以使用clone方法。clone的详细知识可自行了解,这边不做过多描述。

  • 相关阅读:
    eclipse adt 项目依赖,使用git上的项目
    Fragment用app包还是v4包解析
    nohttp的使用
    安卓学习笔记2
    HashMap和HashSet的区别
    Fragment 和 FragmentActivity的使用
    Android Studio 使用教程
    打开eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
    java 四种内部类和内部接口
    安卓学习笔记1
  • 原文地址:https://www.cnblogs.com/loveliqun/p/13998568.html
Copyright © 2020-2023  润新知