小白从零开始学习大数据第三天

day03

1.算术运算符

​ 算术运算符的运算遵循四则运算规律

​ 先算小括号

​ 再算乘除

​ 最后算加减

  • 加号的用法

    • + 号的几种作用

      • 1.加法运算
      • 2.表示正数
      • 3.字符串连接
    • 代码演示:

      • class HelloWorld {
        	public static void main(String[] arge){
        		System.out.println("hello world");
        		int a = 10;
        		int b = 3;
        
        		//int c = a + b;
        		a = a + b;
        
        		//System.out.println(a + b);
        		System.out.println(a);
        		
        		String s = "hello";
        		String s1 = "world";
        
        		System.out.println(s +"~"+ s1);
        
        		int c = 30;
        		String s2 = "=";
        		int d = 10;
        		int f = 20;
        		//30 = 10 + 20;
        		
        		System.out.println(c+" "+s2+" "+d+" + "+f+";");//30=1020
        	} 
        
        }
        
  • 减号的用法

    • - 号的几种作用
      • 1.减法运算
      • 2.表示负数
  • 乘号的用法

    • ***的作用

      • 乘法运算

      代码演示:

      class HelloWorld {
      	public static void main(String[] arge){
      		// -  *   /
      		int a = 10;
      		int b = 3;
      
      		a = a - b;
      		System.out.println(-a);
      
      		System.out.println((float)(a * b));
      		System.out.println(a * b * 1.0);
      
      
      	}
      
      }
      
  • 除法的用法

    • */*的作用

      • 除法运算
    • 代码演示:

      • class HelloWorld {
        	public static void main(String[] arge){
        		// -  *   /
        		int a = 10;
        		int b = 3;
        
        		int c = a / b;
        
        		System.out.println(c);//3.333333333
        		System.out.println(a / b);
        		System.out.println(a * 1.0 / b);
        		System.out.println(a  / b * 1.0);
        	}
        
        }
        
  • 什么是取余

    • *%*这个符号就是取余数

      • 两个整数相除,肯定有余数,这个运算符就是为了求出余数
    • 代码演示:

      • class HelloWorld {
        	public static void main(String[] arge){
        		// %  模与运算   取余运算
        		//求出两个整数相除之后的余数
        		int a = 10;
        		int b = 3;
        
        		System.out.println(a % b);
        
        		
        	}
        
        }
        
  • 自增

    • *++*这个符号是个自增符号
      • 自增是指在本身的数据基础上加1;
  • 自减

    • *–*这个符号是个自减符号

      • 自减是指在本身的数据基础上减1;
    • class HelloWorld {
      	public static void main(String[] arge){
      		// ++:自增运算符   --:自减运算符
      		int a = 10;
      		//当++单独使用的时候,前++和后++没有区别,都能使数据本身自增1
      		++a;
      		System.out.println(a);
      
      		//但是当++一旦参与运算,那么前++和后++就有了区别
      		//前++   ++a:参与运算时   先自增  然后再去参与运算
      		//后++   a++:参与运算时   先运算  然后再去自增
      		// 小括号也算运算符
      		//int b = 3;
      		//int c = 5;
      		//int d = c + b++;
      		//System.out.println(d);
      		//System.out.println(b);
      
      		int b = 3;
      		int c = 5;
      		int d = c + ++b;
      		System.out.println(d);
      		System.out.println(b);
      		
      	}
      
      }
      
  • */%*的区别

    • 一个是除数运算
    • 一个数取余数运算
  • ++和–的一些注意事项

    • 单独使用时
    • 参与运算时:
      • 需要注意的是:小括号也算是运算的一部分
  • 练习题:

    • //1:基本小题目
      	int a = 10;
      	int b = 10;
      	int c = 10;
      
      	a = b++;
      	c = --a;
      	b = ++a;
      	a = c--;
      	//请分别计算出a,b,c的值
      
      
      //2:比较复杂的题目
      int a = 4;
      int b = (a++)+(++a)+(a*10);
      
      

