• 数据类型转换&运算符


    基本数据类型注意事项

    • 整型类型:long>int>short>byte
      • java默认类型为int型
        • long a = 123
          表示将int类型的数值赋给更大范围的long类型,当数据超过long类型时,必须声明long变量,且必须加l,声明为改数据为long型
        • long a = 2147483648L
    • 浮点类型:double>float
      • java默认类型为double型
      • 在java中声明float类型
        • 将整数赋值给float型不加F
          float b = 1;
        • 将小数赋给float需要加F
          float b = 1.0;
    • boolean: true 、false

    一、类型自动提升, int 类型与 byte 、short、char类型的运算

    • int = byte+byte
    • int = short+short
    • int = char - int
      • char 跟int对象运算时先转为字节码,如:a---->97

        public class Test1 {

          public static void main(String[] args) {
        
              // 定义两个 byte类型变量
              byte b1 = 10;
              byte b2 = 20;
              // 定义int 类型变量 b3
              int b3 = b1 + b2;
              System.out.println("byte类型b1和b2的和为:");
              System.out.println(b3);
              
              // 定义两个 short类型变量
              short s1 = 1000;
              short s2 = 2000;
              // 定义int 类型变量 b3
              int s3 = s1 + s2;
              System.out.println("short类型s1和s2的和为:");
              System.out.println(s3);
        
              // 定义char类型变量
              char ch1 = 'a';
              // 定义int类型变量
              int i1 = 30;
              // 定义int 类型变量 ch3
              int ch3 = ch1 - i1;
              System.out.println("char类型ch1和int类型i1的差为:");
              System.out.println(ch3);
        	}
        	}	
        

    二、类型自动提升, 浮点型float、double的运算

    • float = long + int

    • long = long +int

    • double = double + int

    • double = float +double

      public class Test2 {
      public static void main(String[] args) {
      // 定义 int类型变量i1 和 long类型变量l1
      int i1 = 100;
      long l1 = 200;
      // 定义变量add,保存i1和l1的和,并输出.
      long add = i1 + l1;
      System.out.println("add 的值:"+add);
      // 定义 long类型变量l2 和 float类型变量f2
      long l2 = 1000000;
      float f2 = 0.45F;

            // 定义变量add2,保存l1和f1的和,并输出.
            float add2 = l2 + f2;
            System.out.println("add2的值:"+add2);
            // 定义 int类型变量i3 和 double类型变量d3
            int i3 = 1000000;
            double d3 = 0.45;
            // 定义变量add3,保存i2和d1的和,并输出.
            double add3 = i3 + d3;
            System.out.println("add3的值:"+add3);
            //定义 float类型变量f2 和 double类型变量d2
            float f4 = 1000000.789F;
            double d4 = 0.45;
            //定义变量add4,保存f2和d2的和,并输出.
            double add4 = f4 + d4;
            System.out.println("add4的值:"+add4);
        }
      

      }

    三、 类型强制转换,由小 ----->大

    • 将int 类型转为char类型
      char = (char)int

    • 将double类型转为int类型
      int = (int)double

      public class Test3 {
      public static void main(String[] args) {
      // 定义char类型变量ch,赋值为'J'
      char ch = 'J';
      // 将变量ch转换为小写'j',并输出
      ch = (char) (ch + 32);
      System.out.println(ch);

                // 定义char类型变量ch2,赋值为'a'
                char ch2 = 'a';
                // 将变量ch2转换为大写'A',并输出
                ch2 -= 32;
                System.out.println(ch2);
      
      
                // 定义double类型变量d3,int类型变量i3
                double d3 = 3.5;
                int i3 = 100;
      
                // 定义变量sum3,保存d3和i3的和,将sum3去除小数部分并输出.
                double sum3 = d3 + i3;
                System.out.println("sum3的的值:" + sum3);
                System.out.println("sum3的整数部分的值:" + (int) sum3);
      
      
                // 定义double类型变量d4,int类型变量i4
                double d4 = 5.8;
                int i4 = 300;
                // 定义int变量mul4,保存d4和i4乘积的整数部分,并输出
                int mul4 = (int) (d4 * i4);
                System.out.println("mul4的整数部分值:"+mul4);
      
            }
      

      }

    四、 % : 取余符号

    public static void main(String[] args) {
              // 定义两个int类型变量a1和a2,分别赋值10,11,判断变量是否为偶数,拼接输出结果
              int a1 = 10;
              int a2 = 11;
              boolean b1 = a1 % 2 == 0;
              boolean b2 = a2 % 2 == 0;
              System.out.println("10是偶数?" + b1);
              System.out.println("11是偶数?" + b2);
              // 定义两个int类型变量a3和a4,分别赋值12,13,判断变量是否为奇数,拼接输出结果
              int a3 = 12;
              int a4 = 13;
              boolean b3 = a3 % 2 == 1;
              boolean b4 = a4 % 2 == 1;
              System.out.println("12是奇数?" + b3);
              System.out.println("13是奇数?" + b4);
        	}
    

    五、++a 和 a++的区别

    • ++a, 先加再做运算
      a = 20
      ++a % 3
      两步运算:

      1. a = a+1 = 21
      2. a % 3 = 21 % 3 =0
    • a++,先运算后加加
      a = 20
      a++ % 7

      1. a % 7 = 20 % 7 ≠ 0
      2. a = a + 1 =21

      public static void main(String[] args) {
      //定义一个int类型变量a,赋值为20.
      int a = 20;
      //定义boolean类型变量bo , 判断++a 是否被3整除,并且a++ 是否被7整除,将结果赋值给bo
      boolean bo = ++a % 3 == 0 && a++ % 7 == 0;
      //输出a的值,bo的值.
      System.out.println("bo的值:" + bo);
      System.out.println("a的值:" + a);
      System.out.println("-------------");
      //定义一个int类型变量b,赋值为20.
      int b = 20;
      //定义boolean类型变量bo2 , 判断b++ 是否被3整除,并且++b 是否被7整除,将结果赋值给bo2
      boolean bo2 = b++ % 3 == 0 && ++b % 7 == 0;
      //输出b的值,bo2的值.
      System.out.println("bo2的值:" + bo2);
      System.out.println("b的值:" + b);
      }

    六、 三元运算符 a>b ? true:false

    • 三元运算符的使用

        表达式 ?表达式成立返回值:表达式不成立返回值
      
         例: a > b ? true : false
      
         如果a > b成立,则返回true, 否则,返回false
      

      public class Test6 {
      public static void main(String[] args) {
      // 在main方法中调用printNum方法
      printNum();
      }

        	    private static void printNum() {
        	
        	//        printNum方法中,定义int变量a赋值为9,b也赋值为9
        	        int a = 9;
        	        int b = 9;
        	
        	//        printNum方法中,定义int变量num赋值为++a.
        	        int num = ++a;
        	//        printNum方法中,定义boolean变量bo,使用三元运算符赋值,当num>=10,赋值为true,否则为false,打印bo的值
        	        boolean bo = (num >= 10) ? true : false;
        	        System.out.println("bo的值"+bo);
        	
        	//        printNum方法中,定义int变量num2赋值为b++.
        	        int num2 = b++;
        	//        printNum方法中,定义boolean变量bo2,使用三元运算符赋值,当num2>=10,赋值为true,否则为false,打印bo2的值
        	        boolean bo2 = (num2 >= 10) ? true : false;
        	        System.out.println("bo2的值"+bo2);
        	    }
        	}
    金麟岂能忍一世平凡 飞上了青天 天下还依然
  • 相关阅读:
    MT【48】分式连加形式下求不等式解集的区间长度
    MT【47】求一道分式的最值
    MT【46】不动点,稳定点几何直观
    MT【45】抛物线外一点作抛物线的切线(尺规作图题)
    MT【44】抛物线不常见性质3
    MT【43】抛物线不常见性质2.
    MT【42】抛物线不常见性质1.
    MT【41】利用不等式妙消参数
    MT【40】一道联赛二试题
    MT【39】构造二次函数证明
  • 原文地址:https://www.cnblogs.com/Auge/p/11609894.html
Copyright © 2020-2023  润新知