java学习笔记--运算符

news/2024/6/18 21:25:18 标签: java, 运算符, 位运算, 关系运算, 逻辑运算

java_0">java运算符

运算符:用来指明对于操作数的运算方式

按照操作数的数目来进行分类

单目运算符
例如:a++

双目运算符
例如: a+b

三目运算符
例如:(a>b)?x:y (表示如果a>b为真,执行(或输出)x,否则执行y)

按照运算符的功能来进行分类

一、算术运算

+(加),-(减),*(乘),/(除), %(取余,取模)
++(自增) ,- -(自减)

java">public class Text{
	public static void main(String[] args){
		int x = 1;
		int y = x++;//先赋值,后自增
		System.out.println("x = "+x+"  "+"y = "+y);
		//x = 2  y = 1
	}
}
java">public class Text{
	public static void main(String[] args){
		int x = 1;
		int y = ++x;//先自增,后赋值
		System.out.println("x = "+x+"  "+"y = "+y);
		//x = 2  y = 2
	}
}

特别的有:

java">public class Text{
	public static void main(String[] args){
		int x = 1;
		for(int i=1;i<=100;i++){
			x = x++;
		}
		System.out.println(x);
		//x = 1
	}
}

二、赋值运算

= 赋值符号
将 = 右边的内容(或值,或引用)存入到 = 左边的变量空间内。
+= , -= , *= , /= , %=

java">int x = 1;
x+= 10;// <==>  x = x+10;

关系运算符(比较)

<(小于) , <= (小于等于), >(大于) , >=(大于等于), !=(不等于) , ==(等于)

1) = 与 == 的区别

= 是赋值符号,将 = 后面的结果(值 或引用)存入 = 左边的变量空间内。
== 是比较符号,比较 = = == == 前面和 = = == == 后面的元素(值 或引用)是否一致。

2)比较运算符的最终结果是什么?

比较运算符的最终结果是boolean类型: true或者false。
例如:
(3<8)–>true
(5>6)–>false

三、逻辑运算.

逻辑运算符前后连接的两个都是boolean类型的值,逻辑运算最终的结果还是boolean类型。

&(逻辑与)
|(逻辑或)
^(逻辑异或)
!(逻辑非)
&&(短路与)
||(短路或)

(3>2)&(5<6) ==> true
&逻辑与 表示:和,并且。前后两个全为true,整体才能为true

(6<8)|(9>15) ==> true
|逻辑或 表示:或。前后两个,只要有一个为true,整体便是true,只有两个都为false时,才为false。

(6>2)^(7>1) ==> false
^逻辑异或 表示:异(不同的)。前后两个的结果不一致,整体便为true。

!(5>3) ==> !true = = == ==>false
!逻辑非 表示取反。将原来的结果取反。

总结:
&逻辑与可以理解为中文的"和", 并且”意思&前后两个条件必须同时满足最终才为true。

|逻辑或可以理解为中文的“或者" I前后两个条件只要有一个满足最终就为true。

^逻辑异或前后两个表达式只要结果不相同最终结果就为true(专治强迫生)

!逻辑非可以立即为中文的“不"将原来的结果取反

(3>1)&&(4>2) ==> true
&&短路与 :前后两个条件同时满足才为true,如果当第一个条件已经为false时,最终肯定为false,便不会执行(运行)第二个(后面)条件,这便是短路。
&&短路与
1)短路什么情况下才会发生短路?
当前面的值结果为false的时候会发生短路。
2)短路到底短路的是什么?
短路的是&&之后所有计算(执行或者判断)的过程。
3)如果发生了短路情况性能比&稍微好点。
4)&逻辑与和&&短路与从执行的最终结果来看没有任何区别。
5)短路与不一定提高了性能只有当前面为false的时候才会发生短路才会提高性能。

||短路或类似
||短路或 :前后两个条件有一个为true,则整体为true,如果当第一个条件已经为true时,最终肯定为true,便不会执行(运行)第二个(后面)条件。

四、位(bit)运算

&按位与
I按位或
^按位异或
~按位取反
< < << <<按位左位移
> > >> >>按位右位移
> > > >>> >>>按位右位移(无符号)

例如:

java">public class Text{
	public static void main(String[] args){
		System.out.println(5^3);
		//结果为:6
	}
}

5^3
1.将5和3转化成二进制表示形式。
在这里插入图片描述
(int型为32位,这里省去了前面的24个0)
2.竖着按照对应位置进行异或运算(1–>true,0–>false)。
3.将计算后的二进制结果转化成十进制。
4.&按位与,I按位或和~按位取反 类似

< < << <<按位左位移
例如:
6<<2 ==24
在这里插入图片描述
> > >> >>按位右位移
在这里插入图片描述
> > > >>> >>>按位右位移(无符号)
在这里插入图片描述


http://www.niftyadmin.cn/n/1580138.html

相关文章

C++字符串函数与字符数组函数

C 字符串(string类)函数首先明确 字符串是从第0位 开始存储的即 string s"123"; s[0]1&#xff1b; string ss"0123456789";string ss2;1.求长度int lenss.length(); //求字符串ss的长度返回值赋给len&#xff08;此时len10&#xff09; 2.提取子串string…

回馈读者

360buy上&#xff0c;对我的书《QoS在IOS中的实现与应用》打5星的评价 &#xff1a; &#xff08;1&#xff09;读者&#xff1a;永冻黎明说“世面上感觉就这么一本qos的书能看了&#xff0c;资料匮乏的年代啊……良好的中文教材- -”&#xff08;2&#xff09;读者&#xff1a…

NetBeans Sources as a Platform

http://blogs.oracle.com/geertjan/entry/netbeans_sources_as_a_platform——————————————————————————————————————————————————————————————————————————————NetBeans Sources as a Platform …

在网页中加入flv视频

首先下载http://www.cgfans.net/bbs/Medias/2007/10/jw_flv_player.zip flv播放器下载下来。 使用方法&#xff1a;如果你仅需要播放一个FLV文件[例如“video.flv”],那么只要把“video.flv”和压缩包内的flvplayer.swf复制到同一个目录内,然后在页面内添加 程序代码 <objec…

[转]double free or corruption (!prev): 0x080644c8 ***

写了一个多线程的代码&#xff0c;在主线程中申请了一块内存&#xff0c;在另一个线程中释放内存&#xff0c;老出错误&#xff0c;不知道是怎么回事。 *** glibc detected *** /home/ydx/vehicle-program/vehicle-v1.0/t: double free or corruption (!prev): 0x080644c8 *** …

[收藏]iframe的WPO优化技巧

为什么80%的码农都做不了架构师&#xff1f;>>> http://www.webusability.cn/howto-wpo-for-iframe-460/ 转载于:https://my.oschina.net/leeoo/blog/39101

写在新年伊始

快过年了&#xff0c;今天一个人在家折腾了一天&#xff0c;打扫屋子&#xff0c;现在刚刚坐下来。遂燃起一支烟&#xff0c;泡上一杯北京人都喜欢的花茶&#xff0c;放上一张CD&#xff0c;享受一下。 很久没有写过东西了&#xff0c;博客也很久没有写了。在这新旧交替的时刻&…

ZOOKEEPER启动遇到显示IT IS PROBABLY NOT RUNNING的众多问题解决

加粗样式 ZOOKEEPER启动遇到显示IT IS PROBABLY NOT RUNNING的问题解决 本人是启动三台虚拟机分别是hadoop01&#xff0c;hadoop02,hadoop03&#xff0c;我在主节点启动zookeeper的zkServer.sh start服务后&#xff0c;在通过status查看其状态&#xff0c;发现第三台hadoop03节…