java小基础(1)关于参数传递
来源:互联网 发布:java从网页抓取数据 编辑:程序博客网 时间:2024/06/10 09:23
题目:
Integer integer=new Integer(1);
A(integer);
System.out.println(integer);
String string="nu";
B(string);
System.out.println(string);
StringBuilder sBuilder=new StringBuilder();
C(sBuilder);
System.out.println(sBuilder);
int i=0;
E(i);
System.out.println(i);
private static void E(int i){
i=99;
}
private static void A(Integer i){
i=new Integer(2);
}
private static void B(String s){
s="wori" ;
}
private static void C(StringBuilder sb){
sb.append("ADAD");
}
求输出。
先说结果:除了一个有改变,其他不变
其实这个很简单的~基础过关秒杀;
说说重点:明白参数传值的原理。然后一切明了
首先:参数传值都是值传递。所以传进来的都是地址(针对引用类型)或者值(针对值类型),然后这个参数就被赋值了。例如:B(string);private static void B(String s)。说的就是有个String类型的变量s指向String类型的变量string所在的地址空间
接下来:看函数对这个参数进行什么操作,就用函数B为例子。
private static void B(String s){s="wori" ;}这个String类型的变量s重新指向一个值为“wori”的地址空间(为什么会重新指向,这个不用说了吧),那么就是跟变量string一点关系都没有,变量string一直指在值为“nu”的地址空间。所以输出是nu
但是为什么函数C会改变呢?因为StringBuilder类型的变量sb它指向的地址没有变,跟StringBuilder类型的变量sBuilder一样。所以对变量sb进行的操作依然对变量sBuilder有影响。
解释完毕。总结:不知道为什么老是记不住的。于是写下来。求大家拍砖
- java小基础(1)关于参数传递
- java基础 传递参数
- Java基础-参数传递
- JAVA关于参数传递
- 关于java参数传递
- JNI基础(四)小程序,java调C,并且传递参数
- Java基础:参数传递(一)
- Java基础:参数传递(二)
- Java基础:参数传递(三)
- JAVA参数传递小认识
- 14.Java 基础 - 参数传递
- Java基础-参数传递问题
- JAVA基础--参数传递问题
- 关于java中的参数传递
- 关于java参数的传递
- 关于java中的参数传递
- 关于JAVA 参数传递理解
- 关于字符串参数传递的小技巧
- Linux文件系统的隐藏权限(chattr和lsattr)
- shell 入门(1) 变量定义
- 在Windows中使用Git
- onmouseover...........
- 【贪心】 TopCoder SRM556 division2 LeftRightDigitsGame
- java小基础(1)关于参数传递
- 2005年金山笔试题之一
- Agile Web Application Development with Yii 1.1 and PHP5 读后总结(3)关于书中的那个TrackStar
- Android之TabHost与ListView结合应用
- 二分法查找的JAVA程序
- ctags的安装使用
- mjpgstream
- java网页数据采集(中篇-数据存储)
- Java Memory Model