2.赋值运算符 **

  • = , += ,-=, *= , /=, %= 这些都是赋值运算符

  • 其中=是基本的赋值运算符 其他都为扩展的赋值运算符

  • += 运算符:是将左右两边的值进行相加然后赋值给左边

  • 练习题:

    • int a,b;
      a = b = 10;
      System.out.println(a);
      System.out.println(b);
      
      int a = 10;
      a += 20;
      System.out.println(a);
      
  • 面试题:

    • short s=1;
      s = s+1; 
      
      short s=1;
      s+=1;
      //这几行代码会不会有问题,如果有问题,是哪里出现的问题
      //使用+=符号可以避免类型的强转
      

3.关系运算符 ***

​ 比较运算符的结果都是boolean类型,也就是说,要不是true,要不是false

  • ==:判断左右两边是否相等
    • 注意事项:千万不能写成 = ,他们两个没有任何联系
  • != :判断左右两边是否不相等
    • 如果左右两边相同,返回false
    • 如果左右两边不同,返回true
  • <或者<= :判断左边是否小于等于右边
    • 如果左边小于右边,那么返回值为true
    • 如果左边大于右边,那么返回值为false
  • > 或者>=:判断左边是否大于等于右边
    • 如果左边大于右边,那么返回值为true
    • 如果左边小于右边,那么返回值为false
  • instanceof :检查是否是该类的一个实例
class HelloWorld {
	public static void main(String[] arge){
		//== != < <= > >=

		int a = 3;
		int b = 5;

//		判断a和b是否相等,如果相等  返回true  如果不等  返回false
		boolean bo = (a == b);//false

		//判断a和b是否不等  如果不等  返回true   如果相等  返回false
		boolean b1 = (a != b);//true

		//小于  小于等于
		boolean b2 = (a <= b);//true

		//大于  大于等于
		boolean b3 = (a >= b);//false

		System.out.println(bo);
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);

		//instanceof  判断你是否是我的一个实例
		String s = "hello";
		System.out.println(s instanceof String);//true
		System.out.println(a instanceof String);//false
	}

}
  • 练习题:

    class HelloWorld {
    	public static void main(String[] arge){
    
    		int a = 5;
    		int b = 3;
    		//1:注意2的时候举例
    		System.out.println(a==b);//false
    		System.out.println(a=b);//3
    
    
    		//2:赋值的时候要注意类型问题
    		int x = 10;
    		int y = 10;
    		boolean flag = (x == y);//true
    		//boolean flag1 = (x = y);//会报错
    		System.out.println(flag);
    
    		boolean b1 = true;
    		boolean b2 = false;
    		boolean b3 = (b1 == b2);//false
    		boolean b4 = (b1 = b2);//false
    		
    		System.out.println(b3);
    		System.out.println(b4);
    		
    	}
    
    }
    
    

