Java 中值传递与引用传递的区别
2018-03-11 22:18
435 查看
由于Java取消了指针的概念,因此开发人员在编程中往往忽略了对象和引用的区别,如实例1
package xupt.edu.java.com; public class TestRef { public Obj aObj = new Obj(); private int aInt = 0; public Obj getAObj() { return aObj; } public int getAInt() { return aInt; } public void changeObj(Obj inObj) { inObj.setStr("changed value"); } public void changeInt(int inInt) { inInt = 1; } public static void main(String[] args) { TestRef oRef = new TestRef(); System.out.println("*********引用类型*********"); System.out.println("调用changeObj()前:" + oRef.getAObj()); oRef.changeObj(oRef.getAObj()); System.out.println("调用changeObj()后:" + oRef.getAObj()); System.out.println("*********基本数据类型*********"); System.out.println("调用changeInt()前:" + oRef.getAInt()); oRef.changeInt(oRef.getAInt()); System.out.println("调用changeInt()后:" + oRef.getAInt()); } } class Obj { public void setStr(String str) { this.str = str; } private String str = "default value"; public String toString() { return str; } }上面两个看似类似的方法却有着不同的运行结果,主要原因是Java在处理基本数据类型(例如int ,char ,double 等)时,都是采用按值传递(传递的是输入参数的复制)的方式执行,除此之外的其他类型都是按引用传递(传递的是对象的一个引用)扽方式执行。
相关文章推荐
- 黑马程序员_java中值传递和引用传递区别
- Java中值传递和引用传递的区别
- java中值传递和引用传递的区别
- java中值传递和引用传递出现区别的原因
- java中值传递和引用传递的区别
- java 传值时可分为值传递与引用传递,那么他们有和区别
- java基本数据类型传递与引用传递区别详解
- C#中值传递与引用传递的区别 .
- JAVA中值传递和引用传递的三种情况
- java基本数据类型传递与引用传递区别详解
- Java中值传递和引用传递问题
- java基本数据类型传递与引用传递区别详解(一个大神的解析,不是我。。)
- Java中按值传递和按引用传递的区别
- java面试--"值传递"和"引用传递"的区别
- Java变量之间传值时可分为值传递和引用传递, 那么它们有何区别?
- C语言中值传递、地址传递、引用传递的区别
- 【Java基础】值传递与引用传递的区别?
- Java中值传递与引用传递
- C++中值传递和引用传递的区别
- Java的引用传递与C#的引用传递的区别