字符串连接的打印顺序
Order of prints with string concatenation
为什么下面的代码会打印出来
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));
}
}
System.out.println(fun(20)+" "+fun(21l));
传递了一个 String
,它是连接 fun(20)
和 fun(21l)
返回的值的结果。因此,这两个方法在这个 println
语句之前执行,每个方法都打印自己的 String
.
- 首先
fun(20)
打印 "float called " 和 returns 20.0
- 然后
fun(21l)
打印 "long called " 和 returns 21
- 最后
System.out.println(fun(20)+" "+fun(21l));
打印“20.0 21”
这是一个方法重载的例子。该示例显示 class 可以有多个同名方法。
此处列出了更多示例:
https://beginnersbook.com/2013/05/method-overloading/
为什么下面的代码会打印出来
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));
}
}
System.out.println(fun(20)+" "+fun(21l));
传递了一个 String
,它是连接 fun(20)
和 fun(21l)
返回的值的结果。因此,这两个方法在这个 println
语句之前执行,每个方法都打印自己的 String
.
- 首先
fun(20)
打印 "float called " 和 returns 20.0 - 然后
fun(21l)
打印 "long called " 和 returns 21 - 最后
System.out.println(fun(20)+" "+fun(21l));
打印“20.0 21”
这是一个方法重载的例子。该示例显示 class 可以有多个同名方法。
此处列出了更多示例: https://beginnersbook.com/2013/05/method-overloading/