1. 程式人生 > 其它 >IO流的序列化和反序列化

IO流的序列化和反序列化

強制轉換

按位元組大小從低到高→ byte,short,char→int→long→float→double 不同型別的資料先轉換為同一型別,再進行計算

強制轉換 高→低

public class Annotation {
   public static void main(String[] args) {
       int name1 = 128;
       byte name2 = (byte)name1;//記憶體溢位,byte最大127,最小-128
       System.out.println(name1);
       System.out.println((int)name2);
       //強制轉換 (型別)變數名
  }
}

執行結果:

128
-128

 

自動轉換 低→高

public class Annotation {
   public static void main(String[] args) {
       int name1 = 128;
       double name2 = name1;
       System.out.println(name1);
       System.out.println((int)name2);
  }
}

執行結果:

128
128

注意

  1. 不能對布林值進行轉換

  2. 轉換的時候可能會出現記憶體溢位,或者精度問題

public class Annotation {
   public static void main(String[] args) {
       double num1 = -1.33;
       double num2 = 12.33;
       System.out.println((int)num1);
       System.out.println((int)num2);
  }
}

輸出結果:

-1
12
  1. jdk7新特性:數字之間可以用下滑線分割,用較大的數就更方便了

public class Annotation {
   public static void main(String[] args) {
       int num1 = 1_0000_0000_0;
       System.out.println((int)num1);
  }
}

輸出結果:

1000000000
  1. 使用long型別,儘量用L不要用l,l跟1就太像了