java基础知识--运算符

package com.test;

public class Demo3 {
	public static void main(String[] args) {
		/*
		 * 运算符: A按照功能分类: 1.算数运算符:+ - * / ++(自增) --(自减) 
		 * 2.赋值运算符:= += -= *= %= /=
		 * 3.关系运算符:== < > <= >= != 
		 * 4.逻辑运算符:&&(与) ||(或) !(非) 
		 * 5.位运算符:直接操作的是位	&(按位与) |(按位或) ^(按位异或) ~(按位取反) 
		 * 6.移位运算符:>>1(右移一位) <<1(左移一位)
		 * B按照运算符操作的元素个数分类 操作一个数:! ++ -- ~ -(负) +(正) 操作两个数:+ - * /
		 * 操作三个数:?:(三目运算符)
		 */

		// * A按照功能分类:
		// * 1.算数运算符:+ - * / ++(自增) --(自减)
		System.out.println(-3 * -2);
		System.out.println(3 / -2);// 计算机中的除法与普通的一致,两个整数相除得到的商是整数,小数相除得到的才是小数
		System.out.println(-3 % -2);// 榆余数的符号与被除数相同
		// ++(自增) --(自减)
		int a = 3, b = 2, c, d;
		c = a++;
		d = ++b;
		System.out.println(a + " " + b + " " + c + " " + d);

		// * 2.赋值运算符:= += -= *= %= /=
		int w = 4, y = 4;// =是右结合性,优先级最低,最后算
		y += 3;// y=y+3, 注意:一个变量在定义之后,必须先赋值再使用
		// 实例:
		int n = 2, m = 3, x, z = 1;
		x = n++ - --m + (z++ - n--);
		// 求x,n,m,z的值
		System.out.println(x + " " + n + " " + m + " " + z);
		/*
		 * 题目分析: 先考虑优先级,在考虑结合性,先考虑优先级低的运算符, 使用排除法, 符合条件的优先级高的运算符找出来,再运算
		 * 
		 * 1.先考虑=号,使用排除法,根据右结合性,去算=的右边 2.判断-+号,优先级最低并且相同,是左结合性 3.先算n++ 得n=3
		 * ,n++=2 4.--m 得m=2 ,--m=2 5.算() (1-3) ,z=2 n=2 6.算-+号 2-2+(1-3) 7.算=
		 * 得=-2
		 */

		// * 3.关系运算符:== < > <= >= !=
		// 特点:结果只有ture/false
		System.out.println(2 > 3);
		System.out.println(2 == 3);

		// * 4.逻辑运算符:&&(与) ||(或) !(非)
		// 特点:结果只有两个,ture/flase
		System.out.println(2 > 3 && 2 < 3);
		/*
		 * &&(与):全真则真,一假则假 ||(或):全假则假,一整真则真 !(非):真则假,假则真
		 * 
		 * 短路与:当多个&&连接的时候,从左往右运算的时候,只要有一个假,就停止运算,结果为假
		 * 短路或:当多个||连接的时候,从左往右运算的时候,只要有一个真,就停止运算,结果为真
		 */

		// 短路与注意点演示:问:运算结束,q的值是多少?

		int q = 1;
		boolean isture = 2 < 3 && 3 > 4 && 2 > 3 || q++ < 3;
		System.out.println(isture + "  " + q);

		// 为什么使用位运算符? 原因:速度快效率高,因为直接操作的是二进制
		// * 5.位运算符:直接操作的是位
		// &(按位与) :全1则1,有0则0
		// |(按位或) :全0则0,有1则1
		// ^(按位异或) :运算的当前结果是0,不同结果是1
		// ~(按位取反):0就是1,1就是0

		// 交换两个数的值
		// 方法一:借助于三方变量
		int k1 = 3, k2 = 4, temp;
		// temp=k1;
		// k1=k2;
		// k2=temp;

		// 方法二:使用^运算,好处:不需要三方变量
		k1 = k1 ^ k2;
		k2 = k1 ^ k2;
		k1 = k1 ^ k2;
		System.out.println(k1 + " " + k2);
		// * 6.移位运算符:>>1(右移一位):除以2; <<1(左移一位):乘以2; >>>1(无符号右移一位)

		// * B按照运算符操作的元素个数分类
		// *操作一个数:! ++ -- ~ -(负) +(正)
		// *操作两个数:+ - * /
		// *操作三个数:?:(三目运算符)
		// 表达式:由运算符和变量组成的式子
		// 语句:表达式+; 特殊:只写;也叫语句--空语句
		// *操作三个数:?:(三目运算符) 表达式一 < 表达式二 ? 变量1 : 变量2
		System.out.println(2 > 3 ? 2 : 3);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值