运算符

  • 算术运算符:+,-,*,/,%(取余;也叫模运算),++(自增),--(自减)...........
  1. 二次运算符+,-,*,/
int a=10;
int b=20;
int c=50;
int d=100;
System.out.println(a+b); //=30
System.out.println(a*c); //=500
System.out.println(a/d); //=0;值明显错误,因为int运算后都是取整,需要加上强制转换符
System.out.println(a/(double)d); //0.1;正确

不同类型间的二次运算

long a=10000000000000L;
int b=10000;
short c=100;
byte d=10;
System.out.println(a*b);//值为long型;整数型运算中有Long型,结果也为long型
System.out.println(b*c);//=100_0000;int型以下运算结果均为int型
  1. 取余 %
int a=1;
int b=4;
System.out.println(a%b);//=1; 即:1/4=0.........1
  1. 关系运算符 > ,<,==,!=
int a=10;
int b=20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
//关系运算符返回值只有正确/错误,通常与if一起使用
  1. 一元运算符 ++,--
int a=10;
int b=a++;//首先要清楚a++是什么意思?a++/++a=a+1,但是++在a的后面表示先赋值在执行自增(自减),而++在a的前面则需要先自增(自减)再赋值
int c=++a;
System.out.println(a);//=12;a再两次变量中自增两次,a=a+1+1=12
System.out.println(b);//=10;a++代表先赋值b,再执行自增,则b=a
System.out.println(c);//=12;++a代表先自增,再赋值c,则c=a+1+1=12
  1. 幂运算

在Java中没有幂运算符号^,我们可以通过Math数学工具中找到pow代表幂运算,pow属于double类

double pow=Math.pow(2,3);
System.out.println(pow);//=2^3=8
  1. 逻辑运算符 &&(与),||(或),!(非/取反)
boolean a=true;
boolean b=false;
System.out.println(a&&b);//=false;与:同真为真,有假则假
System.out.println("(a&&b):"+(a&&b));//=(a&&b):a&&b;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接
System.out.println(a||b);//=true;或:有真则真,同假则假
System.out.println("(a||b):"+(a||b));//=(a||b):true;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接
System.out.println(!(a&&b));//=true;取反:真则是假,假则是真
System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接
  1. 短路运算
int a=10;
boolea b=(a<9)&&(a++>10);
//什么叫短路运算?(a<9)是false,而它与(a++>10)是“与”的关系,此时一个为假,整体为假,电脑节约资源,不会再进行(a++>10)的运算
System.out.println(b);//=false
System.out.println(a);//=10 int c=10;
boolea d=(c<11)&&(c++>10);
//因为(c<11)为true,则(a++>10)会被运算
System.out.println(d);//=false
System.out.println(c);//=11
  1. 位运算(针对二进制)&,|,^(取异),~(取反),>>(右移),<<(左移)
/*
二进制
A= 0010 0011
B= 1110 0101
A&B= 0010 0001 &:全一为一,有零为零(结合逻辑运算符,同真为真,有假则假)
A|B= 1110 0111 |:有一则一,全零为零(结合逻辑运算符,有真则真,同假则假)
A^B= 1110 0110 ^:相同为零,相异为一
~B = 0001 1010 ~:取相反的数 二进制 十进制
0000 0000 0
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
面试题:如何快速计算2^4的值?
思路:利用二进制;16=2*2*2*2
观察上方十进制2和16对应二进制的值,发现二进制的1向左移动三次得到16;
在Java语言中,位运算符<<是左移的意思,每移动一次,等于乘一次2,同样,>>代表右移,每移动一次,等于除一次2 答案:快速计算2^4的表达式为 System.out.println(2<<3);
*/
  1. 扩展运算符 +=,-=,*=。/=
