java运算符类型_Java运算符

Java运算符

一、运算符分类

分隔符

. ,()

++,--,instanceof,!(逻辑非)

算术运算符

*,/,%,+,-

移位运算符

>>,<>>

关系运算符

>,>=,

按位运算符

&,^,|,~

逻辑运算符

&&,||

条件运算符

?:

字符串连接符

+

赋值运算符

=,+=,-=,*=,/=,%=

二、算术运算符

(1)一元运算符

a++:先使用变量a后再自增。

++a:变量a先自增后再使用。

public classTestOperator {public static voidmain(String args[]) {int x = 10;int y = x++;int z = ++y;

System.out.printf("%d %d %d", x, y, z); //11 11 11

}

}

(2)二元运算符

1. 整数运算

操作数只要有Long类型,结果为Long类型,否则结果为int类型。

2. 浮点运算

操作数只要有double类型,结果为double类型,否则为float类型。

3. 取模运算

操作数可为浮点型,但一般为整型。

余数的符号与第一操作数相同。

importsy.GetType;public classTestOperator {public static voidmain(String args[]) {

GetType get= newGetType();short a = 10;int b = 100;

Long c= 3000000000L;

System.out.println("Type(a + b) = " + get.getType(a + b)); //java.lang.Integer

System.out.println("Type(b + c) = " + get.getType(b + c)); //java.lang.Long

double d = 3.14;float e = 0.1f;float f = 3.14f;

System.out.println("Type(e + f) = " + get.getType(e + f)); //java.lang.Float

System.out.println("Type(e + d) = " + get.getType(e + d)); //java.lang.Double

System.out.println("10%3 = " + 10%3); //1

System.out.println("10%(-3) = " + 10%(-3)); //1

System.out.println("-10%3 = " + -10%3); //-1

}

三、赋值运算符

public classTestOperator {public static voidmain(String args[]) {int a = 200;int b = 320;

System.out.printf("a + b = %d\n", a += b); //520

b += 3*a - 60;

System.out.printf("b = b + (3*a-60) = %d\n", b); //1820

}

}

四、关系运算符

这里少见的就是instanceof运算符:A instanceof B,这是判断对象A是否属于类B,返回值为boolean类型。

public classTestOperator {public static voidmain(String args[]) {

Integer a= 233;

System.out.println(ainstanceof Integer); //true

}

}

五、逻辑运算符

需要注意的是:逻辑运算符的两个操作数必须为boolean类型。

逻辑与

&

两个操作数都为true才返回true;否则为false

逻辑或

|

两个操作数都为false才返回false;否则为true

逻辑非

!

取反:!true==false, !false==true

逻辑异或

^

两个操作数不同为true,相同为false

短路与

&&

两个操作数只要有false则为false

短路或

||

两个操作数只要有true则为true

逻辑(与/或)和短路(与/或)的区别是:逻辑必须处理两个操作数的值,而短路视情况而定。如短路或:只要第一个操作数为true,不需要处理第二个操作数。

public classTestOperator {public static voidmain(String args[]) {int a = 5;

System.out.print((a>8)&&(8>a--)); //false

System.out.println("\ta = " + a); //5

a = 5;

System.out.print((a>8)&(8>a--)); //false

System.out.println("\ta = " + a); //4

a = 5;

System.out.println(!((a>a--)^(8>++a))); //false

}

}

六、位运算符

需要注意的是:位运算符的两个操作数为二进制的数字。

按位与

&

两个数字都为1才返回1,否则为0

按位或

|

两个数字都为0才返回0,否则为1

取反

~

!0==1, !1==0

按位异或

^

两个数字不同为1,相同为0

左移运算符

<<

左移1位,相当于乘2

右移运算符

>>

右移1位,相当于除2

public classTestOperator {public static voidmain(String args[]) {int a = 7; //0111

int b = 9; //1001

System.out.printf("a&b = %d\n", a&b); //0001 == 1

System.out.printf("a|b = %d\n", a|b); //1111 == 15

System.out.printf("a^b = %d\n", a^b); //1110 == 14

System.out.printf(" ~a = %d\n", ~a); //1000 == -8

}

}

七、条件运算符

语法格式:y = Ex ? a : b;

含义:Ex为boolean类型的表达式,若为true则返回a的值,否则返回b的值。

public classTestOperator {public static voidmain(String args[]) {float p_gift = 0.01f;

System.out.print("恭喜你获得《");

System.out.print(p_gift<0.1?"敲一天代码":"睡一天懒觉");

System.out.print("》大礼包!");

}

}

八、字符串连接符

运算符+两侧的操作数只要有1个为String类型,系统会自动将另一个操作数转换为String类型,然后进行拼接。

public classTestOperator {public static voidmain(String args[]) {

System.out.println(76 + 4); //80

System.out.println(76 + '4'); //128 《'4'不是String类型》

System.out.println(76 + "4"); //764

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值