什么时候是引用参数被改,什么时候又是值参数被改?比如这个:import java.io.*;
public class PassTest{
float ptValue;
public static void main(String args[]) {
int val;
PassTest pt=new PassTest();
val=11;
System.out.println("Original Int Value is:"+val);
pt.changeInt(val);
System.out.println("Int Value after Change is:" +val);
pt.ptValue=101f;
System.out.println("Original ptValue is:"+pt.ptValue);
pt.changeObjValue(pt);
System.out.println("ptValue after Change is:"+pt.ptValue);
}
public void changeInt(int value){
value=55;
}
public void changeObjValue(PassTest ref){
ref.ptValue=99f;
}
}
请大家帮我解释下 咋有的值被改了有的没改呢,问题有点白痴嘿嘿
public class PassTest{
float ptValue;
public static void main(String args[]) {
int val;
PassTest pt=new PassTest();
val=11;
System.out.println("Original Int Value is:"+val);
pt.changeInt(val);
System.out.println("Int Value after Change is:" +val);
pt.ptValue=101f;
System.out.println("Original ptValue is:"+pt.ptValue);
pt.changeObjValue(pt);
System.out.println("ptValue after Change is:"+pt.ptValue);
}
public void changeInt(int value){
value=55;
}
public void changeObjValue(PassTest ref){
ref.ptValue=99f;
}
}
请大家帮我解释下 咋有的值被改了有的没改呢,问题有点白痴嘿嘿
解决方案 »
- 客户端如何调用jmx来停止Tomcat上运行的项目
- 哪位可以给我讲一下以后工作数据库方面工资高还是javaweb?我现在想选择一个方向,谢谢 大家了!
- return的用法
- 如何才能看懂java的函数和类库
- 一个JTabbedPane的奇怪问题
- 如何监听jtree的点击事件
- 银行socket连接的奇怪问题.非常着急.定高分相送!!!!
- 菜:System.out,in,err 是field?什么是field?
- 为什么会出现 package java.awt does not exit?
- 急急急急急急急
- 100分!各位大哥帮忙啊!老师让我们做一个“计算器”?怎么做了?谢谢!
- 下载网页发现HttpURLConnection返回的InputStream不支持mark,reset的情况下,如何实现这个inputstream的多次使用
而其他情况就传的是引用,这时候修改了形参的值,就会影响到实参所引用的对象了。
boolean, char, byte, short, int, long, float, double.
我们都知疲乏,对于一基础数据来说,数据空间里存放的是数据类型,以及数据的实际值,比如a = 5,在这个空间里面的值就是5,
而引用数据则不是这样的,引用数据是把数据的类型和对数据的引用放在里面,所以你做值传递时,你只是把这个值传进去了,第一种就是把5传进去了,而第二种就是把引用传进去了,让另一个参数也指向原先的引用,所以你对后面的参数的修改其实就是对传以前所引用的值的修改所以两个值都会发生改变,够详细了啥,
拿分来,
记到一点,JAVA只有值传递,只不过所谓的值有差别而意,。。
Java里面伪装地太多了。理解起来都麻烦。