黑马程序员_java运算符

本文深入解析Java运算符的种类及其应用场景,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和三元运算符,并通过实例演示运算符的使用方法。此外,文章还介绍了运算符的优先级、类型转换和Java中的特殊运算符,如转义字符和数字转字符串。最后,总结了Java运算符在实际编程中的重要性和高效应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一、Java运算符
我们把常量存到变量的目的是为了运算,计算机就是处理数据的,它的原理就是运算数据。运算数据就用到了运算符。
运算符有以下几种:
1.算术运算符
这里写图片描述
%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
例题:
下列代码运行的结果是(C )
public static void main(String[] args) {
int x = 4;//定义一个变量x,给它赋值4
int y = 5;//定义一个变量y,给它赋值5
if(x++>4 & ++y>5) {//++在后是先用后加,所以就是4>4,之后4+1=5,这时x=5。++在前是先加后用,
//所以是6>5,y=6。因为&运算符是一边错,就返回0(也就是false)。不执行{}里的语句,所以最后输出结果是C
x++;
}
System.out.println(“x=” + x + “,y=” + y);
}
A. x=4,y=5
B. x=4,y=6
C. x=5,y=6
D. x=8,y=6
运算符演示
在Java 中提供运算功能的就是运算符(Operator),算术运算符有加(+)、减(-)、乘(*)、除(/)这类的运算符。另外还有一个很常用的取模运算符(%)。这类以数学运算为主的运算符称为算术运算符(Arithmetic Operator)。
举几个算数运算的例子:
int a = 5+4; //a=9
int b = a*2; //b=18
int c = b/4; //c=4
int d = b-c; //d=14
int e = -d; //e=-14
int f = e%4; //f=-2
这里简单说一下取模运算符(%),其实就是取除法后的余数,例子中的int f = e%4,就是-14对4取余数,结果为-2。与C、 C++不同,对取模运算符%来说,其操作数可以为浮点数, 如 37.2%10=7.2。
而且,Java对加运算符进行了扩展,使它能够进行字符串的连接,如”abc”+”de”,得到字符串 “abcde”。但是这只是对于字符串连接的简单扩展,字符串并不支持诸如减法的其他运算。有趣的是,字符是支持加法和减法的,其参与运算的是这个字符的ASCII码值。例如b的ASCII码值比a大1,所以(‘b’-‘a’)的结果就是1。
2.赋值运算符
赋值运算符的符号有:=,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=
示例:
int a,b,c; a=b=c=3; int a=3; //这个叫把右边赋给左边 a+=5;(这个叫把左右两边的和赋给左边)等同运算a=a+5;
优点:它会实现数据类型的自动转换。
3.比较运算符
这里写图片描述
instanceof
该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算结果是true,否则是false。
比较运算符的特点:运算完的结果,要么是true,要么是false。
4.逻辑运算符
这里写图片描述
逻辑运算符的值一定为逻辑值(true或false)
&&和||的优点是:节约了判断时间,提高了判断效率。因为它们是只要有一边判断就可以。
5.位运算符
这里写图片描述
位运算是直接对二进制进行运算。
注:当&、|两边是整数时执行的是位运算,而两边是boolean值时执行的就是逻辑运算。
简图:
这里写图片描述
<<:其实就是乘以2的移位的位数次幂

:就是除以2的移位的位数次幂
<<<、>>>:表示无符号左移、无符号右移
:最高位补什么由原有数据的最高位值而定。
如果最高位是0,右移后用0补空位。如果最高位是1,右移后用1补空位。<<同理。

:无论最高位是什么,右移后都用0补。<<<同理。
~:这个用的时候不多,它就是把二进制的0变1,1变0。
^:一个数异或一个数两次,结果还是那个数。如:6^3^3=6
例题:
用最有效率的方法算出2乘以8等于几?
答:2<<3。相当于2*(2*2*2)=16
因为计算机是二进制的,而位运算是直接对二进制进行运算。所以你用位运算是最快的是最小效率的。它是CPU直接执行。
对两个变量的数据进行互换。简图
这里写图片描述
int a = 1,b= 2;
int c;
c = a;
a = b;
b = c;
结果:a = 2,b = 1。
对两个变量的数据进行互换。(不需要第三方变量)
int a = 3,b = 5;
a = a +b;//a = 8
b = a - b;//b = 3
a = a - b;//a = 5
a = a ^ b;
b = a ^ b;//b = a ^ b ^ b = a
a = a ^ b;//a = a ^ b ^ a = b
结果:b = 3,a = 5。
6.三元运算符
三元运算符也是条件运算符
格式:变量 = (条件)?表达式1:表达式2;
规则:先判断条件,若条件为true,则取表达式1的值作为整个条件运算符组成的表达式的值并赋给左边变量。反之,则取表达式2的值赋给左边变量。
例:max = a > b ? a:b;
当a大于b时,则将a的值赋给max; 当a小于b或等于b时,则取b的值赋给max。

二、类型转换
强制和转换
Java语言和解释器限制使用强制和转换,以防止出错导致系统崩溃。整数和浮点数运算符间可以来回强制转换,但整数不能强制转换成数组或对象。对象不能被强制为基本类型。
Java中整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模。

转义字符:通过\来转变后面字母或者符号的含义。
\n:换行 \b:退格,相当于backspace \r:回车 \t:制表符,相当于tab键

数字转成字符串。
String x = 4 + “”;//在数字后加双引号就可以了。
例题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;编译失败,因为s1是short类型,s1+1(s1会被提升为int类型)运算结果是int型,不能赋值给short类型。可修改为s1 =(short)(s1 + 1)//强制转换 。
short s1 = 1; s1 += 1编译通过,因为+=运算符左边给s1赋值时,自动完成了强转操作。
三、运算符优先级
这里写图片描述
如果在程序中,要改变运算顺序,可以使用()来改变。
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值