文档章节

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
海淀
私信 提问
Java的方法传递参数的本质---值传递

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

Zhao-Qian
2012/10/18
0
2
JVM基础:深入学习JVM堆与JVM栈

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

李星
2014/06/04
0
0
java中值传递的理解,C++中传值传递、引用传递和指针方式的理解

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

Nob
2014/09/20
0
1
一句话读懂Threadlocal

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

jeff_han
2015/11/18
0
0
java方法参数和C方法参数的区别

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

墙头草
2011/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
28分钟前
5
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
29分钟前
3
0
my.ini

1

architect刘源源
45分钟前
4
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
53分钟前
5
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
59分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部