个人觉得java是传值,当参数类型是基本类型,复制的是值,而当参数是引用类型时,复制的也是值,只不过这个值是地址。如下例调用change(A a)有几个过程:
(1)创建一个临时变量
(2)将实参的值复制给临时变量,由于是引用变量,实参的值是一个地址,故存的也是同一个地址
(3)方法中改变了临时变量所指向的地址,而实参指向的地址没变
change(String str)同理,改变的是临时变量所指向的地址,实参指向的地址没变。
public Demo
{
public static void main(String[] args)
{
A a = new A();
System.out.println(a.x);//10
change(a);
System.out.println(a.x);//依然是10
}
public static void change(A a)
{
a = new A();
a.x = 20;
}
public static void change(String str)
{
str = "new string value in string pool";
//str = new String("new string in heap");
}
}
class A
{
public int x = 10;
}
相关推荐
java中传值与传引用,详细讲解java中的传值与传引用
Java是传值还是传址引用
java中传值还是传引用的的认识? 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
Java 是传值还是传引用,问题主要出在对象的传递上,因为 Java 中简单类型没有引用。既然争论中提到了引用这个东西,为了搞清楚这个问题,我们必须要知道引用是什么。 简单的说,引用其实就像是一个对象的名字...
Java页面form表单值的简单获取方法
引用类型不像值类型传值那样直接,那么引用类型是怎么样传值的呢?答案就在此文档中。
JAVA传值与传引用[整理].pdf
前言在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参本,函数对形参的操作并不
主要介绍了java中的传值与传引用实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java传值所用的基本方法与java传值时是传引用还是传值
Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE...
Java到底是传引用还是传值Java开发Java经验技巧共3页.pdf.zip
传值和传引用的问题一直是Java里争论的话题。与C++不同的,Java里面没有指针的概念,Java的设 计者巧妙的对指针的操作进行了管理。事实上,在懂C++的Java程序员眼中,Java到处都是精美绝伦的指 针。
java及C++中传值传递、引用传递和指针方式的理解.docx
主要是对Java方法传值和传引用问题进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
NULL 博文链接:https://m635674608.iteye.com/blog/1513061
java传值中的乱码,最简易的解决方法。 兄弟姐妹们,快来下载吧
很多初学者比较疑惑的地方,看看绝对有帮助的。帮你打好Java的基础知识
lotus domnio java代理传值