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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm的配置(背景颜色+字体大小+行号+解释器选择等)

    PyCharm的配置(背景颜色+字体大小+行号+解释器选择等)我的第二篇博客,上一篇是PyCharm安装过程,下面讲解PyCharm的配置。第一:配置PyCharm的背景。打开PyCharm开发环境,使用快捷键Ctrl+"`"(该键位于键盘的左上角,和”~“同一个键位),即可出现下图配置选项。colorScheme:配置背景颜色(有白色,黑色等)codestylescheme:默认为defaultKeymap:快捷键配置,依个人习惯而定Vie…

    2022年6月20日
    25
  • linux显示颜色设置命令_ubuntu修改终端颜色

    linux显示颜色设置命令_ubuntu修改终端颜色修改Ubuntu主题的颜色Ubuntu的主题中,我比较喜欢使用Radiance主题,但是他的工具提示颜色我很不喜欢,因为看其来很不顺眼,虽然可以在自定义中的颜色中进行调节,但是我有觉得出现一个自定义主题很不好看所以开始手动修改主题中的颜色显示。首先打开主题的配置文件,比如Radiance主题。sudogedit/usr/share/themes/Radiance/gtk-2.0/gtkrc找到…

    2022年9月23日
    5
  • 全局路径规划:图搜索算法介绍4(RRT/RRT*)

    全局路径规划:图搜索算法介绍4(RRT/RRT*)本节介绍RRT/RRT*的算法:RRT的基本原理是:我们首先初始化我们的起点,接下来随机撒点,选出一个x_rand,在x_near和x_rand之间选择一个x_new,再在原有的已经存在的x中找到离这个点最近的点将这两个点连接起来,同时这个最近的点也会作为x_new的父节点。RRT算法的伪代码如下:对照着图,再看一次:首先我们随机生成一个点,x_rand然后再tree上面…

    2025年8月6日
    3
  • U3D场景制作规范(转)「建议收藏」

    U3D场景制作规范(转)「建议收藏」本文提到的所有数字模型制作,全部是用3DMAX建立的模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括:场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。首先对制作流程作简单介绍:素材采集-模型制作-贴图制作

    2022年6月18日
    33
  • erlang 初体验

    erlang 初体验

    2022年1月26日
    54
  • IDEA 2022.01.12激活码【中文破解版】「建议收藏」

    (IDEA 2022.01.12激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

    2022年4月2日
    105

发表回复

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

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