相关疑难解决方法(0)

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

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

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

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

解释是什么?

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

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

指向同一个Integer对象的变量之间的比较

当前程序的输出是"奇怪的".但两个变量共享相同的参考.为什么第二次和第三次比较不正确?

Integer a;
Integer b;
a = new Integer(2);
b = a;
if(b == a) {
    System.out.println("Strange");
}
a++;
if(b == a) {
    System.out.println("Stranger");
}
a--;
if(b == a) {
    System.out.println("Strangest");
}
Run Code Online (Sandbox Code Playgroud)

输出: Strange

java integer

17
推荐指数
2
解决办法
2888
查看次数

为什么整数在Java中是不可变的?

我知道整数在Java中是不可变的.但为什么这样设计呢?

在提出这个问题之前,我通过了其他答案:

整数是不可改变的

i ++仍在为Java中的不可变Integer工作?

为什么Java包装类是不可变的?

但我找不到强制整数强制不变的用例.是否存在像String这样的技术原因?

  1. 字符串在网络连接,数据库URL等中用作参数.如果它是可变的,它很容易被破坏.
  2. 支持StringPool工具.
  3. 支持将字符串用作参数的类加载机制.字符串是可变的导致加载错误的类.

我知道有些包装就像AtomicInteger可变的一样.

更新:

从谈话中,没有普遍的理由可以强制整数是不可变的.然而,通过做不变,它提供了答案中提到的一些奖励.

比如安德烈的这句话

缓存的可能性.

其他人正在减少全球状态

更容易多线程

java integer immutability

13
推荐指数
2
解决办法
1万
查看次数

当我们说"整体是不可变的"时,我们究竟是什么意思

我对"不可变"的概念感到困惑.我们的教授说"每次都是不可改变的!字符串是不可变的",他到底是什么意思?

一个更一般的问题,我们如何知道数据结构是否是不可变的?

谢谢

c++ java

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