Jave运算符和MySQL运算符总结

Jave运算符和MySQL运算符总结

Java运算符

1.算术运算符

 +   -   *   /   %   ++   --    
  • + 在java中的意义有三个:
    • 代表正数
    • 做加法运算符
    • 字符串的连接

如果都是正数的时候是做加法运算符,如果遇到字符串这个时候+表示字符串的拼接

int a = 12;
String b = "21";
int c = 32;
System.out.println(a+b);//1221
System.out.println(a+c+b);4421
System.out.println(a+b+c);//122132
  • / 整数相除只能得到整数,如果需要得到小数需要把整数类型转换成小数。

  • 在java中如果判断一个数是否被另一个数整除,可以使用% 得到的值是否为0,
    如果得到的数为0表示这个数可以被另一个数整除。

  • ++自增,当这个符号在变量后面的时候,先将变量中的值取出来进行赋值操作或者其他比较的操作。操作完之后自身在进行加1;当++在变量的前面的时候,先自身加1,再将加1之后的结果赋值操作。

int x = 4; int y = (x++)+(++x)+(x*10);//y = 70

2.赋值运算符

= += -= *= /= %=

+= 把左边和右件的进行相加,然后把相加的结果赋值给左边。
避免类型转换。自动装箱和拆箱,相当于进行强制转换

short s = 1;
//s = s+1 在Java中整数默认为int类型
s = (short)(s+1);

s +=1;//这种进行自动装箱和拆箱的操作

3.关系(比较)运算符

==  !=  >=  <  <= 

关系运算符的操作结果为boolean类型;在Java中等于成==

== 可以比较基本数据类型和引用数据类型(比较引用数据类型比较的是地址值)

equals比较的是里面的值。

4.逻辑运算符

  • &逻辑与,有falsefalse
  • | 逻辑或,有true则为true
  • ^ 逻辑异或,相同为false,不同为true
  • !逻辑非:非falsetrue,非true则false
  • && 短路与,如果左边为fasle ,右边不执行
  • || 短路或,如果左边为true,右边不执行

和逻辑或不一样,逻辑或如果左边为true,右边会去执行,

如果左边为false,右边的表达式就不会执行

在开发中进行逻辑判断的时候使用短路与或者短路或

5.位运算符

  • & 按位与 有0则0,其它为1

  • | 按位或 有1则1,其它为0

  • ^ 按位异或 相同则0,不同则1(一个数被另一个数异或两次得到是原来的数)

 2^3^3 得到的还是2 
  • ~ 按位取反 按位补运算符翻转操作数的每一位

  • <<按位左移 左移,右边补齐0,最高位不变(左移相当于乘法,2几次幂,幂就是移动的数)

  • >>按位右移 右移,左边补齐0,最高位不变(右移相当于除法,和上面一样)

 System.out.println(2<<2);//向左移动2位:2 * 2 * 2 相当于  2 乘以2乘以2
 System.out.println(2>>2);//向右移动2为:2 /2 /2  相当于 2除以2除以2

最有效率的算出2 * 8的结果:2<<3
  • >>>无符号右移

按位与、按位或、按位异或、按位取反 进行操作的时候需要把十进制的数转换成二进制进行操作。

2 00000010
&
3 00000011
-----------------  有0则0,其它为1
2 00000010


2 00000010
|
3 00000011
----------------- 有1则1,其他为0 
3 00000011


2 00000010
^
3 00000011
----------------- 相同的为0,不同的则为1 
1 00000001
^
3 00000011
------------- 一个数按位异或两次,得到的结果为它本身 2^3^3 = 2
2 00000010

补从源码和补码

原码反码补码(类型转换的时候需要使用)
有符号数据表示法:
在原码中,最高位为符号位(从右到左,最左边的为最高位),符号位为0表示正数,符号位为1表示负数。其余的二进制位表示数值大小,也就是说在换算成十进制的时候最高位不用换算。

原码中如何表示正数7,和负数7 ?
0(符号位) 0000111 ----- >+7
1(符号位) 0000111 ------> -7  

先不分正负数 
8个1 二进制换算成十进制为255
7个1 二进制换算成十进制为127

2^7=128
2^6=64
2^5=32


反码:整数的反码和源码一致,负数的反码就是符号位不变,其余的二进制位对源码逐位取反即可。


补码:正数的补码和源码一致,负数的补码就是在其反码的基础上未位(最右边的二进制位)加1



+7 0 0000111(源码)
+7 0 0000111(反码)
+7 0 0000111(补码)


-7 1 0000111(源码)
-7 1 1111000(反码) +1
-7 1 1111001(补码)


