Java一元加减运算符

Java中的一元加减运算符
        不得不说,在没学《Java编程思想》之前,我对Java的学习只是“知其然”,即只是知道该这样用而已,但是当你看了《Java编程思想》之后,才真正明白什么叫做“知其所以然”。当然这句话并不是我说的,而是某位大佬说的,这里就引用一下吧。
        今天学习到第三章的一元加(+)减(-)运算符,从字面上讲,这两个符号的操作数只有一个,而且他们与二元加减运算符都使用相同的符号,编译器会根据表达式的书写形式来判断是哪一种。比如:
        x = -a;
上面这条语句很显然,无论是编译器还是读者都能读出这里的减号是一元减号运算符,但是下面的语句可能就会不一样了。
        x = a * -b;
这样的语句编译器能正确读出来,但是读者可能就会搞糊涂,所以有时需要明确地写成这样:
        x = a * (-b);
接下来才是我写这篇文章的目的:
        《Java编程思想》原文中对这两个符号的作用做了这样的总结:
         一元减号用于转变数据的符号,而一元加号只是为了与一元减号相对应,但是它唯一的作用仅仅是将较小类型的操作数提升为int.
        加亮的这句话第一次看的时候看不懂,因为根据我自己无法用代码去证明这句话的正确性,于是我在网络上搜了一下,发现网络上的回答也只是一知半解,于是自己找乐原版英文书,发现书中原文是这样子的。
        高亮中文部分在我浅显的英文功力面前的理解是没有“它唯一的作用仅仅是将较小类型的操作数提升为int.”这句话,也就是它除了和一元减号运算符相呼应之外没有任何的作用。但是中文版既然加上去了也不能说它错吧,肯定是在翻译的时候Java已经变了,于是就增加了上去(我自己的理解)。
        不过后来问了网络上的大佬终于给证明出来了。如下

public class Yiyuan {
     public static void main(String[] args) {
          //定义一个byte类型变量
          byte b = 1;
          //用一元加号后赋值给c,发现报错。
          byte c = +b;
          //再赋值给整型变量d后能编译通过,证明b编程了int型。
          int d = +b;

          
     }
}

————————————————
原文链接:https://blog.csdn.net/zane06/article/details/79718368

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值