Java传参
来源:互联网 发布:在淘宝网上怎么买车 编辑:程序博客网 时间:2024/05/16 09:19
Java传参
Java中传递参数,要么传递的是基本数据类型的值的副本,要么传递的是引用数据类型的引用(String类型属于引用数据类型,但由于它是final类,不可变类型,故在传参过程中,其值不会改变)
参数类型为基本数据类型
示例代码
public class Test { public static void main(String[] args) { int a = 10; boolean b = true; float f = 2.3f; char c = 'c'; changeInt(a); changeBoolean(b); changeFloat(f); changeChar(c); System.out.println(a);//10 System.out.println(b);//true System.out.println(f);//2.3 System.out.println(c);//c } public static void changeChar(char c) { c = 'r'; } public static void changeFloat(float f) { f = 5.4f; } public static void changeBoolean(boolean b) { b = !b; } public static void changeInt(int a) { a = 100; }}
根据以上代码的输出结果可以看出:当传参类型为基本数据类型时,传递的是值的副本,并不会改变值本身。
参数类型为引用数据类型
示例代码
public class Test { public static void main(String[] args) { char[] ch = {'l', 'o', 'v', 'e'}; StringBuilder sb = new StringBuilder("abc"); System.out.println(ch);//love System.out.println(sb);//abc changeCh(ch); changeSb(sb); System.out.println(ch);//dove System.out.println(sb);//abcefg } private static void changeSb(StringBuilder sb) { sb.append("efg"); } private static void changeCh(char[] ch) { ch[0] = 'd'; }}
根据以上代码的输出结果可以看出,当参数的数据类型为引用数据类型时,传递的是引用的副本。我们应当了解引用数据类型的创建方式:User u1 = new User();
这样就创建了一个User类的对象,u1是变量名,它存放在栈内存上,u1的值为其指向的user对象所在堆内存上的地址,它只是一个对象的引用,而不是对象的本身。在进行传递时,传递的也只是这个引用的副本,当这个副本的值改变时,原引用的值并不会受到影响。
0 0
- java传参
- Java 传参
- java 传参
- Java传参
- JAVA传参
- Java web 传参
- java url 传参 编码
- 详细解释Java传参
- 理解Java传参
- 深入分析java传参
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- 装饰模式和代理模式区别(详细)
- fstream引用作为函数返回值问题
- Python Web 2 —— 类和函数的声明和调用
- 关于在linux下面和WIN7下面新建一个TinkPHP3.1.3和3.2.3项目--探讨
- [iOS]苹果开发证书 一个证书多人开发 注意项
- Java传参
- iOS,NSPredicate筛选NsmutableArray
- performSelector 那点事
- 图片切换马赛克动画效果
- ReentrantLock可重入锁
- 使用Xmanager 远程连接Centos6.5
- Android Fragment应用实战(音乐播放器界面)
- 2016年06月13日学习日记c语言字符串
- 算术编码