相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

在Go中有指针有什么意义?

我知道Go中的指针允许函数参数的变异,但如果它们只采用引用(使用适当的const或可变限定符),它就不会更简单.现在我们有指针和一些内置类型,如地图和通道隐式传递引用.

我是否遗漏了某些内容或指向Go只是一个不必要的并发症?

pointers go

86
推荐指数
4
解决办法
2万
查看次数

在Java中,什么是浅拷贝?

java.util.Calendar.clone()返回"...具有相同属性的新日历"并返回"此日历的浅表副本".

为回答这并不似乎是一个浅拷贝这里的SO.这个问题被标记为与语言无关, Java似乎不遵循语言无关的定义.当我单步执行代码时,我注意到结构和元素被复制到这个新对象,而不仅仅是语言无关的结构.

在Java中,什么是浅拷贝?

它与Java深层副本(如果存在)有何不同?

java clone shallow-copy

51
推荐指数
3
解决办法
8万
查看次数

参考对象与值参考

我在这里阅读这篇评论:在Java中通过引用传递字符串?

是的,这是一种误解.这是一个巨大而广泛的误解.这导致我讨厌的一个采访问题:("Java如何传递参数").我讨厌它,因为大约一半的采访者实际上似乎想要错误的答案("基于价值的原语,通过引用的对象").正确的答案需要更长的时间,而且似乎会混淆其中一些.并且他们不会被说服:我发誓我在技术屏幕上不及格,因为CSMajor型筛选者在大学里听到了误解,并认为它是福音.FEH. - CPerkins于2009年8月13日14:34

有人可以解释一下,新程序员可以掌握,说:

"在Java中,原语通过值传递,对象通过引用传递."

和:

"在Java中,没有任何内容通过引用传递,引用按值传递."?

这些陈述在某种意义上都是真的吗? 我不想邀请咆哮游行,但这听起来像一个非常重要的概念,而我仍然不完全理解.

java pass-by-reference pass-by-value

8
推荐指数
3
解决办法
1418
查看次数

Java增量运算符查询(++ i和i ++)

我有以下代码:

public class Book {
    private static int sample1(int i) {
        return i++;
    }
    private static int sample2(int j) {
        return ++j;
    }

    public static void main(String[] arguments){ 
        int i = 0;
        int j = 0;
        System.out.println(sample1(i++)); //0
        System.out.println(sample1(++i)); //1
        System.out.println(sample2(j++));//1
        System.out.println(sample2(++j));//2
        System.out.println(i);//2
        System.out.println(j);//2
    }
}
Run Code Online (Sandbox Code Playgroud)

我的预期输出在评论中.实际输出如下:

0
2
1
3
2
2
Run Code Online (Sandbox Code Playgroud)

我对函数调用和incemental运算符感到困惑.有人可以解释实际结果吗?

java increment

7
推荐指数
3
解决办法
5160
查看次数

无法在ArrayList中添加对象?

嗨,我正在尝试将一个对象添加到Arraylist中,我正在使用Java.但它并不像我预期的那样有效.

假设我们有一个类Sentence,所以代码看起来像

ArrayList<Sentence> result = new ArrayList<Sentence>();
for (int i =0; i<10;i++)
{
    Sentence s = new Sentence(i.toString(),i);
    //there is a string and an int in this Sentence object need to be set
    result.add(s); 
}
Run Code Online (Sandbox Code Playgroud)

上面的一个正常工作.但我希望加快我的代码,所以我尝试只新的一个obejct,代码变成:

ArrayList<Sentence> result = new ArrayList<Sentence>();
Sentence s = new Sentence(" ",0);
for (int i =0; i<10;i++)
{
    s.setString(i.toString());
    s.setInt(i);
    result.add(s); 
}
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,我的结果将变为空.我想我确实改变了对象中的内容s,但我不知道为什么它在这期间不起作用result.add(s).

非常感谢你的回复.

java optimization

1
推荐指数
1
解决办法
7316
查看次数