int a=10;
int b=20;
a+=b;//a+=b含义是a=a+b
a-=b;//a-=b含义是a=a-b
System.out.println(a+=b);//30
System.out.println(a-=b);//10
System.out.println(""+a+b);//1020;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接
System.out.println("(a+=b):"+(a+=b));//(a+=b):30;输出时“字符串”在变量运算前,变量运算值也变成字符串进行拼接,但这里(a+=b)有括号,那么括号内的值会运算后作为字符串进行拼接(添加括号,括号内运算有优先级)
System.out.println(a-=b+"");//10;输出时“字符串”在变量运算后,变量运算正常进行
  1. 三元运算符 ?:
/*
x?y:z 假如x为真,则返回y值,否则为z
int score=75;
String state=x<60?"不及格":"及格";
System.out.println(state);//及格
*/

Day06:运算符详解的更多相关文章

  1. Net is as typeof 运行运算符详解 net 自定义泛型那点事

    Net is as typeof 运行运算符详解   概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Ti ...

  2. JavaScript逻辑and、or、not运算符详解

    一.AND详解: 在JavaScript中,逻辑 AND 运算符用双和号(&&)表示. 需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是 ...

  3. java运算符详解

    java运算符: 定义:用来指明对于操作数的运算方式 按照操作数数目分类: 单目运算    数目运算    三目运算 a++              a+b           (a>b) ? ...

  4. 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...

  5. Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

    位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...

  6. 基础知识复习(一)——C语言位运算符详解

    常用的位运算符:与(&),取反(~),或(|),异或(^),左移(«),右移(») 1. 与(&)操作符,按位与,全为1 时,结果取1 11001 &10011 结果:1000 ...

  7. javascript算术运算符详解

    算术运算符 +.-.*./.%.++.-- ++.--分为前缀形式和后缀形式 前缀形式先加减1在执行 后缀形式先执行再加减1 注意 +号用来连接两个字符串 只要+连接的操作数中有一个是字符串型,JS就 ...

  8. js 表达式与运算符 详解(下)

    比较运算符: > .>= .<. <=.  ==. !=. ===. !==. 比较运算符的结果都为布尔值 ==只比较值是否相等    而    ===比较的是值和数据类型都要 ...

  9. js 表达式与运算符 详解(上)

    表达式: 表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量.变量.运算符 <script> var r = 2 var pi = 3.14 var circle = ...

随机推荐

  1. C#基础_C#计算样本标准差和总体标准差

    首先我们先了解样本标准差和总体标准差: 样本标准差=方差的算术平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/(n-1)) 总体标准差=σ=sqrt(( ...

  2. 小样本利器3. 半监督最小熵正则 MinEnt & PseudoLabel代码实现

    在前两章中我们已经聊过对抗学习FGM,一致性正则Temporal等方案,主要通过约束模型对细微的样本扰动给出一致性的预测,推动决策边界更加平滑.这一章我们主要针对低密度分离假设,聊聊如何使用未标注数据 ...

  3. Python自学教程12-类和对象怎么用

    Python是一门现代化的编程语言,也是一门面向对象的编程语言. 现代编程语言几乎都支持面向对象编程,面向对象编程是最有效的软件编写方法之一.你可以用类和对象来表示现实当中的任何的事物和行为. 编写类 ...

  4. AI听曲识歌!哼曲、口哨吹,都能秒识! ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...

  5. 诺塔斯读写卡QT SDK笔记

    卡片操作函数调用 寻卡: Request --> LotusCardRequest 防撞处理: Anticollission --> LotusCardAnticoll 选卡: Selec ...

  6. KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(同一主机)

    案例说明: 目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份.本案例详细介绍了,在Windows环境下建 ...

  7. 谣言检测——《MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection》

    论文信息 论文标题:MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection论文作者:Jiaqi Zheng, ...

  8. 002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化

    阅读须知:本文为入门介绍.指引文章,所示代码皆为最简易(或仅为实现功能)的演示示例版本,不一定切实符合个人(企业)实际开发需求. 一.DbContext生存期 DbContext 的生存期从创建实例时 ...

  9. losf命令详解

    一.概念:lsof全名list opened files,也就是列举系统中已经被打开的文件,进程打开的端口(TCP.UDP).linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至socke ...

  10. [报错]-RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be the same

    RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be ...