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)


相关推荐

  • 什么是守护线程?「建议收藏」

    什么是守护线程?「建议收藏」Java线程分为用户线程和守护线程。守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。Java中把线程设置为守护线程的方法:在start线程之前调用线程的setDaemon(true)方法。注意:setDaemon(true)必须在start()之前设置,否则会抛出IllegalThreadStateExc…

    2022年10月15日
  • 未来取代计算机电脑,还在用电脑?未来几年它可能被手机取代

    未来取代计算机电脑,还在用电脑?未来几年它可能被手机取代据统计,家用计算机中九成的用户平时只做网页浏览、文档处理、简单的图像处理、游戏等操作,很少使用专业的设计和分析软件。所以家用计算机并不需要太高的配置,如果打游戏,一块好点的显卡就够了。在计算能力方面,随着手机硬件配置逐步增强,除了应付手机本身的各种应用,计算资源已经显得富裕起来,使得手机代替部分计算机成为可能。网络方面,提速减费政策后,无论有线网络还是无线网络的带宽都已不是问题,4G网络的费用也在…

  • W25Q128FV译文(一)[通俗易懂]

    该文章包括W25Q128FV译文的前六章内容,第7章状态寄存器翻译及第八章指令部分翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856第八章指令剩余部分及第九章相关时序翻译链接:https://blog.csdn.net/z123canghai/article/details/88726856目录一、概述…

  • lombok插件安装 idea 搜不到_浏览器flash插件安装

    lombok插件安装 idea 搜不到_浏览器flash插件安装Lombok官网ProjectLombok是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。永远不要再写另一个getter或equals方法,使用一个注释,您的类具有一个功能齐全的构建器,自动化您的日志记录变量等等.需要下载的插件lombok.jar包(可去我那里下载lombok.jar)lombok插件sts或eclipse安装方法(下面为sts安装…

  • WinServer2012配置AD域

    WinServer2012配置AD域WinServer2012配置AD域一、修改域控主机网卡IP,配置为静态IP,DNS配置为本机,并修改计算机名修改计算机名后需要重启注:若发现域控主机外部无法ping通请注意修改防火墙配置二、安装AD服务,将主机作为域控主机点击添加功能后,单击下一步随后添加功能组件,根据需求添加,点击下一步等待安装完成安装完成点击关闭安装完成后,点击上方的通知选择将此服务器提升为域控制器选择添加新林,设置好域名后点击下一步设置域还原密码,用于当域主机出现故障

  • 写给大忙人看的 – Java中图片压缩上传至MinIO服务器(4)[通俗易懂]

    写给大忙人看的 – Java中图片压缩上传至MinIO服务器(4)[通俗易懂]之前文章已经介绍了MinIO的环境搭建,已经对文件的上传下载方法,本篇文章一起与大家来学习图片压缩上传的方法1、背景最近客户总抱怨APP中图片显示较慢,升级服务器带宽又没有多的预算,查看原因,是因为现在大家都是用的智能手机拍照,拍出来的照片小则2-3M,大则十几M,所以导致图片显示较慢。思考再三,决定将图片进行压缩再上传图片服务器来解决图片显示慢的问题

发表回复

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

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