文档章节

java 值传递,和引用传递的问题

h
 horacerain
发布于 2016/11/23 10:15
字数 236
阅读 2
收藏 0

1,如果是基本数据类型和String类型,显然是值传递, 作为参数的引用被修改只是一个副本, 不影响它原来的值。 2,引用类型 传递时,可以修改 引用所指向对象的属性,但不能直接对这个引用赋新值。

public class translation {
	
	public static void main(String[] args) {
		User user1 = new User("张三",12);
		User user2 = new User("李四",20);
		User user3 = new User("王五",50);
		trans(user1,user2);
		objTrans(user3);
		System.out.println(user1.toString()+"\n"+user2.toString()+"\n"+user3.toString());
	}
	public static void objTrans(User user){   //修改对象的属性  ,可以引用传递
		user.name="老王";
	}
	public static void trans(User u1,User u2){   //
		User temp = new User();
		temp = u1;
		u1=u2;
		u2=temp;
	}
}
class User{
	String name;
	int age;
	public User() {
		// TODO Auto-generated constructor stub
	}
	public User(String name,int age) {
		this.name=name;
		this.age=age;
	}
	@Override
	public String toString() {
		return "User [age=" + age + ", name=" + name + "]";
	}
	
}
        结果:
        User [age=12, name=张三]
        User [age=20, name=李四]
        User [age=50, name=老王]

© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 18
码字总数 2064
作品 0
海淀
JVM基础:深入学习JVM堆与JVM栈

以前堆是干啥栈是干啥都知道,就是没连在一起想想。感觉讲的不错的一篇儿~~JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在...

李星
2014/06/04
0
0
一句话读懂Threadlocal

threadlocal是把ThreadLocal实例作为key,要保持的对象作为值,设置到当前线程的ThreadLocalMap 中。因此数据是保存在当前线程中的。 ThreadLocalMap实例是作为java.lang.Thread的成员变量存...

jeff_han
2015/11/18
0
0
java中值传递的理解,C++中传值传递、引用传递和指针方式的理解

通过对参考文献中两篇文章的理解消化,自己运行测试分析总结如下: java的值传递理解: 代码1: public class Test { /** * @param args */ public static void main(String[] args) { Stri...

Nob
2014/09/20
0
1
Java的方法传递参数的本质---值传递

JAVA中只有值传递,没有引用传递 任何数据(不管是基本类型,还是引用类型)传到一个方法里时,都是拷贝了一份,所以无法在一个方法里修改他们的值,当然,如果传递的是对象的话,也就是引用...

Zhao-Qian
2012/10/18
0
2
java方法参数和C方法参数的区别

方法调用(call by) 是一个标准的计算机科学术语。方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常...

墙头草
2011/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

谷歌 Fuchsia 上手体验,将取代Android/win10

在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重,在平板以及大屏幕设备上表现糟糕,...

linux-tao
12分钟前
1
0
List、Array与ArrayList

数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1"; 但是数组...

shimmerkaiye
15分钟前
0
0
Linux 的Lnmp环境下为mysql添加环境变量

一.问题 在Linux 安装完Lnmp 环境后 , 连接Mysql 告诉没有这条命令 mysql -uroot -p 命令失效 因为是源码安装的,所以会出现这样的的原因 。集成环境是不会出现的。 其实很简单,只需要给m...

15834278076
17分钟前
2
0
apolloxlua include函数

include函数不是单独使用的函数, 他并不是标准库的一部分, 你可以使用include函数将某个后缀为 .aop的文档包含到你的文档流中。 因为include是单独处理流, 所以不会在主处理流程中有所表示...

钟元OSS
21分钟前
0
0
【转载分享】做一名较真的工程师

近些年与我共事过的同事,一定知道我至今仍有一个较真的性格。我会:指出同事所写代码的不当命名问题(并帮助改进);指出同事所写文档中的逻辑混乱问题(并辅以修订);指出同事所写PPT中乱...

HellerZhang
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部