iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JAVA语法中加号运算符怎么用
  • 287
分享到

JAVA语法中加号运算符怎么用

2023-06-17 04:06:01 287人浏览 八月长安
摘要

小编今天带大家了解JAVA语法中加号运算符怎么用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA语法中加号运算符怎么用”的知识

小编今天带大家了解JAVA语法中加号运算符怎么用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA语法中加号运算符怎么用”的知识吧。

JAVA提供的“+”运算符,如Iteger+String,从c++的角度来看总是想找到JAVA是怎么重载这个“+”运算符,于是进去String这个类中看,然而并没有什么卵发现,于是乎想着JAVA是怎么做到的?下面来为你逐步分析下JAVA是怎么实现“+操作符重载的”。

示例

public class Example {  public static void main(String[] args) {  Integer a = null;  String b = a + "456";  System.out.println(b);  }  }

这个程序很简单就是一个Integer和String的“+”运算表达式。运行结果:null456

反编译示例程序

命令:

javap -c Example

反编译后的结果如下:

Compiled from "Example.java" public class com.boyu.budmw.test.Example extends java.lang.Object{ public com.boyu.budmw.test.Example();   Code:    0:    aload_0    1:    invokespecial    #1; //Method java/lang/Object."<init>":()V    4:    return  public static void main(java.lang.String[]);   Code:    0:    aconst_null    1:    astore_1    2:    new    #2; //class java/lang/StringBuilder    5:    dup    6:    invokespecial    #3; //Method java/lang/StringBuilder."<init>":()V    9:    aload_1    10:    invokevirtual    #4; //Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;    13:    ldc    #5; //String 456    15:    invokevirtual    #6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;    18:    invokevirtual    #7; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;    21:    astore_2    22:    getstatic    #8; //Field java/lang/System.out:Ljava/io/PrintStream;    25:    aload_2    26:    invokevirtual    #9; //Method java/io/PrintStream.println:(Ljava/lang/String;)V    29:    return  }

我们来分析下main函数部分:

  • 0:将常量null压入操作数栈

  • 从操作数栈中将null弹出保存到索引为1的局部变量a中

  • new一个StringBuilder

  • 复制之前new出来的空间并将其压入操作数栈

  • 调用进行初始化

  • 将结果保存到操作数栈

  • 调用StringBuilder.append(java/lang/Object)

  • 将“456”压入栈顶

  • StringBuilder.append(java/lang/String)

  • 执行toString函数

从上面的分析我们可以看到其最终是先生成了一个StringBuilder对象,之后的“+”操作符都是调用了StringBuilder.append()进行“+”的。这就可以解释上面示例程序运行后为什么是null456了,append  object的时候调用了

public static String valueOf(Object obj) {  return (obj == null) ? "null" : obj.toString();  }

将object转化为String了。

为什么JAVA不支持操作符重载

像C++中类对操作符进行了重载,个人觉得会操作维护难得问题,因为操作符重载没有一个标准来约束大家都可以想当然的进行重载会造成语义相差大,可读性严重降低,所以java中去掉操作符重载这个特性和他的高级面向对象很相符。

感谢大家的阅读,以上就是“JAVA语法中加号运算符怎么用”的全部内容了,学会的朋友赶紧操作起来吧。相信编程网小编一定会给大家带来更优质的文章。谢谢大家对编程网网站的支持!

--结束END--

本文标题: JAVA语法中加号运算符怎么用

本文链接: https://www.lsjlt.com/news/287175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA语法中加号运算符怎么用
    小编今天带大家了解JAVA语法中加号运算符怎么用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA语法中加号运算符怎么用”的知识...
    99+
    2023-06-17
  • Java语言中运算符怎么用
    本文将为大家详细介绍“Java语言中运算符怎么用”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Java语言中运算符怎么用”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
    99+
    2023-06-26
  • python运算符号怎么用
    这篇文章给大家分享的是有关python运算符号怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比较运算符a,b=10,30print('a>b吗?',a>b)print('...
    99+
    2023-06-22
  • JavaScript中逗号运算符怎么用
    这篇文章将为大家详细讲解有关JavaScript中逗号运算符怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。逗号运算符逗号运算符( ,)用来评估其每个操作数(从左到右)并返回最后一个操作数的值。let...
    99+
    2023-06-27
  • c语言逗号运算符的使用方法
    本文将为大家详细介绍“c语言逗号运算符的使用方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“c语言逗号运算符的使用方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
    99+
    2023-06-06
  • java运算符怎么使用
    四则运算符四则运算当中的加号“+”有常见的三种用法:对于数值来,那就是加法。对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。char类型字符,和int类型数字之间的对照关系比表:ASCII,Unicode对于字...
    99+
    2019-02-24
    java入门 java 运算符 使用
  • Java中关系运算符怎么用
    这篇文章给大家分享的是有关Java中关系运算符怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。public class Operation3 {public stati...
    99+
    2023-06-02
  • Java中赋值运算符怎么用
    小编给大家分享一下Java中赋值运算符怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!public class Operation2 {public static vo...
    99+
    2023-06-02
  • Javascript的加法运算符有什么用
    小编给大家分享一下Javascript的加法运算符有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介JavaScript...
    99+
    2022-10-19
  • C语言算术运算符怎么使用
    本文小编为大家详细介绍“C语言算术运算符怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言算术运算符怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。下表列出了C语言中的算术运算符。运算符操作-减...
    99+
    2023-07-05
  • java中移位运算符怎么使用
    Java中的移位运算符有三种:左移位运算符()和无符号右移位运算符(>>>)。它们用于将一个二进制数向左或向右移动指定的位数。1. ...
    99+
    2023-09-26
    java
  • Java怎么用位运算实现加减运算
    这篇文章主要讲解了“Java怎么用位运算实现加减运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么用位运算实现加减运算”吧!思路分析先分析如何用位运算实现加法运算。示例假设a=2...
    99+
    2023-07-04
  • 怎么在java中组合运算符
    这篇文章将为大家详细讲解有关怎么在java中组合运算符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实...
    99+
    2023-06-14
  • C语言三元运算符怎么用
    今天小编给大家分享一下C语言三元运算符怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。三元运算符:#include&nb...
    99+
    2023-06-17
  • 逻辑运算符怎么在Java中使用
    逻辑运算符怎么在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、前言逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true...
    99+
    2023-06-15
  • Java关系运算符怎么使用
    本篇内容主要讲解“Java关系运算符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java关系运算符怎么使用”吧!运算符 1:“等于”运算符 (==)运算符 2:“不等于”运算符(!=)...
    99+
    2023-06-21
  • C#中??运算符怎么用
    小编给大家分享一下C#中运算符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C#运算符可能是一个被遗忘的运算符,很少看到有人用它,它的用法很简单却很实用:v...
    99+
    2023-06-17
  • JavaScript中逗号运算符是怎样使用的
    今天就跟大家聊聊有关JavaScript中逗号运算符是怎样使用的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。逗点算符可与一组表达式运算符相配合,产...
    99+
    2022-10-19
  • JS中三元运算符的语法是什么
    本篇内容主要讲解“JS中三元运算符的语法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中三元运算符的语法是什么”吧!三元运算符(也称为条件运算符)可用...
    99+
    2022-10-19
  • c语言怎么输入运算符并用其进行运算
    在C语言中,可以使用标准输入函数`scanf`来输入运算符,并使用条件语句或循环结构进行运算。以下是一个示例代码,演示了如何输入运算...
    99+
    2023-09-04
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作