JAVA初体验-运算符

运算符

操作数:运算符左右两边的数据
表达式:运算符及其左右的操作数组成的整体	例如:a+b
语句:“;”是一个语句的结束

1.1算术运算符

+ - * / % ++ --
	+:加号
		1)正号
		2)加法运算符
		3)连接符
	++、--:自增与自减
		只影响操作数本身,不影响其他结果
		
		使用:
			1)先调用,再自增或自减。操作数在运算符之前
				a++
			2)先自增或自减,再参与运算。操作数在运算符之后
				++a
int a = 1;
int b = a++ + 1;//b=2,a=2
int b1 = ++a + 1;//b1=3,a=2

1.2赋值运算符

	= 是基本的赋值运算符,唯一自右向左的运算符。
	扩展赋值运算符:
		+= -= *= /=
		a +=1;  -->a = a+1;
		优点:1.提高执行效率
			 2.自动强制转换类型
		缺点:不直观
注意 : 编译期间编译器会自动把代码适当优化成扩展赋值运算符的写法,推荐使用扩展赋值运算符
public class Test01 {
    public static void main(String[] args) {
        int a = 2;
        int b = 4;
        b += 1; //b = b+1
        System.out.println("a="+a);
        System.out.println("b="+b);
        //分隔
        System.out.println("----------------------");

        //+与整数连接时作为运算符,+与字符串连接时作为连接符,运算顺序从左至右
        System.out.println("hello");
        System.out.println('a'+1+"hello");//97 + 1 + "hello"
        System.out.println("hello"+'a'+1);//"hello" + a + 1
    }
}

1.3逻辑运算符

操作数只能为boolean类型(值,值为boolean结果的表达式)
	&	与		一个为false,结果为false;两个都为true,结果为true
	|	或		一个为true,结果为true;两个都为false,结果为false
	!	非		取反
	^	异或		相同为false,不同为true
	
短路运算符:如果运算符左边为true,则右边不执行。
	&&	一个为false,结果为false;两个都为true,结果为true
	||	一个为true,结果为true;两个都为false,结果才为false

注意:推荐使用短路运算符

public static void main(String[] args) {
//&运算
        System.out.println(true&true);//true
        System.out.println(true&false);//false
        System.out.println(false&true);//false
        System.out.println(false&false);//false
        System.out.println("-----------------------");

        //|运算
        System.out.println(true|true);//true
        System.out.println(true|false);//true
        System.out.println(false|true);//true
        System.out.println(false|false);//false
        System.out.println("-----------------------");

        //!运算   取反
        System.out.println(!true);//false
        System.out.println(!false);//true
        System.out.println("-----------------------");

        //^运算   异或 相同为false ,不同为true
        System.out.println(true^true);//false
        System.out.println(true^false);//true
        System.out.println(false^true);//true
        System.out.println(false^false);//false
        System.out.println("-----------------------");

        //短路运算  &&  一个为false结果为false,两个都为true,结果为true
        System.out.println(true&&true);//true
        System.out.println(true&&false);//false
        System.out.println(false&&true);//false
        System.out.println(false&&false);//false
        System.out.println("-----------------------");

        //||运算      一个为true,就是true,两个为false,结果才是false
        System.out.println(true||true);//true
        System.out.println(true||false);//true
        System.out.println(false||true);//true
        System.out.println(false||false);//false
        System.out.println("-----------------------");

    }

1.4条件运算符

	语法:boolean表达式 ? 值1 :值2;
	执行过程:1)先执行boolean表达式,得到结果
			 2)结果为true,取值1;为false,取值2
    public static void main(String[] args){
        int a = 3;
        int b = 5;
        int c = a > b ? a : b;
        System.out.println(c);//取值2,结果为5

        //比较三个数的大小,取最大值
        int c1 = 8;
        int max = a>b && a>c ? a : b>c1 ? b : c1;
        System.out.println(max);
    }
}

1.5关系运算符

> < >= <=
    只能比较byte,short,int ,long ,float,double,char

 	== !=
    可以比较任意类型数据

	结果都为boolean的值,true代表正,相等,满足,false,不满足,不相等,负
public class Test03 {
    public static void main(String[] args){
        System.out.println("张三"=="李四");//false

        char ch = 'a';//ASCII中,a = 97
        System.out.println(ch >= 'a');//true
        System.out.println(ch <= 90);//false
    }
}

1.6位运算符

运算时,先将十进制转换为二进制,再运算
	&	对两个操作数同一位置的数据进行运算,都为1,才是1
	|	对两个操作数同一位置的数据进行运算,有一个是1,结果为1
	^    对两个操作数同一位置的数据进行运算,   相同为0,不同为1
	左移<<	左边的操作数向左移右边操作数个位数,空位补0		                8<<2等价于8*2^2
	右移>>	左边的操作数向右移右边操作数个位数,移出位置忽略,剩余为二进制结果   8>>2等价于8/2^2
注意 : 如果使用位移运算符比直接对2的次方做乘除效率高,推荐使用。
public static void main(String[] args) {
        System.out.println(3&2);  //2
        System.out.println(3|2);  //3
        System.out.println(3^2);  //1

        System.out.println(8<<2);  //32
        System.out.println(8>>2);  //2

        System.out.println(9>>2);  //2
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值