Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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_Int_Primitive - Fatal编程技术网

Java 如何使基元指向引用?

Java 如何使基元指向引用?,java,int,primitive,Java,Int,Primitive,我想知道为什么原语int没有随着数组大小的改变而改变。原语不指向数组引用吗 List<String> list = new ArrayList<>(); int num = list.size(); list.add("item1"); list.add("item2"); System.out.println(num); //why is the num variable still equals to zero? List List=new ArrayList

我想知道为什么原语int没有随着数组大小的改变而改变。原语不指向数组引用吗

List<String> list = new ArrayList<>();

int num = list.size();

list.add("item1");
list.add("item2");

System.out.println(num); //why is the num variable still equals to zero?
List List=new ArrayList();
int num=list.size();
列表。添加(“第1项”);
列表。添加(“第2项”);
系统输出打印项数(num)//为什么num变量仍然等于零?

原语不能指向,因为它们是原语;他们有一个价值,就是这样。如果要更改该值,则必须更改它。如果你想在列表改变时改变NUM变量,或者更好地使用NUM变量,只需调用NUM变量,只需调用Num,只需在调用它的大小时调用<代码> .siz()/<代码> < > P>原语就不能指向,因为它们是基元;他们有一个价值,就是这样。如果要更改该值,则必须更改它。如果您想在列表更改时更改NUM变量,或者更好地使用Num变量,只需调用NUM变量,只需调用Num,只需在调用它的大小时调用<代码> .siz()/<代码>。它们不能引用类中的变量。基本上,当原语被更改时,它现在指向一个新的内存位置,其中包含新的编号


此外,列表中的大小变量也是一个基元。该原语看起来可能会发生变化,但这只是因为每次从列表中添加或删除某些内容时都会发生变化。

原语指向内存中保存静态(不要与
静态
关键字)值的区域,它们无法引用类中的变量。基本上,当原语被更改时,它现在指向一个新的内存位置,其中包含新的编号


此外,列表中的大小变量也是一个基元。该原语可能会发生变化,但这只是因为每次从列表中添加或删除某些内容时,原语都会发生变化。

当您调用
size()
时,您会得到此时集合大小的快照。你不会得到任何额外的引用,因为它只是一个数值。它永远不能保存任何类型的引用,它总是一个原始的数值


size()
方法能够引用集合的内部状态,因此最好使用该状态,而不是将其存储在另一个变量中。

当调用
size()
时,您会得到此时集合大小的快照。你不会得到任何额外的引用,因为它只是一个数值。它永远不能保存任何类型的引用,它总是一个原始的数值


size()
方法能够引用集合的内部状态,因此最好使用它,而不是将其存储在另一个变量中。

@SanjayT.Sharma:dang,我也是个语法书呆子。谢谢。原语可以保存地址值吗?谢谢@HovercraftFullOfEels@bvj:当然可以,但是你怎么知道地址呢?如果你真的得到了它,如果没有一些额外的帮助,比如JNI或JNA,你就不能像使用C编程那样使用它作为地址。@hovercraftfullofels我对你的最新评论的版本是:“是的,但不是真的”。@SanjayT.Sharma:dang,我也是个语法书呆子。谢谢。原语可以保存地址值吗?谢谢@HovercraftFullOfEels@bvj:当然可以,但是你怎么知道地址呢?如果你确实得到了它,如果没有一些额外的帮助,比如JNI或JNA,你就不能像使用C编程那样使用它作为地址。@HovercraftFullOfEels我对你的最新评论的版本是:“是的,但不是真的”。我假设这只是为了学习,但通常情况下,您最好不使用临时值,尤其是当它们可以轻松检索时(例如使用list.size()),我假设这只是为了学习,但通常情况下,您最好不使用临时值,尤其是当它们可以轻松检索时(例如通过使用list.size())公平地说,我想不出一种编写听起来更好的不变值的方法。公平地说,我想不出一种编写听起来更好的不变值的方法。