4.逻辑运算符 ***

  • &:与符号(and)

    • 两边都是true,结果才为true,只要&两边出现一个false,那么结果就位false

      class HelloWorld {
      	public static void main(String[] arge){
      	//逻辑运算符的书写格式:   表达式1 & 表达式2
      		System.out.println(true & true);//true
      		System.out.println(true & false);//false
      		System.out.println(false & true);//false
      		System.out.println(false & false);//false
      
      		int a = 10;
      		int b = 5;
      		int c = 6;
      
      		System.out.println(a > c & c > b);//true & true
      		System.out.println(a > c & c < b);//true & false
      		System.out.println(a < c & c < b);//false & false
      		System.out.println(a < c & c > b);//false & true
      		
      	}
      
      }
      
  • | :或符号(or)

    • 两边都是false,结果才是false,两天只要有一个为true,那么结果就是true

      class HelloWorld {
      	public static void main(String[] arge){
      	//逻辑运算符的书写格式:   表达式1 | 表达式2
      		System.out.println(true | true);//true
      		System.out.println(true | false);//true
      		System.out.println(false | true);//true
      		System.out.println(false | false);//false
      
      		int a = 10;
      		int b = 5;
      		int c = 6;
      		
      		System.out.println(a > c | c > b);//true | true
      		System.out.println(a > c | c < b);//true | false
      		System.out.println(a < c | c < b);//false |  false
      		System.out.println(a < c | c > b);//false | true
      		
      	}
      
      }
      
  • ^ :异或符号(xor)

    • ^符号 两边boolean值相同的情况下,结果为false

      两边boolean值不同的情况下,结果为true

      class HelloWorld {
      	public static void main(String[] arge){
      	//逻辑运算符的书写格式:   表达式1 ^ 表达式2
      		System.out.println(true ^ true);// false
      		System.out.println(true ^ false);// true
      		System.out.println(false ^ true);// true
      		System.out.println(false ^ false);// false
      
      		int a = 10;
      		int b = 5;
      		int c = 6;
      		
      		System.out.println(a > c ^ c > b);//true ^ true   false
      		System.out.println(a > c ^ c < b);//true ^ false  true
      		System.out.println(a < c ^ c < b);//false ^  false  false
      		System.out.println(a < c ^ c > b);//false ^ true  true
      		
      	}
      
      }
      
  • ! :非符号(not)

    • !true表示false

    • !false表示true

      class HelloWorld {
      	public static void main(String[] arge){
      	// ! 就是not意思   相反
      		System.out.println(!true);
      		System.out.println(!false);
      		
      	}
      
      }
      
  • && :双与或者叫做短路与(and)

    • 两边都是true,结果才为true
  • || :双或或者叫做短路或(or)

    • 两边都为false,结果才为false
    class HelloWorld {
    	public static void main(String[] arge){
    		//&&:短路与   ||:短路或
    		//&            |
    		//&:只有两边都为true   结果才为true  只要有一边为false,结果就是false
    		//&&:只要&&左边的表达式结果为false,那么右边的表达式就不再参与运算
    		System.out.println(true && true);//true
    		System.out.println(true && false);//false
    		System.out.println(false && true);//false
    		System.out.println(false && false);//fasle
    
    		//||:只要||左边的表达式结果为true,那么右边的表达式就不再参与运算
    		System.out.println(true || true);//true
    		System.out.println(true || false);//true
    		System.out.println(false || true);//true
    		System.out.println(false || false);//fasle
    
    	}
    
    }
    

逻辑运算符的左右两边一般情况下都是布尔类型的表达式

  • 注意事项:

    • 在java中不支持 3>x >1这种写法,这种写法java是不能解析的
    • 所以针对上面情况,我们应该将表达式修改为3 > x && x > 1,
  • &和&&的区别:

  • |和||的区别:

    • //&&,||和&以及|的区别
      	//结果相同,但是有短路效果,一般建议使用&&,||
      
      	int x = 3;int y =4;
      	System.out.println((x++ > 3) & (y++ > 4));
      	System.out.println(x);
      	System.out.println(y);
      
      	System.out.println((x++ > 3) && (y++ > 4));
      	System.out.println(x);
      	System.out.println(y);
      
      	System.out.println((++x > 3) | (++y > 4));
      	System.out.println(x);
      	System.out.println(y);
      
      	System.out.println((++x > 3) || (++y > 4));
      	System.out.println(x);
      	System.out.println(y);
      
      

5.位运算符

  • >>:右移符号

    • 将值转为二进制以后,开始移位
      • 如果高位为0,那么移位以后的空位也补0
      • 如果高位为1,那么移位以后的空位补1
  • <<:左移符号

    • 将值转为二进制以后,开始左移,空位补0
  • >>>:无符号右移

    • 将值转为二进制以后,开始移位,不管高位是0还是1,都补0

    总结:向右移几位,就是除以2的几次方

    ​ 向左移几位,就是乘以2的几次方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值