1. 程式人生 > >基本資料型別 變數和運算子號

基本資料型別 變數和運算子號

  2.1Java資料型別

     1.  基本資料型別(8個)

                                                                                            佔用空間

                   byte                                                                  1位元組=8bit    2^8           

                   short                                                                 2位元組=16bit   2^16

                   int                                                                     4位元組=32bit 2^32

                   long                    整數型別                                8位元組

                   -----------------------------------------

                   float                   浮點型                                    4位元組

                   double                                                             8位元組

                   ------------------------------------------

                   boolean             布林型別                               1位元組

       --------------------------------------------

                   char                 字元型別(底層還是整數型    2位元組

 1 public class Test2
 2 {
 3     public static void main(String[] args){
 4         byte bytevalue = 1;    
 5         short shortvalue = 2;
 6         int intvalue = 3;
 7         long longvalue = 4;
 8 
 9         float floatvalue = 3.3f;//float型別後面必須要加f或F,否則會被預設為double型別
10         double doublevalue = 4.4;
11         boolean booleanvalue = true;//布林型別中的值只能為TRUE或者false
12         char charvalue ='a';
13             /*
14                 注意一個問題,編寫程式時,後多時候需要用到符號,例如:圓括號,大括號,分號,逗號,點號,
15                 Java中涉及到以上的符號全部需要英文的符號,一旦使用中文符號,就會出問題。
16         */
17         System.out.println("bytevalue="+bytevalue);
18         System.out.println("shortvalue="+shortvalue);
19         System.out.println("intvalue="+intvalue);
20         System.out.println("longvalue="+longvalue);
21         System.out.println("floatvalue="+floatvalue);
22         System.out.println("doublevalue="+doublevalue);
23         System.out.println("booleanvalue="+booleanvalue);
24         System.out.println("charvalue="+charvalue);
25 
26         
27     }
28 }

 

基本資料型別 包裝型別(物件型別)
byte            Byte
short           Short
int                  Integer
long            Long
float                 Float
double               Double
boolean                Boolean
char           Character

   2.物件型別(引用型別,自定義型別)

  2.2變數

定義變數

                   語法:

資料型別 變數名稱;

資料型別 變數名稱 = 初始值; (推薦做法)

         小結:

                            1.變數的定義語法

                                               有推薦的做法,還有不推薦的做法。(不推薦的原因)

                            2.變數的變這個字的解釋。量,就是具體的值。

                            3.變數的名稱(標示符identifier)定義規則

                                     不能數字開頭,中間可以穿插數字

                                     通常有含義。最好不要這樣:a1,a2,a3,a4

                                                                                             zhangsanAge,lisiAge

                                     駝峰模型:第一個單詞首字母小寫外,後續單詞首字母大寫。

                            4.      System.out.println

                                     System.out.print

                                     ln就是多了一個換行

 

                            5.字串與任何資料的+操作,不是數學意義的加,而是字串拼接的意思。

 

 1 public class Test1
 2 {
 3     public static void main(String[] args){
 4         short salary;            //宣告一個short型別的變數名稱salary
 5         short salary2 = 3000;//宣告一個short型別的變數名稱salary2,並且賦初始值是3000
 6 
 7         salary = 3001;//變數重新賦值,
 8         salary2 = 3003;//對salary2變數進行賦值,賦的值是3003
 9         System.out.println("重新賦值的salary2是 "+salary2);
10        }
  }

  2.3運算子號

  

      一些運算的規則:
        1.小於int型別的型別(byte,short,char),他們之間操作(同類,不同類),結果【自動提升】int
        

        2.相同型別相互操作,結果就是這個型別。
          int+int=int
          long+long=long
          float+float=float
          double+double=double
        3.不同型別相互操作,結果以大型別為準。
          int+long=long
          int+byte=int
        4.float和long相互間操作結果式float(縱然long是8個位元組,float式4個位元組)
          float = long+float



public class Test3
{
public static void main(String[] args)
{
int num1 = 10;
int num2 =3;

//+,-,*,/,%
int num3 = num1 + num2;
int num4 = num1 - num2;
int num5 = num1 * num2;
int num6 = num1 / num2;
int num7 = num1 % num2;

System.out.println(num1+"+"+num2+"="+num3);
System.out.println(num1+"-"+num2+"="+num4);
System.out.println(num1+"*"+num2+"="+num5);
System.out.println(num1+"/"+num2+"="+num6);
System.out.println(num1+"%"+num2+"="+num7);


//() 改變優先順序
int num8 =10,num9=20,num10=5;
int num11,num12;
num11 = num8 + num9*num10;
num12 = (num8 + num9)*num10;

System.out.println("num11="+num11);
System.out.println("num12="+num12);

 


//1) 小於int型別的型別鍵操作

byte b1 = 1;
byte b2 = 2;
//byte b3 = b1+b2;

/*
Test3.java:56: 錯誤: 不相容的型別: 
從int轉換到byte可能會有損失

*/
byte b3 = (byte) (b1+b2);
int b4 = b1+b2;
System.out.println(b3);
System.out.println(b4);

//小於int型別的型別(byte,short,char),
//他們之間操作(同類,不同類),結果【自動提升】int



//2) 同類型相互操作,結果就是這個型別 float f1 = 3.3f; float f2 = 7.3f; float f3 = f1 + f2; double d1=1,d2=2;//double d1=1;double d2=2; double d3=3,d4;//double d3=3;double d4; d4 = d1+d2; System.out.println(f3); System.out.println(d4); //3) 不同型別相互間操作,結果以大型別為準 long l1 =50; byte bx =3; //byte gg = l1 + bx; /* Test3.java:97: 錯誤: 不相容的型別: 從long轉換到byte可能會有損失 byte gg = g1+bx;//long v =long+byte */ byte gg = (byte)(l1+bx); long gl = l1+bx; //4) float和long相互間操作,結果式float, //因為float可以儲存浮點數 float ff = 3.3f; long gk = 100; //gk = gk+ff;//float = long+float float ft = ff + gk; System.out.println(gl); System.out.println(ft); } }


      char型別其實就是數字型別,char值背後都是以數字的形式儲存的

      不同型別之間(指數值型別7個),賦值,小的型別值賦值給大的型別變數是可以的,反之需要進行強制型別轉換

public class Test4
{
    public static void main(String[] ars){
        char ch = 'a';

        int num = ch;//隱式轉換(自動)
        
        System.out.println(ch+" 這個字元對應的數值:"+num);

        ch = 'A';
        num = ch;
        System.out.println(ch+" 這個字元對應的數值:"+num);

        ch = '中';
        num = ch;
        System.out.println(ch+" 這個字元對應的數值:"+num);


        num = 99;
        ch = (char)num;//錯誤的,必須進行強制型別轉換
        System.out.println(num+" 這個數字對應的字元:"+ch);


        //既然char值背後是數字,那麼就能進行運算
        ch = 'b';

        num = ch+1;
        System.out.println(num);



        //不同型別的變數(值),賦值給其他型別的變數,會出現精度丟失問題
        //那麼浮點數賦值給整數型別會怎樣(肯定式需要強制型別轉換)
        //浮點數強制轉換成整形數,就是小數部分直接擷取。
        float f = 3.3f;
        num = (int)f;
        System.out.println(num);


        num= 100;
        f = num;//隱式轉換
        System.out.println(f);



        


    }
}