首先,我的结论是,如果是对对象进行 操作的话,传的是地址,如果是对基本数据类型进行操作的话,传的是值!

下面,我再用一个小的实例来测试我的结论:

class Person {

int age;

public void setAge(int age){

this.age = age;

}

public int getAge(){

return age;

}

}

public class Test{

public static void main(String[] args){

Person p = new Person();

p.setAge(1);

changeObj(p);

System.out.println(p.getAge());

int a = 1;

change(a);

System.out.println(a);

}

static void changeObj(Person p){

p.setAge(12);

}

static void change(int a){

a = 123;

}

}

如果,我上面的结论是猜测是正确的话,输出的结果应该是

age=12

a=1

下面截图表示一下:

因此,说明了我的结论是正确的。可是突然想到,如果是基本数据类型的包装类的话会是什么结果呢?下面我们进行一个小的测试来寻找一下结论

public class Test{

public static void main(String[] args){

Integer b = new Integer(90);

change(b);

System.out.println(b);

}

static void change(int a){

a = 123;

}

}

如果是值传递的话,那么结果应该是90,如果是地址传递的话,那么结果应该是123,下面贴图说明问题:

上面说明了传递的是值,而不是地址,但是有一点,程序里面,change()方法这的参数是int,而不是Integer,这会不会影响结果呢?那么我们就再写一个例子测试,看一下结果:

public class Test{

public static void main(String[] args){

Integer b = new Integer(90);

change(b);

System.out.println(b);

}

static void change(Integer a){

a = 123;

}

}

下面来看结果,还是贴图查看:

可以看出,结果依然没有变化,由此我们可以得到结论:基本数据类型,包括其包装类,在进行参数传递的时候传的是值。

综上所述,我们可以得到结论:在java中进行参数传递的时候,基本数据类型,包括其封装类,进行的是值传递,而对于对象,传递的是引用。

以上是本人的一个测试与结论,如果大家发现有什么不正确的地方,欢迎批评指正。

分享到:

2012-09-09 10:45

浏览 921

评论

java地址传递_关于java中是地址传递还是值传递的测试相关推荐

  1. java中的参数传递(只有值传递没有引用传递)

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递).所以在java方法中改变参数的值是不会改变原变量的值的,但为什么改变引用变量的属性值却可以呢?请看下面的解答. java中的数据类 ...

  2. qt槽函数如何传递多个参数_【Qt】信号和槽对值传递参数和引用传递参数的总结...

    在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象:(测试时,打印传递前后的地址不同) 引用传递不会复制对象:(测试时,打印传递前后的地址相同) 不在同一 ...

  3. JS中函数传参按照值传递

    ES语法中所有函数的参数都是按值传递的. 探讨函数参数按值传递问题: //1.参数被赋值为原始值 function add(num){num += 10;return num; } let count ...

  4. java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...

    场景: 你们都知道基本的数据类型,int,float等等这种是按值传递的.可是对于String,对象,Integer是怎样传递呢?java 原理知识: 若是参数类型是原始类型,那么传过来的就是这个参数 ...

  5. java引用传递_理解Java中的引用传递和值传递

    关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题, 有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论. 1.基本类型和 ...

  6. java值传递和引用传递_辨析Java方法参数中的值传递和引用传递

    小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...

  7. java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递...

    场景: 大家都知道基本的数据类型,int,float等等这种是按值传递的.但是对于String,对象,Integer是怎样传递呢? 原理知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副 ...

  8. java 怎么改变值传递_学习Java值传递方法

    学习Java值传递方法-武汉北大青鸟 值传递是在一个函数中,调用另外一个函数,其中含有参数传递的情况.往往值传递就是把数据传递到另外一个函数中进行进一步处理,以更清楚地显示函数的表达意思.在函数调用的 ...

  9. java final 类_在Java中,final修饰的类有什么特点

    展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...

最新文章

  1. 在Outlook中用VBA导出HTML格式邮件
  2. 战神背光键盘如何关系_?复工了?换个键盘先!0-2000元键盘推荐
  3. 深度学习核心技术精讲100篇(四十八)-TB级的日志监控系统很难?带你使用ELK轻松搭建日志监控系统
  4. 【攻防世界011】Windows_Reverse1
  5. Django两天搭建个人博客
  6. 基于Nginx的媒体服务器技术
  7. .NET中的异步编程 - 动机和单元测试
  8. DB2中sql语句占位符问题
  9. python 字典查询比列表快_为什么python字典要比列表快以及哈希查找解释。
  10. Spring IOC中bean标签和管理对象细节
  11. PowerPoint(一)PowerPoint 2010 堪称“完美”?
  12. mysql的limit经典用法及优化
  13. 从gitlab迁移到极狐gitlab的方法 #JIHULAB101
  14. html未响应是什么原因,ie浏览器未响应如何解决
  15. win10家庭中文版自动更新解决办法
  16. 19_09_13 关于c语言中位域的理解
  17. 百度竞价推广怎么做?需要注意哪些?
  18. FFA-Net: Feature Fusion Attention Network for Single Image Dehazing
  19. Lucene学习总结
  20. Pandas中DataFrame的属性、方法、常用操作以及使用示例

热门文章

  1. 如何用U盘之家U盘启动盘制作工具实现U盘装系统
  2. Linux下安装-配置-mysql-5.7.13
  3. 一般java,【面试题】java一般
  4. python基础代码技巧_Python 代码优化技巧(二)
  5. DOM 节点类型及属性
  6. 数据转换之 Number
  7. java有几种变量_java有多少种变量?java类变量怎么使用?
  8. navicat怎么查看数据库的url_连接数据库url怎么写
  9. cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)
  10. 问题反馈信息处理平台开发过程