标签:style blog color ar java sp div log bs
摘抄自威哥视频
例一:值传递(说白了,就是内容复制,或者说内容的副本)
public class ValueDemo{ public static void main(String[] args){ int x = 10; method(x); System.out.println("x="+x); } public static void method(int mx){ mx = 20; } }
例二:下面三个都是引用传递
package sunjava; public class RefDemo2{ public static void main(String[] args){ String name = "小白"; method(name); System.out.println("name="+name); } public static void method(String sname){ sname = "小红"; } }
name=小白
例三:引用传递(说白了,就是地址传递,指向了同一个地址。栈内寸两个变量存储的是同一个地址。)
package sunjava; public class RefDemo1{ public static void main(String[] args){ Cat c = new Cat(); method(c); System.out.println("Cat age = "+c.age); } public static void method(Cat cat){ cat.age = 5; } } class Cat{ int age = 2;//省略封装 }
5
例四:字符串特例
package sunjava; public class RefDemo3{ public static void main(String[] args){ Cat c = new Cat(); method(c) ; System.out.println("Cat name= "+c.name) ; } public static void method(Cat cat){ cat.name = "小黑"; } } class Cat{ String name = "小白"; //省略封装 }
Cat name= 小黑
总结:
1、每次new一个对象,就是在堆内存当中开辟一个新的空间。【无论以前是否有重复,如string1=new String(“helloworld”),如例五的string2和string4是false】
2、例四的 String name = "小白"; 字符串也是一个新的对象。
标签:style blog color ar java sp div log bs
原文地址:http://www.cnblogs.com/bluewelkin/p/4091881.html