2021.9.9(大三备考进厂实习)

本文详细介绍了Java编程中强制类型转换的规则和注意事项,包括整数类型之间的转换可能导致的溢出问题。此外,还讲解了算术、赋值、关系和逻辑运算符的使用,以及自增自减一元运算符的顺序规则。同时,通过示例展示了短路逻辑运算符在条件判断中的应用,并探讨了位运算符如何快速实现数值的翻倍。最后,提到了三元运算符在简化条件判断表达式中的作用。
摘要由CSDN通过智能技术生成

强制转换

int money=10_0000_0000;
int year=20;
int total=money*year;//溢出 -1474836480
System.out.println(total);
long total1=money*year;//在转换前 已经×出结果了 -1474836480
System.out.println(total1);
long total2=(long)money*year;//20000000000
System.out.println(total2);

注意点

  1. 不能对布尔值进行转换

  2. 高到低是强制转换 int a=128; byte b=byte(a); //b=-128

  3. 转换可能溢出和精度出现问题

    变量

    1. 局部变量

    2. 实例变量 从属对象如果不自动初始化 这个类型的默认值

      布尔值是 false

    3. 类变量

    常量

    final

    运算符

    算术运算符+ - * / %(取余) ++ --

    赋值运算符=

    关系运算符< > >= <= == != instanceof

    逻辑运算符 && || !

    int a=10;
            int b=20;
            int c=30;
            int d=40;
    ​
            System.out.println(a+b);
            System.out.println(a-b);
            System.out.println(a*b);
            System.out.println(a/b);// 输出0

    一元运算符 ++ --

     //++ --  自增 自减 一元运算符
            int a =3;
            int b=a++;
            //执行完这行代码后,先给b赋值,然后再自增
            int c=++a;
            //执行完这行代码前,自增,然后再赋值
            System.out.println(a);//输出a=5
            System.out.println(b);//输出b=3
            System.out.println(c);//输出c=5
    int n=7;
    int m=7;
    int o=2*++n;
    int j=2*m++;
    System.out.println(n);//输出n=8
    System.out.println(m);//输出m=8
    System.out.println(o);//输出o=16
    System.out.println(j);//输出j=14

    逻辑运算符

    1. 与(and) 或(or)非(取反)

      boolean a=true;
              boolean b=false;
      ​
              System.out.println("a&&b:"+(a&&b));
              System.out.println("a||b"+(a||b));
              System.out.println("!(a&&b):"+!(a&&b));
             //短路测试
              int c=5;
              boolean d=(c<4)&&(c++<4);
              System.out.println(d);
              System.out.println(c);//输出c=5

      位运算符

      A=0011 1100
      B=0000 1101
      -------------------------
      A&B=0000 1100
      A/B=0011 1101
      A^B=0011 0001相同则为0 不同则为1
      ​
      如何使2*8=16最快 
      <<  *2
      >>  /2
      0000 0000   0
      0000 0001   1
      0000 0010   2
      0000 0011   3
      0000 0100   4
      0000 1000   8
      0001 0000   16
      System.out.print(2<<3);

      三元运算符

      //x? y:z
      //如果x==ture,则结果为y,否者结果为z
      int s=80;
      String type =s>60? "及格":"不及格";
      System.out.println(type);//输出 及格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值