java中的值传递机制

1.针对于方法内变量的赋值举例

public class ValueTransferTest {
	
	public static void main(String[] args) {
		
		System.out.println("***********基本数据类型:****************");
		int m = 10;
		int n = m;
		
		System.out.println("m = " + m + ", n = " + n);
		
		n = 20;
		
		System.out.println("m = " + m + ", n = " + n);
		
		System.out.println("***********引用数据类型:****************");
		
		Order o1 = new Order();
		o1.orderId = 1001;
		
		Order o2 = o1;//赋值以后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体。
		
		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
		
		o2.orderId = 1002;
		
		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
		
	}
	
}

class Order{
	
	int orderId;
	
}

规则:

  • 如果变量是基本数据类型,此时赋值的是变量所保存的数据。
  • 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

2.针对于方法的参数概念

java中的值传递机制

3.java中参数传递机制:值传递机制(本身是数据值就传递数据值,本身是地址值就传递地址值)

规则:
java中的值传递机制

下列输出答案是hello不是hi~~,String是一个特殊的类
java中的值传递机制
推广:
java中的值传递机制

4.典型例题与内存解析

【例题1】

java中的值传递机制

【例题2】

java中的值传递机制

上一篇:死锁-java


下一篇:Java比较器:Comparator接口与Comparable接口的compare(compareTo)方法返回值的正负与升序、降序的关系