[Top]

算术运算

分类 运算符
算数运算符 * / + - % ++ --
赋值运算符 +=, -=, /=, *=, %=(扩展赋值运算符), =
比较(关系)运算符 == != > <= >= instanceof
逻辑运算符 & && | || ! ^
位运算符 ~ & | >> << >>>
条件运算符 (条件表达式)? 表达式1:表达式2

算数运算符

1.‘+’

  • 表示正数
  • 进行加法运算(数值+数值,数值+‘字符’,‘字符’+‘字符’)
  • 连接作用 (字符串+字符串,字符串+数值......字符串+其他)=字符串

2.‘-’

  • 表示负数
  • 减法运算(数值-数值,数值-‘字符’,‘字符’-‘字符’)
  • 注:字符串没有减法

3.‘*’

4.‘/’

5.‘++’

  • ++数值:先++再赋值y=x++ +3;//x+3
  • 数值++:先赋值再++y=++x+3;//x+1+3

6.‘--’

7.‘%’

  • 两边为整数

  • 与++同理

赋值运算符 ('=')

  • 将等号右边的值赋值给等号左边

下面举一个特殊的例子:

short s = 3;

s=s+2; ①会出错,因为2为int型

s+=2; ②是对的,+2后会进行隐式转换为s对应的数据类型/= ,*=,-=,%=同理

注:两边数据类型必须一致

比较运算符(结果为true与false)

1.'=='

判断两边数值是否相等(基本类型与基本类型),Boolean与Boolean进行比较,String与String进行比较(引用类型与引用类型),

注意 字符串自己不能比较大小,Boolean与Boolean不能比较大小

2.'!='

数值!=数值,bool!=bool,string!=string;

3.'>'和'<'

数值与数值,字符与数值,字符与字符

4.'>='与'<='

与3同理

5.instanceof

判断左边类型是否与右边类型一致

package homeworkday7.chouxiang;

public class Test {
public static void main(String[] args) {
Cuiweiyang dqw=new Dengqinwen();
Cuiweiyang dqw2=new Dengqinwen2();
Person zs = new Person();
dqw.sleep();
dqw2.sleep();
Dengqinwen dqw3=(Dengqinwen) dqw;
zs.feed(dqw3);
}
}
package homeworkday7.chouxiang; public class Person {
public void feed(Cuiweiyang cuiweiyang){
cuiweiyang.eat();
if(cuiweiyang instanceof Dengqinwen){//判断cuiweiyang是否与Dengqinwen是一个类型
System.out.println("转换为Dengqinwen成功!");
}
}
}

逻辑运算符

1.& 逻辑与

所有表达式结果为true,结果为true ,否则false

特点:当第一个表达式为false时,还会去继续执行第二个式子

2.&& 逻辑与/短路与

所有表达式结果为true,结果为true ,否则false

特点:当第一个结果为false时,不会再继续执行第二个式子

int a=1;
int b=2;
int c=3;
System.out.println(a>b&(b++)>c);
System.out.println(b);
b=2;
System.out.println(a>b&&(b++)>c);
System.out.println(b);
false
3
false
2

3.| 逻辑或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,还会去继续执行第二个式子

4.|| 逻辑或/短路或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,不会去继续执行第二个式子

int a=1;
int b=2;
int c=3;
System.out.println(a<b|(b++)>c);
System.out.println(b);
b=2;
System.out.println(a<b||(b++)>c);
System.out.println(b);
true
3
true
2

5.! 逻辑非

!true = false,!false = true;

6.^ 逻辑异或

相同为false 不同为true

条件运算符

(条件表达式)? 表达式 1 : 表达式2

若 条件表达式 为true 去执行表达式 1 ,否则执行表达式 2;

位运算符

1.<< 左移

空位补0,被移除的最高位丢弃,空缺位补0

int a=7;
int b=4;
System.out.println(b<<2);
//0000 0100 4
//0001 0000 16

2.>> 右移

被移位的二进制最高位是0,右移后,空缺位补0,最高位是1,空缺位补1

        int b=4;
System.out.println(b>>2);
//0000 0100 4
//0000 0001 1

3.>>> 无符号 右移

被移位二进制最高位无论是0还是1,空缺位都用0补

正数

        int b=4;
System.out.println(b>>>2);
//0000 0100 4
//0000 0001 1

负数

		int b=-4;
System.out.println(b>>>2);
/*
0111 1111 1111 1111
1111 1111 1111 1100 -4
*/
/*
0011 1111 1111 1111
1111 1111 1111 1110 1073741823
*/

4.& 与

对应两位都为1,则结果为1,否则0

		int a=2;
