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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 中缀表达式转后缀表达式方法_后缀表达式怎么求值

    中缀表达式转后缀表达式方法_后缀表达式怎么求值前言数据结构与算法中经常遇到中缀表达式转前缀表达式的题目,网上的教程大都很不直观,自己学的时候,也走了很多弯路,现在把一个简单易懂的算法教程分享出来。中缀转后缀举个例子,一个式子:(5+20+1∗3)/14(5+20+1*3)/14(5+20+1∗3)/14如何把该式子转换成后缀表达式呢?其实就是分三步:1、按运算符优先级对所有运算符和它的运算数加括号,(原本的括号不用加)2、把运算…

    2022年10月26日
  • 图像标注-自动标注图像

    图像标注-自动标注图像常见的图像标注工具有Yolo_mark,labelImg,以下两篇文章是对这两款工具的说明Yolo_mark使用教程labelImg标注图像深度学习图像标注工具汇总这里需要提供另一款标注工具—百度物体检测模型,不同于以上的标注工具,百度提供的物体检测模型在标注一定数量(100张)后,提供智能标注功能,可以对数据集中的其他图片自动标注,详细介绍确认百度自动标注结果后可以将数据集…

  • &0xFF是怎么个意思[通俗易懂]

    &0xFF是怎么个意思[通俗易懂]今天看了下同事从网上拷贝的base64加密的代码,看到了这样如下的代码publicstaticStringencode(byte[]data){StringBuildersb=newStringBuilder();intlen=data.length;inti=0;intb1,b2,b3;while(i

  • Topk算法_topn算法

    Topk算法_topn算法topK算法思路1:可以采用快速选择算法,借助快排,设mid为每次划分中间结果,每次划分完之后如果mid==k,则说明序列刚刚好,第k位置和他前面的位置都是前K大的数,如果mid < k,则说明第K大的元素在后半部分,则前半部分肯定是前K大的数,只需从后半部分找k – mid大的数即可,否则如果mid > k,则说明第K大的数在前半部分,只需从前半部分找前K大的数字即可。时间复杂度:假设每次划分的mid都在中间,每层都只是对一半做划分,所以每次划分的数据量为n,n/2,n/4,n/8…一

  • jdk8对应的eclipse版本_MyEclipse安装

    jdk8对应的eclipse版本_MyEclipse安装myeclipse10安装包(64位)下载:链接:https://pan.baidu.com/s/1zFnRd4IIpjSK9c7hB6F5Ig提取码:0uqv

  • xshell安装步骤_Xshell怎么使用

    xshell安装步骤_Xshell怎么使用XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。它支持RLOGIN、SFTP、SERIAL、TELNET、SSH2和SSH1,可以非常方便的对Linux主机进行远程管理。除此之外,其还有丰富的外观配色方案以及样式选择。Xshell免费版官网下载地址https//www.xshell.com/zh/free-for-home-school/链接https//pan.baidu.com/s/1NJGWZHkByakOkQpKfkc7Yg。…

发表回复

您的电子邮箱地址不会被公开。

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