java操作符重载_Java基础知识-操作符重载
java操作符重载
String str1 = "hello";
String str2 = str1 + " world";
System.out.println(str2);
对于java的String对象+运算,大学老师的解释一直是操作符重载,也就默认了,突然有兴趣自己摸索一下。
找到对应的class文件,运行javap -c *.class
函数main的主要代码如下:
public static void main(java.lang.String[]);
Code:
0: ldc #16 // String hello
2: astore_1
3: new #18 // class java/lang/StringBuilder
6: dup
7: aload_1
8: invokestatic #20 // Method java/lang/String.valueOf:(
Ljava/lang/Object;)Ljava/lang/String;
11: invokespecial #26 // Method java/lang/StringBuilder."<
init>":(Ljava/lang/String;)V
14: ldc #29 // String world
16: invokevirtual #31 // Method java/lang/StringBuilder.ap
pend:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: invokevirtual #35 // Method java/lang/StringBuilder.to
String:()Ljava/lang/String;
22: astore_2
23: getstatic #39 // Field java/lang/System.out:Ljava/
io/PrintStream;
26: aload_2
27: invokevirtual #45 // Method java/io/PrintStream.printl
n:(Ljava/lang/String;)V
30: return
可以看到编译后的代码实际创建了StringBuilder,而+操作符也被转成了StringBuilder的append,所以一种说法是java实际并不是把操作符重载了(ps:因为其它操作符没有类似的操作),而是操作符的语法糖而已。
java操作符重载_Java基础知识-操作符重载相关推荐
- 方法的重载与重写_java基础知识之重载和重写
重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间, ...
- java 计算反码_java基础知识-原码、反码、补码、运算符
一.原码.反码.补码 原码 一个数转化成二进制. 用最高位来表示正负,最高位为0表示正数,最高位为1表示负数. 例如: short i=5: 因为在java里short占2个字节转化成二进制就是 00 ...
- java class 字符串_java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer...
第四章:数学函数.字符和字符串 math类 Math是final类:在java.lang.Math中,所有数学函数都是静态方法 在一个java程序中,java.lang包中的所有类是隐式导入的. 三角 ...
- java表达式语句_Java基础知识笔记第三章:运算符表达式语句
算术运算符与表达式 操作符描述例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B ...
- java e次方_java基础知识
一.java的简介 1.后台开发语言.跨平台,安全性高.面向对象 二.java基础 1.类是java中最小编写代码的单元 2.语句要分号结束 3.括号成对出现 4.运行原理--从上往下 三.注释:代码 ...
- java.util 常见_Java基础知识-java.util.concurrent包下常见类的使用
一,Condition 一个场景,两个线程数数,同时启动两个线程,线程A数1.2.3,然后线程B数4.5.6,最后线程A数7.8.9,程序结束,这涉及到线程之间的通信. public classCon ...
- java.io.file()_JAVA基础知识之IO-File类
File类介绍 File是java.io包下面的一个类,代表与平台无关的文件或者目录.JAVA中,无论文件还是目录,都可以看作File类的一个对象.File类能对文件或目录新建,删除,获取属性等操作, ...
- java 查看类_JAVA基础知识之JVM-——通过反射查看类信息
Class实例 当类被加载之后,JVM中就会生成一个Class实例,通过这个实例就可以访问JVM中的这个类.有三种方式可以获取Class对象 使用Class的静态方法forName(完整包名) 调用类 ...
- java 集合数据类型_Java基础知识(数据类型和集合)
一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...
最新文章
- 德勤:2018年科技、传媒和电信行业未来趋势预测
- struts2中一个表单中提交多个请求(动态调用方法)
- linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式
- atoi()函数和stoi()函数
- 如何安装老版本Eclipse汉化——以2020-06为例
- canvas绘制出货单
- iOS弱引用表 SideTable weak_table_t weak_entry_t
- php+mysql获取7天、30天的统计数据,没有数值的补充0 By勤勤学长
- Android多开分身 v7.2 破解永久VIP付费版
- 区块链技术的安全价值与局限性解析
- 万国觉醒迁服务器显示该王国还未开放,万国觉醒怎么迁城到联盟其他王国
- 安云网络-高防服务器租用的稳定性
- 图形化文本编辑器_使用图形转换器从知识图生成文本
- 【zotero】在zotero中通过拖拽导入PDF文件时并没有识别到文件
- OA系统选型时需注意的一些细节
- 信息系统基本知识(二)(兼顾第四版教程)
- 【自然语言处理】【词嵌入】dLCE:将词汇对比集成到近义反义的词嵌入中
- 关于UCP和TCP的形象理解
- 07 Android 植物人大战僵尸-修复放置卡片重叠Bug
- 将时谐电磁场引入工程电磁场的意义_2018年电子科技大学电子工程学院813电磁场与电磁波考研核心题库...