变量,对象和引用之间究竟有什么区别?
例如:它们都指向某种类型,并且它们都必须保存值(当然除非您具有临时的无效类型),但它们的功能和实现究竟如何彼此不同?
例:
Dog myDog = new Dog(); //variable myDog that holds a reference to object Dog
int x = 12; //variable x that hold a value of 12
Run Code Online (Sandbox Code Playgroud)
它们有相同的概念,但它们有何不同?
关于原始类型如何在Java中工作,我有一个奇怪的问题.将ObjectA指定为ObjectB时使用对象时是这样的
Rectangle ObjectB = new Rectangle();
ObjectA = ObjectB;
Run Code Online (Sandbox Code Playgroud)
对ObjectA的任何调用现在都指向ObjectB的内存位置.但是,当使用整数或其他原始类型时,情况并非如此.例如
int x = 3;
int y = x;
int x = 5;
return y;
Run Code Online (Sandbox Code Playgroud)
当y被初始化时,y将返回3,即x的值.
我的问题是为什么对象的赋值在内存中创建引用,而原语会复制彼此的值?除了这个有用的事实,这是如何在Java中实现的?
我很感激能够让我更好地理解赋值在原始类型和对象之间如何工作的人.