首页 > 其他分享 >运算符

运算符

时间:2023-03-21 19:33:36浏览次数:27  
标签:运算 System 运算符 println byte out

一、运算符种类

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符

二、算术运算符

+  -  *  /  % ++,--(也叫一元运算符)
int a = 10;
int b = 3;
System.out.println("a+b="+a+b);//结果为102
//直接用+号是拼接字符串
System.out.println("a+b="+(a+b));//结果为12
//进行运算的括号拼起来
System.out.println("a-b="+a-b);//报错
//字符串只能相加拼接,不能相减
System.out.println("a-b="+a*b);//相乘运算
//乘法优先级高,所以先算乘法,在进行字符串拼接
System.out.println("a-b="+a/b);//相除运算
//除法优先级高,所以先算除法,在进行字符串拼接
double c = 3.0;
System.out.println("a/c="+a/c);//结果为3.333
//进行运算的两个数都为整型,结果也为整型,如果有一个是浮点型,结果就为浮点型
//但是会近似运算
System.out.println("a/c="+a*1.0/b);//结果为3.333
System.out.println("a/c="+a/b*1.0);//结果为3.0
//根据运算优先级,从左往右运算
System.out.println("a%b="+a%b);//结果为1
System.out.println("a%c="+a%c);//结果为1.0

下面是运行结果

需要注意

整数被 0 除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN 结果。

三、关系运算符

>  <  >=  <=  ==  !=
  • ==和equals的区别
equals是判断内容是否相等,==是判断地址是否相等

四、位运算符

&:按位与,都1为1,有0为0 |:按位或,有1为1,都0为0 ^:按位异或,不同为1,相同为0 ~:按位非,按照8位二进制,高位是符号   负数在计算机中以补码存储,负数的补码=反码+1   非运算过程:取反--求反码--转原码--转十进制 <<:左位移 >>:右位移 >>>:无符号右移

五、逻辑运算符

&&:与,同真为真,有假则假 ||:或,一真为真,都假为假 !:非,取反 ^:异或,不同为真,相同为假。两边一样就是假,两边不一样是真 1. 短路原则:   &&:与运算,前面假直接返回,不进行后面判断   ||:或运算,前面真直接返回,不进行后面判断 2. 不短路情况:   前提是两边为表达式,如果两边为数字就是位运算符   &:不考虑前者,一定会执行后者   |:不考虑前者,一定会执行后者

六、赋值运算符

=  +=  -=  *=  /=  %=  

<<=左移位赋值运算符

>>=右移位赋值运算符

&=按位与赋值运算符

^=按位异或赋值操作符

|=按位异或赋值操作符

  • 使用赋值运算符有一点需要注意

例如:+=,其内部自动包含了强制转换

byte x1 = 10;
byte x2 = 3;
x1 = x1 + x2;//报错,不兼容的类型,int不能转到byte
x1 += x2;//等价于a=(byte)(a+b);自动帮你强转
System.out.println("x1=" + x1);
换句话说,Java有个默认的数据类型,在运行过程中涉及到类型转换,默认都转换为默认数据类型 比如:byte类型相加,编译器认为两个byte相加,127+127大于byte的范围,就会将结果转换为int(不是short,转换为默认数据类型),所以结果就为int,就会报错。

七、其他运算符

  1. 三元运算符

补充内容 一元:自增自减和非运算 二元:两个数的运算操作(加减乘除,与或等)
表达式1 ? 表达式2 : 表达式3
int a = 10; a>5?return true:return false;

  2. instanceof 运算符

测试它左边的对象是否是它右边的类的实例,返回 boolean的数据类型。 主要在用在多态上,判断左边对象是否是右边的实例

八、优先级

算术>比较>逻辑 括号>一元>非>乘除>加减>移位 ()>a++>++a>>* />+ ->>>   关于优先级更多的是使用括号,通常情况下不需要记住所有运算符的优先级顺序,只需记住常用的几个就可以            

标签:运算,System,运算符,println,byte,out
From: https://www.cnblogs.com/wanghycoder/p/17237699.html

相关文章

  • C++温故补缺(八):运算符重载和函数重载
    运算符重载和函数重载重载是c++多态性的一大体现,重载运算符是给运算符添加新的定义,使之前不能运算的对象变得可运算,且一般和运算符的意义相似.函数重载主要是同名函数......
  • C++ | 运算符重载
    1.运算符重载1.1基本概念函数重载(函数多态)是指用户能够定义多个名称相同但参数列表不同的函数,旨在使用户能够用同名的函数来完成相同的基本操作,即使这种操作被用于不同......
  • 逻辑运算符短路特性
    &&短路特性遇到假即为假,不会判断下一组表达式||短路特性遇到真即为真,不会判断下一组表达式......
  • 02Day-运算符
    一、算数运算符1.1加减运算符SELECT100,100+0,100-0,100+50,100+50-30,100+35.5,100-35.5FROMDUAL;整数类型与整数类型进行加减操作,结果还是......
  • 数据类型转换、运算符
    day02数据类型太简单,没啥写的,略注意:空串""是长度为0的字符串。空串是一个Java对象,有自己的串长度(0)和内容(空)。不过,String变量还可以存放一个特殊的值,名为null,这表示目前......
  • java运算符
    一表达式表达式由运算符和操作数组成如:5num1,num1+num2,sum=num1+num2二运算符1.算术运算符算术运算符主要用于进行基本的算术运算,如加法,减法,乘......
  • 输入一个字符串(例如:3+6-3*4/2,运算符只有 + - * / 四个),计算结果。不考虑加减乘除优先级
    这是自己面试遇到的面试题,考Java基础,String。考的很基础,但是String确实java中很重要的基础部分。题目:输入一个字符串(例如:3+6-3*4/2,输出12。运算符只有+-*/四个),计算......
  • C 语言运算符优先级
    说明:同一优先级的运算符,运算次序由结合方向所决定。简单记就是:!>算术运算符>关系运算符>&&>||>赋值运算符......
  • 按位运算符
    按位运算符指定a=60(00111100);b=13(00001101)按位与(&)对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时才为1,如下图:(a&b)结......
  • 【Java笔记5】运算符
    @目录一.算术运算符二.赋值运算符三.比较运算符四.逻辑运算符五.三元运算符六.运算符的优先级七.字符串拼接字符串字符串拼接运算一.算术运算符运算符说明......