int b=4;
System.out.println(a&b);
/*
0000 0010 2
0000 0100 4 &
0000 0000
*/

5.^ 异或

对应两位都相等,则结果为0,否则1

		int a=2;
int b=4;
System.out.println(a^b);
/*
0000 0010 2
0000 0100 4 ^
0000 0110
*/

6.| 或

对应两位都为0,则结果为0,否则1

		int a=2;
int b=4;
System.out.println(a|b);
/*
0000 0010 2
0000 0100 4 |
0000 0110
*/

7.~ 非

对所有位取反 1~0 0~1

		int a=2;
int b=4;
System.out.println(~a);
/*
~0000 0010 2
1111 1101 -3(最高位为1)
*/

注:使用byte类型移位时,系统会自动换为int进行位运算

JavaSE的运算符的更多相关文章

  1. JavaSE| 数据类型| 运算符| 进制与补码反码等

    JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...

  2. javase 基本运算符和三大流程

    范围:-(2 ^ 字节 X 8 - 1)~(2 ^ 字节 X 8 - 1)-  1 主要区别是数据大小范围: 1.  byte    一个字节    -128 ~ 127 2. short    两个 ...

  3. 9.JavaSE之运算符

    Java语言支持如下运算符operator:优先级() 算数运算符 :+ ,- ,* ,/ ,% ,++ ,-- 赋值运算符 := 关系运算符 :> ,< ,>= ,<= ,= ...

  4. JavaSE复习~运算符与表达式

    运算符 运算符:进行特定操作的符号 表达式:用运算符进行操作的式子 算术运算符 首先是加减乘除:+.-.*./还有取余:% 整数进行算术操作得到的还是整数,例如整数使用 / 得到的是整数(商的整数部分 ...

  5. [javaSE] 位运算符(&|^)

    位运算是直接对二进制进行计算 左移 << 右移 >> 先把整数换成四个8bit 0000-0000 0000-0000 0000-0000 0000-0000 这个二进制左右移 ...

  6. JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符

    // Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...

  7. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  8. JavaSE学习笔记(1)---数据类型、运算符、控制结构

    javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...

  9. JavaSE学习(二):进制转换—数据类型转换—Java运算符

    一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16)  =  14*16(0) +7*16(1) + 10*16(2)  + ...

  10. Java 基础入门随笔(3) JavaSE版——逻辑运算符、位运算符

    上一节写了一些运算符的注意事项,这节开头依然是对运算符的一些注意点的阐述! 比较运算符除了>.>=.<.<=.==.!=之外需要注意instanceof:检查是否是类的对象,例 ...

随机推荐

  1. (节流)js防止重复频繁点击或者点击过快方法

    1.方法一:用定时器定时,没跑完定时器,点击按钮无效 <script> var isClick = true; $("button").on("click&q ...

  2. Java实现控制台购书系统

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 代码 im ...

  3. 力扣374(java&python)-猜数字大小(简单)

    题目: 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字.如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了.你可以通过调用一个预先定 ...

  4. Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

    简介: 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标. 背景 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测 ...

  5. 前端之JavaScript基础学习

    一.JS代码引入以及基本代码规范 # 1.js代码书写格式 <script> ....js的代码 </script> #2.script标签写在页面那个位置 1)页面的head ...

  6. RT-Thread 时钟管理

    一.时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时.线程的时间片轮转调度以及定时器超时等.时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间 ...

  7. netcore3.1 程序在cento8下运行selenium

    我需要在linux下运行selenium抓取数据,本人不熟悉Python,所以只能用netcore.在带linux界面上运行爬取程序,驱动chromedriver比较简单.界面化安装好chrome,下 ...

  8. 如何通过前后端交互的方式制作Excel报表

    前言 Excel拥有在办公领域最广泛的受众群体,以其强大的数据处理和可视化功能,成了无可替代的工具.它不仅可以呈现数据清晰明了,还能进行数据分析.图表制作和数据透视等操作,为用户提供了全面的数据展示和 ...

  9. 《深度学习原理与Pytorch实战》(第二版)

    第1章 深度学习简介 深度学习--利用深度人工神经网络来进行自动分类.预测和学习的技术,深度学习=深度人工神经网络 超过三层的神经网络都可以叫做深度神经网络 人工神经网络的关键算法--反向传播算法 深 ...

  10. .Net 8.0 下的新RPC,IceRPC之如何创建连接connection

    作者引言 很高兴啊,我们来到了IceRPC之如何创建连接connection,基础引导,让自已不在迷茫,快乐的畅游世界. 如何创建连接connection 学习如何使用IceRPC,创建和接受连接. ...