java中只有值传递,没有引用传递
2015-08-25 16:14
621 查看
示例:
打印结果:
good and gbc
大家可能以为Java中String和数组都是对象所以肯定是对象引用,然后就会选D,其实这是个很大的误区:因为在java里没有引用传递,只有值传递。这个值指的是实参的地址的拷贝,得到这个拷贝地址后,你可以通过它修改这个地址的内容(引用不变),因为此时这个内容的地址和原地址是同一地址,但是你不能改变这个地址本身使其重新引用其它的对象。
public class Demo3 { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Demo3 ex = new Demo3(); ex.change(ex.str, ex.ch); System.out.print(ex.str + " and "); System.out.print(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; str = new String("bad"); ch[0] = 'g'; } }
打印结果:
good and gbc
大家可能以为Java中String和数组都是对象所以肯定是对象引用,然后就会选D,其实这是个很大的误区:因为在java里没有引用传递,只有值传递。这个值指的是实参的地址的拷贝,得到这个拷贝地址后,你可以通过它修改这个地址的内容(引用不变),因为此时这个内容的地址和原地址是同一地址,但是你不能改变这个地址本身使其重新引用其它的对象。
相关文章推荐
- Eclipse 加速优化
- java interface有多个implement的情况下,@Inject调用实现类的选择
- java中Double类型的运算精度丢失的问题 (小数点多出99999999999999)
- Java线性查找
- Java Web学习路线
- Java: System.exit() 与安全策略
- 在eclipse中配置maven项目
- jqGrid怎么设置初始化页面时不加载数据(不向服务器请求数据)
- Spring MVC 上传单个文件
- Java写程序猿专访String2
- Java中的hashCode 方法
- Spring+mybatis配置动态数据源
- 找不到要编译的文件——path环境变量配置
- Spring Data JPA 常用注解 @Query、@NamedQuery
- java MD5 加密(16位/32位)
- 【转】JAVA中的反射机制
- java内存区域
- spring 框架的xml文件如何读取properties文件数据
- java中instanceof用法
- hadoop中javac编译添加jar库文件路径问题