java中常用的内存区域:
(1) 栈内存空间: 保存所有的对象名称,(更准确的说是保存了引用的堆内存空间的地址)
(2)堆内存空间: 保存每个对象的具体属性的内容
(3) 全局数据区: 保存static 类型的属性
(4)全局代码区: 保存所有的方法定义
String 类:
== : 用来进行地址值的比较
equals(): 用来进行内容的比较
引用传递: 所谓的引用传递就是指将堆内存空间的使用权,交给多个栈内存空间,
public static void main(String[] args) {
String str1 = "hello";
System.out.println("fun()方法调用前:" + str1);
fun(str1);
System.out.println("fun()方法调用后:" + str1);
}
public static void fun(String str2) {
str2 = "Mis,Wu";
}
运行结果:
fun()方法调用前:hello
fun()方法调用后:hello
在程序运行结果中发现,虽然此时传递的是一个String类型的对象,但是结果并没有像之前一样的发生改变,
因为字符串一旦声明是不可改变的,改变的只是其内存地址的指向.