正数的源码反码补码都是一样的。
负数的符号位源码反码补码都为1

如果二进制位为1,在加上1 ,逢二进一的原则,就会向前进一位,原来的二进制位变为0

如果二进制位为0,再减去1,需要向前一位借一位,如果还是不够再向前借一位,以此类推,减去1的二进制位变为1,1借了一位变为0

已知源码:10110100  表示一个负数
源码:10110100
反码:11001011 +1
补码:11001100


已知补码:11101110

补码:11101110 -1
反码:11101101 
源码:10010010         

MySQL中的运算符

	+ -  /  * 
	> < >= <= != = 
	||    &  	!
	or    and 	not

	in
	not in
	is null 是否为null
	is not null 不为空
	not is null

	between ... and ...
	like 

	>any

	<any   <=any

	<=> 表示都表示等于,但是不常用,我们常使用的是"="
	= 不能操作null值比较; 返回结果为null
	<=> 可以操作null。

	<>  != 表示不等于。
	可以判断数值、字符串、表达式是否相等。如果不相等返回1,否则返回0
	!=  <> 都不能操作null.

	> < >= <= 都不能操作null.

	& 按位与
	| 按位或
	~ 按位取反
	^ 按位异或
	<< 按位左移动
	>> 按位右移动

EL操作符

.	访问一个Bean属性或者一个映射条目

[]	访问一个数组或者链表的元素

()	组织一个子表达式以改变优先级

+	加

-	减或负

*	乘

/ or div	除

% or mod	取模

== or eq	测试是否相等

!= or ne	测试是否不等

< or lt	测试是否小于

> or gt	测试是否大于

<= or le	测试是否小于等于

>= or ge	测试是否大于等于

&& or and	测试逻辑与

|| or or	测试逻辑或

! or not	测试取反

empty	测试是否空值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100789.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • from flask import jsonify

    from flask import jsonifyjsonify是flask中的扩展包,可以将数据转换成json数据。#打开已新建的文件,导入Flask,jsonifyfromflaskimportFlask,jsonify#调用Flask(__name__),并赋值给变量appapp=Flask(__name__)#定义一个json对象数据,然后赋值给变量datadata=[{“sname”:”朱华”,”age”:”20″,”sex”:”男”},{“sname”:”张素”,”age”:”30″,”sex”

    2022年5月23日
    32
  • linux替换大文件内容,Linux批量替换文件内容

    linux替换大文件内容,Linux批量替换文件内容今天测试人员一不小心把导航的地址改错了,大约6000多个导航文件,要通过后台配置的话也很麻烦,可以通过linux命令实现对批量文件进行内容替换,但是技术经理不在,我对linux命令不熟,没办法只好硬着头皮来。经在网上一番辛苦搜索,找到以下几个命令,并尝试执行……最终终于实现效果,哎,“书到用时方恨少”,特此针对今天的情况总结了一下Linux批量替换文件内容的命令,第一种:格式:sed-i”s/…

    2022年7月26日
    11
  • Java7 新特性 —— java.nio.file 文件操作

    Java7 新特性 —— java.nio.file 文件操作

    2020年11月19日
    146
  • yum源本地配置和网络源配置——超级完整详细「建议收藏」

    yum源本地配置和网络源配置——超级完整详细「建议收藏」本地yum源主和客户端服务器配置:红帽系统是可以免费使用的,但是服务是收费的,RHEL7提供了很好的yum源,但是收费,所以如果你的系统是图形化安装,你使用图形化的时候,会有一个窗口弹出,这是红帽的广告插件,但是你不想付费又不想看到这个广告的时候,可以直接关闭的:查看广告插件:yumlistsubscript*,删除插件:yumremovesubscript*-y。首先关…

    2022年8月12日
    10
  • ps2无线手柄连接arduino的使用方法

    ps2无线手柄连接arduino的使用方法首先在https://github.com/madsci1016/Arduino-PS2X这里下载ps2x的库文件。将PS2X_lib放到库文件目录下。接线方法如下,代码部分#definepressurestrue的意思是让上下左右的按键可以度数,按下时analogRead值为255.#definerumbletrue的意思是开启震动…

    2022年5月20日
    308
  • 项目复盘/总结模板

    项目复盘/总结模板复盘会议的安排、步骤及意义什么是复盘?为何要复盘?WHAT?复盘,是行动后的深刻反思和经验总结,是一个不断学习、总结、反思、提炼和持续提高的过程。复盘是企业文化、是行动学习、是提升组织智慧的重

    2022年8月3日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号