0%

java中的引用

参考来源 点击这里

值类型与引用类型

1
2
int num=10;
String str="hello";

image
从上图中可以看出基本数据类型保存的是值,而引用数据类型保存的是指向对象的地址信息,不是值

变量赋值

1
2
num=20;
str="java";

image
对于基本数据类型,如果赋值会覆盖掉原来的数,而对于引用数据类型,重新赋值的话,会覆盖原本保存的地址信息,而去指向新的对象,原来对象没有改变过,此时原来的对象则会因没有引用来关联找不到它,就会被垃圾回收器回收。

函数传参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
StringBuilder sb1 = new StringBuilder("test");
StringBuilder sb2 = new StringBuilder("test");

// 对于提供修改自身的成员方法引用类型,原始的sBuilder会被更改
public void func(StringBuilder sBuilder) {
sBuilder.append("aa");
}

// 原始的sBuilder不会被更改
public void test(StringBuilder sBuilder) {

sBuilder = new StringBuilder("111");
}
public static void main(String s){
func(sb1);
test(sb2);
}

在执行 main 里面的  func(sb1) 之后
image
执行 main 里面的 test(sb2) 后
image

本文标题:java中的引用

文章作者:志者

发布时间:2019年08月16日 - 15:32:17

最后更新:2019年08月28日 - 17:33:45

原始链接:http://witman1999.github.io/java中的引用.html

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
copy