字符串对象数组更新为否=符号?

时间:2015-11-20 22:01:55

标签: java

我试图了解以下代码的工作原理:

    ArrayList<String> aInt = new ArrayList<String>();
    Object[] bInt = null;

    aInt.add("1a");
    aInt.add("2b");
    aInt.add("3c");
    aInt.add("4d");

    bInt = new String[aInt.size()];

    aInt.toArray(bInt);

    for(int i=0; i < bInt.length; i++){
        System.out.println(bInt[i]);
    }

我理解除了aInt.toArray(bInt)行之外的所有内容;我的问题是,如果你从未做过bInt = aInt.toString(),那么如何使用这个来更新bInt?我认为java只按值传递项目而不是引用,所以我这让我感到难过。

我确实确认System.out.println语句打印出1a,2b,3c和4d。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

Java只传递值,但任何对象的值,包括那些重新表示原始值(如String和Integer)的值都会传递一个引用值。

因此,对象在逻辑上总是按引用传递,即使从技术上讲,你可以认为代码是按值传递的。

例如,如果将对象引用从局部变量传递到另一个方法,则原始方法中的局部变量将不会更改(即,在调用后它仍将引用同一个对象),即使对象是它所指的可以修改。因此,不可变对象的巨大价值的一部分(如String)。