类型转换

强制转换
public class Demo04 {
   public static void main(String[] args) {
       int i = 128;
       byte b = (byte) i; //强制转换   //内存溢出,byte: -128~127

       //强制转换 (类型)变量名 高--低
       System.out.println(b);
  }
}

 

自动转换
public class Demo04 {
   public static void main(String[] args) {
       int i = 128;
       
       double k =  i;  //自动转换
       //自动转换       低--高
       System.out.println(k);
  }
}

 

转换扩展
public class Demo04 {
   public static void main(String[] args) {
         /*
       1. 不能对布尔值进行转换
       2. 不能把对象类型转化为不相干的类型
       3. 在把高容量转换到低容量的时候,需要强制转换,反之不用
       4. 转换的时候可能存在内存溢出,或者精度问题!
        */
       
       System.out.println((int)23.5);  // 23   精度出问题
       System.out.println((int)-45.88f); // 45 精度出问题

       char c = 'a'; // 97
       int  d =  c+1;
       System.out.println(d); // 98
       System.out.println((char) d);// b


  }
}

 

public class Demo05 {
   public static void main(String[] args) {
       //操作比较大的数的时候,注意溢出问题!
       //数字之间可以用下划线分割
       int money = 10_0000_0000;
       int years = 20;  //年数
       int total = money * years; //-1474836480,计算的时候溢出了
       System.out.println(total);

       long total2 = money * years; //默认是int,转换之前已经存在问题了
       System.out.println(total2);

       long total3 =money * ((long)years); //先把一个数转换为long
       System.out.println(total3);

  }
}

 

 

posted @ 2022-01-05 22:11  小瑭  阅读(15)  评论(0编辑  收藏  举报