1.Java等号的两种作用
java的等于号在进行数据之间赋值时就是传值;在引用对象之间,等于号作用就是传地址。
比如自建类
ListNode xList=ListNode(0);
ListNode newList=xList;//这步用途,例子如下
ListNode xList = new ListNode(0);//创建一个值为0的头部节点
ListNode newList = xList;//声明一个变量用来在移动过程中指向当前节点!
while(ture){//依次获取链表的值
ListNode sumNode = new ListNode(10);//生成新的节点
newList.next = sumNode;//把新节点连起来
newList = newList.next;//当前节点往后移动
}
return xList.next;//这样子return的就是10-10...,而不是0-10-10...!
在这里等于号就是起到了地址传递的作用,此时b的指针指向了a的地址,b引用了a的地址,起到了传地址的作用。
2.传值和传址的区别
传值:传的是基本类型,通过参数传递给方法传的是值的拷贝,所以函数体内的值的变化,不会影响函数体外的值
传地址:传入的是对象的引用,通过参数传给方法,传的是地址的拷贝
如果在函数体内,改变传入地址所指向的对象数据,会影响函数体外的对象。可以这么去理解 :我把地址的内存,传给了方法,方法改变了内存中的内容,所以指向它的引用的值自然都会改变。
3.例子
public class test {
/*
* Car :类型(自定义类型)
* c :引用某种对象,x=null,x没有指向任何对象
* = :引用(指向、绑定)
* new :JVM创建对象的命令
* Car() :构造器--构造方法constructor
*/
Car c = new Car(brand,color,price);
}