Java中的操作符

java中的操作符(operator)
1)赋值操作符:
= 例如: int x=0,i=1,j=1;
= 例如: a=b 等价于 a=a*b
/= 例如: a/=b 等价于 a=a/b;
%= 例如: a%=b 等价于 a=a%b;
+= 例如: a+=b 等价于 a=a+b;
-= 例如: a-=b 等价于 a=a-b;
其他的都是类似情况

	a+=1; a++
	特殊情况:i++ 和 ++i
	i++表示先使用i的值,然后再让i自增1。
	++i表示先让i的值自增1,然后再使用i的值。
	例如:
		int a = 1;
		System.out.println(a++);//1
		System.out.println(a);//2
	---------------------------------
		int b = 1;
		System.out.println(++b);//2
		System.out.println(b);//2

	
	类似的i-- 和 --i也是一样的区别



2)比较操作符
	>   :   大于
	>=  :   大于等于
	<   :   小于
	<=  :   小于等于

	注意:以上操作符只适用于整数类型和浮点数类型;

	int a=1,b=1;
	double d=1.0;
	System.out.println(a>b);//false
	System.out.println(a<b);//false
	System.out.println(a>=d);//true
	System.out.println(a<=b);//true

	instanceof: 判断一个引用类型变量所指向的对象是不是属于某个类型。
		Student s = new Student();
		System.out.println(s instanceof Object);//true
		System.out.println(s instanceof Student);//true
		//编译报错,因为Student类型和String没有任何子父类关系
		System.out.println(s instanceof String);

		注意:最终判断的是s所指向对象的类型是不是属于某类型,而不是判断变量s的类型是不是属于某个类型.
		例如:
			Object o = new Student();
			变量o的类型是Object,但是o指向的对象类是Studnet.可以这样写的原因是因为Object是Studnet的父类.这是java的高级特性"多态"的一种表现方式。


3)相等操作符                     
	==  :   判断俩个数据 是否 等于
	!=  :   判断俩个数据 是否 不等于

	既可以应用在基本类型的比较,也可以应用在引用类型的比较

	a.基本类型:
		int a=1,b=1; 
		float c=1.0f;
		double d=1.0;
		
		//比较的是俩个基本类型数据的值是否相等
		System.out.println(a==b);        //输出true;
		System.out.println(a==c);        //输出true;
		System.out.println(a==d);        //输出true;
		System.out.println(c==d);        //输出true;

	b.引用类型:
		这两个引用变量必须都引用同一个对象,结果才为true.
		Student s1 = new Student("zs",25,100);
		Student s2 = new Student("zs",25,100);
		//s1中存储的对象内存地址赋给变量s3
		Student s3 = s1;
		
		//比较俩个引用所指向对象的堆区内存地址是否一样
		//俩个对象的内存地址一样相比较才会是true
		System.out.println(s1 == s2);    //输出false;
		System.out.println(s1 == s3);    //输出true;

4)相加操作符 
	+   :   数据类型值相加或字符串连接

		a.数据类型值相加
			int    a=1+2;   //a值为3;
			double b=1+2;   //b值为3.0;   
			double b=1+2.0; //c值为3.0;

		b.字符串连接
			System.out.println(1+2+"a");  //输出3a
			System.out.println(1+2.0+"a");//输出3.0a
			System.out.println(1+2.0+"a"+true);//输出3.0atrue
			System.out.println("a"+1+2); //输出a12
			System.out.println(1+"a"+2); //输出1a2

	/   :   整除, 如操作数均为整数,运算结果为商的整数部分
		int a1=12/5;		//2
		int a2=13/5;		//2
		int a3=-12/5;		//-2
		int a4=-13/5;		//-2
		int a5=1/5;			//0
		double a6=12/5;		//2.0
		double a7=12/5.0;	//2.4   

	%   :   取模操作符, 如操作数均为整数,运算结果为商的整数部分
		int a1=1%5;			//1
		int a2=13%5;		//3
		double a3=1%5;		//1.0
		double a4=12%5.1;	//1.8000000000000007


5)移位运算符:二进制的运算

int a = -12;
内存中保存的
原码
00000000 00000000 00000000 00001100
取反
11111111 11111111 11111111 11110011
+1
11111111 11111111 11111111 11110100
右移两位 >>2
11111111 11111111 11111111 11111101
-1 
11111111 11111111 11111111 11111100
取反
00000000 00000000 00000000 00000011
=3 ---> -3

不带符号的右移两位。>>>2
00111111 11111111 11111111 11111101
=

<<:左移
>>:带符号右移,算术右移
>>>:无符号右移,逻辑右移

步骤:
	1、遇到移位操作符,首先将数字转换为二进制的表示形式(补码)
	2、再考虑是左移还是右移
	3、再考虑补0还是补1

6)位运算操作符  
	& 与运算
		1&1->1, 1&0->0, 0&1->0, 0&0->0;   
	| 或运算
		1|1->1, 1|0->1, 0|1->1, 0|0->0;
	^ 异或运算
		1^1->0, 0^0->0,1^0->1, 0^1->1; 
		相同为0 不同为1  
		运算特点: a^0=a; a^a=0;
	~ 取反运算
		~1->0, ~0->1;

7)逻辑操作符
	短路操作符,如果能根据操作左边的布尔表达式就能推算出整个表达式的布尔值,将不执行操作符右边的布尔表达式;
	
	短路与
	&& 左边的布尔表达式的值为false, 整个表达式值肯定为false, 此时会忽略执行右边的布尔表达式。
		false&&true
		int a = 1;
		int b = 2;
		int c = 3;
		a>b&&c>b

		//没有短路功能
		a>b&c>b


	
	短路或
	|| 左边的布尔表达式的值为true, 整个表达式值肯定为true, 此时会忽略执行右边的布尔表达式。  
	
	注意:&和&&的区别是什么? |和||的区别是什么?

8)三目运算
	形式:
		布尔表达式 ? 表达式1 : 表达式2;

		如果上面布尔表达式的值为true, 就返回表达式1的值, 否则返回表达式2的值。

	例如:
		int score = 61;
		String result = (score>=60?"及格":"不及格"); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值