1. 程式人生 > 其它 >java 基礎資料型別和String型別細節 + 自動轉換 + 強轉

java 基礎資料型別和String型別細節 + 自動轉換 + 強轉

 

java整形浮點型細節

package week01;

public class intDetail {
   public static void main(String[] args) {

       int n1 = 1;
       //int n2 = (int) 1L;
       long n3 = 1L;

       //bit是最小的儲存單元,byte是一個位元組也就是基本儲存單元
       //社會是由人類構成的,但是人類是由細胞構成的
       //以前我總是認為位元組是要相加的,一直沒有改過,啊哈哈,
       byte m1 = 1;
       short m2 = 1;


  }
}
package week01;

public class floatDetail {

   public static void main(String[] args) {
       //浮點數是由符號位 + 指數位 + 尾數位

       //java中浮點數預設是double,如果是float型別 需要加f
       float a = 1.1f;
       double b = 1.5;
       double c = .123;


       //一般不可以用浮點數運算來進行比較
       double d = 2.7;
       double f = 8.1/3;
       System.out.println(d + " " + f);

       //解決辦法
       if(Math.abs(d - f) < 0.00001) System.out.println("相等");
  }

}

java字元型細節

package week01;

public class chatDetail {

   public static void main(String[] args) {

       char c = 97;
       //char a = "8";”“字串型別 ‘’字元型別
       System.out.println(c);

       //在java中char本質的整數,對用的是unicode碼對應的字元
       char c1 = 33889;
       System.out.println(c1);
       char c2 = '葡';
       System.out.println((int)c2);

       //char 可以進行運算的
       System.out.println((char) ('a' + 10));

  }

}

 

boolean型別

boolean不能直接等於0,1只能是true,flase

基本資料型別轉換

自動型別轉換,java中精度小的資料型別可以自動轉化為精度大的資料型別

char - int - long - float - double

byte - short - int-long - float - double

int a = 'c';//OK

細節

package week01;

public class AutoConvert {

   public static void main(String[] args) {
       int num = 'A';
       double a = 80;
       System.out.println(num + " " + a);

       //1.把數字賦值給byte時候,先判斷數字是不是在byte範圍之內
       byte b = 15;
       //2.byte,short 不會和 char 發生轉換
       //char c = b; 錯誤

       //3.byte short char 他們三者在計算的時候首先會轉化為int,
       byte d = 1;
       short f = 1;
       //short e = (d + f);
       int e = d + f;


       byte g = 1;
       //byte k = d + g;同種型別的也不行!!!!!
       int k = d + g;

       //4.boolean 不參與轉換
       //java中boolean true ,flase,一般就作為條件,不會像c++那樣可以是0,1還能參與運算
       boolean l = true;
       //int c = 1 + l;錯

       //5.自動提升原則,轉換成精度最大的

  }

}

 

強制型別轉換

package week01;

public class ForceConvert {

   public static void main(String[] args) {

       //1.並不會變成最大的數字,資料溢位了
       int a = 200000;
       byte b = (byte) a;
       System.out.println(b);

       //2.精度減小
       double c = 1.1;
       int d = (int) c;
       System.out.println(d);

       //3.強轉()就近原則
       //int f = (int)3.5 * 6 * 3.2;只是把3.5轉換成3了並沒有把3.2轉換所以還是double型別
       int f = (int)(3.5 * 6 * 3.2);
       System.out.println(f);

       //4.char型別可以儲存int常數值,但不能儲存int變數值,只能強轉!
       char g =100;
       int k = 100;
       char p = (char) k;
       int m = g;
       System.out.println(p + "   " + m);
  }

}

基本資料型別練習題

String和Basic的轉換

package week01;

public class StringToBasic {

   public static void main(String[] args) {
       //1.basic -> string
       int a = 2;
       char b = 100;
       short c = 200;
       double d = 1.1;
       String a1 = a + "";
       String b1 = b + "";
       String c1 = c + "";
       String d1 = d + "";
       System.out.println(a1 + " " + b1 + " " + c1 + " " + d1);

       //2.string -> basic
       String s1 = "112";
       int num = Integer.parseInt(s1);
       double m = Double.parseDouble(s1);
       System.out.println(num + " " + m);
       for(int i = 0; i < s1.length(); i ++)
      {
           char t = s1.charAt(i);
           System.out.println(t);
      }

  }

}

(// - > /)