Java基础知识:Java操作符重载 - 极悦
首页 课程 师资 教程 报名

Java基础知识:Java操作符重载

  • 2022-09-21 08:58:08
  • 1135次 极悦

java操作符重载是什么?极悦小编来告诉大家。

String str1 = "hello";
String str2 = str1 + " world";
System.out.println(str2);

找到对应的class文件,运行javap -c *.class

函数main的主要代码如下:

ldc #16 // String hello
astore_1
new #18 // class java/lang/StringBuilder
dup
aload_1
invokestatic #20 // Method java/lang/String.valueOf:(
Ljava/lang/Object;)Ljava/lang/String;
invokespecial #26 // Method java/lang/StringBuilder."<
init>":(Ljava/lang/String;)V
ldc #29 // String world
invokevirtual #31 // Method java/lang/StringBuilder.ap
pend:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual #35 // Method java/lang/StringBuilder.to
String:()Ljava/lang/String;
astore_2
getstatic #39 // Field java/lang/System.out:Ljava/
io/PrintStream;
aload_2
invokevirtual #45 // Method java/io/PrintStream.printl
n:(Ljava/lang/String;)V
return

可以看到编译后的代码实际创建了StringBuilder,而+操作符也被转成了StringBuilder的append,所以一种说法是java实际并不是把操作符重载了(ps:因为其它操作符没有类似的操作),而是操作符的语法而已。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交