带字符串连接的打印顺序

时间:2018-08-26 17:28:06

标签: java string-concatenation operator-precedence

为什么下面的代码会打印

float called long called 20.0 21

代替

float called 20.0 long called 21

代码如下:

public class Test5 {
    static float fun(int a) {
        System.out.print("float called ");
        return a;
    }

    static long fun(long a) {
        System.out.print("long called ");
        return a;
    }

    public static void main(String[] args) {
        System.out.println(fun(20) + " " + fun(21L));
    }
}

2 个答案:

答案 0 :(得分:5)

System.out.println(fun(20)+" "+fun(21l));传递了String,这是将fun(20)fun(21l)返回的值连接在一起的结果。因此,这两个方法在此println语句之前执行,每个方法都打印自己的String

  • 第一个fun(20)打印“浮点数”并返回20.0
  • 然后fun(21l)打印“ long被叫”并返回21
  • 最后System.out.println(fun(20)+" "+fun(21l));打印“ 20.0 21”

答案 1 :(得分:-1)

这是方法重载的示例。该示例显示了一个类可以有多个具有相同名称的方法。

此处列出了更多示例: https://beginnersbook.com/2013/05/method-overloading/