Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包装器类型真的是引用类型吗_Java_Oop - Fatal编程技术网

Java 包装器类型真的是引用类型吗

Java 包装器类型真的是引用类型吗,java,oop,Java,Oop,看看这个代码 Integer x=new Integer(55); Integer y=x; y=33; System.out.println(x);//x still prints 55 instead of 33 为什么x打印55 我认为x应该打印33,因为它是引用类型。这可能很愚蠢,但我对java 为什么x打印55 因为它是一种引用类型。这一行: y=33; 这实际上是一种简写: y = Integer.valueOf(33); i、 e.创建了一个新对象,*并且y现在引用该

看看这个代码

 Integer x=new Integer(55);
 Integer y=x;
 y=33;
 System.out.println(x);//x still prints 55 instead of 33
为什么
x
打印
55

我认为
x
应该打印
33
,因为它是引用类型。这可能很愚蠢,但我对
java

为什么
x
打印
55

因为它是一种引用类型。这一行:

y=33;
这实际上是一种简写:

y = Integer.valueOf(33);
i、 e.创建了一个新对象,*并且
y
现在引用该对象。原始对象未更改,
x
未更改


*说得迂腐一点,这不一定是真的。但它肯定会与原始对象不同

为什么
x
打印
55

因为它是一种引用类型。这一行:

y=33;
这实际上是一种简写:

y = Integer.valueOf(33);
i、 e.创建了一个新对象,*并且
y
现在引用该对象。原始对象未更改,
x
未更改


*说得迂腐一点,这不一定是真的。但它肯定会与原始对象不同

意味着

y=new Integer(33);
这是通过自动装箱为您完成的

因此,x不会改变,您只需将一个新的引用分配给
y

意味着

y=new Integer(33);
这是通过自动装箱为您完成的


因此x不会改变,只需将一个新的引用分配给
y

行y=33创建一个值为33的新整数。x仍然引用值为55的原始整数。

行y=33创建值为33的新整数。x仍然引用值为55的原始整数。

y=x
之后,
x
y
都引用包含值55的同一整数对象

但这句话:

y = 33;
做两件事:它自动创建一个整数对象(自动装箱),该对象的值为33,并使变量
y
指向该新对象。此时,变量
x
仍指向原始整数(55)

注意:这与基本体无关:

StringBuilder x = new StringBuilder("abc");
StringBuilder y = x; //y's value is "abc"
y = new StringBuilder("def"); //y's new value is "def", but x's value still is "abc"

y=x
之后,
x
y
都指向包含值55的同一整数对象

但这句话:

y = 33;
做两件事:它自动创建一个整数对象(自动装箱),该对象的值为33,并使变量
y
指向该新对象。此时,变量
x
仍指向原始整数(55)

注意:这与基本体无关:

StringBuilder x = new StringBuilder("abc");
StringBuilder y = x; //y's value is "abc"
y = new StringBuilder("def"); //y's new value is "def", but x's value still is "abc"

String
是类类型..is
x
正在获取自动装箱again@Some1.Kill.The.DJ没有自动装箱,但这确实是一个特殊的例子。我用标准对象进行了编辑。
String
是一种类类型。
x
正在自动装箱吗again@Some1.Kill.The.DJ没有自动装箱,但这确实是一个特殊的例子。我用一个标准对象进行了编辑。所有“对象”都是真正的引用类型,它们不是您所建议的引用。所有“对象”都是真正的引用类型,它们不是您所建议的引用。