位运算符
算术运算符
+ - *(乘) /(除) %(取余,模运算) +(连接符)
+(连接符):
例1:
class DemoFn
{
public static void main(String[] args){
System.out.println("5+5="+5+5);//结果5+5=55
}
class DemoFn1
{
public static void main(String[] args){
int a=5,b=6;{
System.out.println("a="a+a",b="+b);//结果是a=5,b=6.
}
}
}
++ --
++ (自增):就是在原有数据基础上+1,在赋给原有数据。
例1:
class DemoFn2
{
public static void main(String[] args){
int a=3;
++a;{
System.out.println("a="+a);//结果a=4;
}
}
}
例2:
class DemoFn3
{
public static vodi main(String[] args){
int a=3,b;
b=a++;{
System.out.println("a="+a+",b="+b);//结果a=4,b=3;
}
}
}
赋值运算符:
= += -= *= /= %=
特点:
+=:将左右两边的和赋给左边
-=:将左右两边的差赋给左边
*=将左右两边的积赋给左边
/=将左右两边的商赋给左边
%=将左右两边的余数赋给左边
面试题:
class DemoFn4
{
public static void main(String[] args){
short s =3;
s+=4;——>这个在底层做了自动转换。
{
System.out.println("s="+s)" ;
}
}
}
class DemoFn4
{ public static void main(String[] args){
short s=3;
s=s+4;
//这个叫两次运算,这样不行。
//改成这样就可以s=(short)(s+4);
{
System.out.println("s="+s);
}
}
}
答:一个编译通过,一个编译失败。失败的原因是他进行了自动类型的提升,类型
已经不能赋给第一空间类型。因为会出现精度丢失。s+=4,为什么他可以,因为他
在底层做了自动转换。