java 值传递和引用传递
来源:互联网 发布:淘宝模特一天多少钱 编辑:程序博客网 时间:2024/06/06 16:57
值传递和引用传递
8种基本数据类型,和其扩展的引用类型,都是值传递,也就是说是将值拷贝了一份,传递下去。
除了8种基本类型和其扩展的类型之外,都是引用传递,即传递的是引用的内存地址。
String 除外,String虽然不是基本数据类型,但是铭记,如果是按照单个参数传递,他也是值传递
如:
public static void main(String args[]){ DemoCtroller d = new DemoCtroller(); String str = "BEA";//String str = new String("BEA"); 效果一样 d.change(str); System.out.println(str); } void change(String s){ s = s.replace('A', 'E'); s = s.toLowerCase(); }
最后str的结果还是BEA;
如果换成以下代码:
String str = "BEA"; public static void main(String args[]){ DemoCtroller d = new DemoCtroller(); d.change(d); System.out.println(d.str); } void change(DemoCtroller d){ d.str = d.str.replace('A', 'E'); d.str = d.str.toLowerCase(); }
最后结果就是 bee
对于基本类型,赋值运算符会直接改变变量的值,原来的值被覆盖掉。
对于引用类型,赋值运算符会改变引用种所保存的地址,原来的地址被覆盖。但是原来的对象不会改变(非常重要)。
java中没有被任何引用所指向的对象是垃圾,会被垃圾回收器回收。
演示地址:https://github.com/lichenyigit/java.learning/blob/master/src/test/java/learning/StringTest.java
参考地址:
http://blog.csdn.net/zzp_403184692/article/details/8184751
http://www.cnblogs.com/simplykk/p/3745596.html
https://www.zhihu.com/question/31203609
如果觉得文章真心好, 请打赏下我吧,程序员赚钱不容易。 十块八块不嫌多, 一块两块也是爱啊!
阅读全文
0 0
- java中的“值传递”和“引用传递”
- java值传递和引用传递
- java中的值传递和引用传递
- Java中的值传递和引用传递
- Java值传递和引用传递
- Java值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- Java中的值传递和引用传递
- java中的值传递和引用传递
- java--值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- java中的值传递和引用传递
- MFC显示图片和写入文件
- 项目启动后发生org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: o
- 嵌入式 Linux 软件更新机制及架构汇总
- 八种方式实现跨域请求
- Altium Designer 自定义线宽 自动布线应用
- java 值传递和引用传递
- Mysql ERROR 1129 (00000): Host 'XXXXXX' is blocked because of many connection errors; unblock with '
- Longest Common Prefix
- 第二周项目2---程序的多文件组织
- ImageIO javax.imageio;读取图片问题
- lua环境安装
- AngularJS中获取ng-repeat动态生成的ng-model值
- linux网络配置-文件配置IP
- Math.random()和new Random()区别