首页 > 编程语言 >需要注意的运算符 | JAVA

需要注意的运算符 | JAVA

时间:2023-11-23 11:26:19浏览次数:36  
标签:左到 操作数 JAVA ++ 运算符 按位 注意 20

  • 算术运算符

需要注意的是a++和++a的区别。

     int d = 25;
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
其中d++   = 25,++d   = 27;相当于遇到print的时候,d++有一个顺序,从左到右,也就先完成之前的指令而非先运算再print。

还有需要注意的是,谁是得到,谁得到余数
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
 
  • 关系运算符,都比较简单,暂时忽略
  • 位运算符
操作符含义描述例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^   如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
反转 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<<    按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>>    按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>>    按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

只有>>>(三个小箭头事儿多一点)会补齐数值

  • 逻辑运算符,暂时忽略
  • 赋值运算符,和算术运算符一样,需要区分   / =, (%)=  。
  • 其他运算符
    • 条件运算符
    •    public static void main(String[] args){
            int a , b;
            a = 10;
            // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
            b = (a == 1) ? 20 : 30;
            System.out.println( "Value of b is : " +  b );
       
            // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
            b = (a == 10) ? 20 : 30;
            System.out.println( "Value of b is : " + b );
         }
      

       instance of 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

  

  • 运算符级别(资料来自菜鸟教程)
类别操作符关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr-- 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性  * /% 左到右
加性  + - 左到右
移位  >> >>>  <<  左到右
关系  > >= < <=  左到右
相等  ==  != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右
这里的关联性是什么意思呢
(参考菜鸟教程的评论区,关联性表达的是运算的顺序,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。)

 



标签:左到,操作数,JAVA,++,运算符,按位,注意,20
From: https://www.cnblogs.com/cainiaodct/p/17851130.html

相关文章

  • 前端学习-JavaScript学习-JavaScript高级程序设计-第3章笔记
    第3章基础概念数据类型Number<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"......
  • Java时间截和日期格式相互转换的方法。
    1.将时间戳转换为日期格式: 2.将日期格式转换为时间戳: ......
  • java日期时间类运算Date,Calendar,LocalDateTime(详细用法)
    ✨前言✨本片文章,主要在于使用Date,Calendar,LocalDateTime三种时间类,进行日期之间的运算,及使用......
  • java中如何两个日期比大小。
    1、数值型long比较获取long型的今日/系统当前时间数值型(long型)日期的获取方式主要有2个:longtime=System.currentTimeMillis()获取系统当前时间,精确到毫秒longtoday=Date.getTime(),即通过Date型日期调用getTime()方法获取,精确毫秒。 2、日期型Date直接比较日期型Date的......
  • 东北旅游注意事项
    安全贵重物品、金属饰品尽量不带,坐飞机、滑雪很不安全;不滑雪时一定不要站在雪道上;防寒防护里面多穿几件如保暖内衣、毛衣,外面羽绒服,因为室内外温差极大达到30度以上,进入室内要及时脱掉厚衣服,避免出汗后到外面会更冷;一定要注意脚部防寒,可穿雪地鞋或毛靴,鞋底要厚、防滑......
  • Java开发者的Python快速进修指南:迭代器(Iterator)与生成器
    这一篇内容可能相对较少,但是迭代器在Java中是有用处的。因此,我想介绍一下Python中迭代器的使用方法。除了写法简单之外,Python的迭代器还有一个最大的不同之处,就是无法直接判断是否还有下一个元素。我们只能通过捕获异常或使用for循环来退出迭代,这点让我感到十分惊讶。可迭代对象......
  • Java Calendar 日历类型
    JavaCalendar日历类型概念java.util.Claendar日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法,该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值获取方式由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来......
  • Java LocalDateTime 日期类型
    JavaLocalDateTime日期类型一.新时间日期API常用、重要对象介绍ZoneId:时区ID,用来确定Instant和LocalDateTime互相转换的规则Instant:用来表示时间线上的一个点(瞬时)LocalDate:表示没有时区的日期,LocalDate是不可变并且线程安全的LocalTime:表示没有时区的时间,Loc......
  • 中介者模式--Java实现
    具体代码//AbstractChatroom.javapackageorg.example.test017;importjavax.swing.plaf.basic.BasicTreeUI;publicabstractclassAbstractChatroom{publicabstractvoidregister(Membermember);publicabstractvoidsendText(Stringfrom,Stringto,Str......
  • 备忘录模式--Java实现
    具体代码//Memento.javapackageorg.example.test018;publicclassMemento{publicStringgetAccount(){returnaccount;}publicvoidsetAccount(Stringaccount){this.account=account;}publicStringgetPassword(){......