相关疑难解决方法(0)

Java赋值运算符执行

在Java中,我理解赋值求值为右操作数的值,所以像x == (y = x)evaluate 这样的语句true.

但是,此代码输出false.

public static void main(String[]args){
    String x = "hello";
    String y = "goodbye";
    System.out.println(x.equals(x = y));
}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?在我的理解中,它首先评估(x = y),分配xy,然后返回值y.然后x.equals(y)是评估,这应该是true因为xy现在应该共享相同的引用,而是,我得到false.

显示源的屏幕截图以及输出为

这里发生了什么?

java string equals assignment-operator

74
推荐指数
4
解决办法
3423
查看次数

在Java中描述实例和参数的方法的执行顺序?

在声明中:

fooFunc().barFunc(bazFunc());
Run Code Online (Sandbox Code Playgroud)

barFunc()显然不能执行,直到双方bazFunc()fooFunc()已完成.

但就是执行的顺序fooFunc()bazFunc()保障?

相关(但不同!)问题: Java中参数的执行顺序保证?

java

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

Java中的方法参数顺序

可能重复:
Java中参数的执行顺序保证?

如果我有一个Java方法,如:

    public void func(byte b, byte c) {...}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

    a = 0;
    func(a++, a);
Run Code Online (Sandbox Code Playgroud)

首先传递哪个参数?因为如果我没有错,如果它是左边的那么b = 0和c = 1.如果它是正确的那么那么b = 0并且c = 0?

谢谢.

java parameters methods

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

标签 统计

java ×3

assignment-operator ×1

equals ×1

methods ×1

parameters ×1

string ×1