天天看點

day02(上)_常量,變量

辨別符:

     組成:26個英文字母大小寫,數字,0-9,符号:$,_

     規則:

          1.數字不可以開頭(1ab)

          2.不能使用關鍵字(class)

     java嚴格區分大小寫

Java中的一些命名規範:

1.包名:xxyyzz……

2.類名/接口名:XxxYyyZzz……

3.變量名/函數名:xxYyyZzz……

4.常量名:XXX_YYY_ZZZ……

常量:

day02(上)_常量,變量

整數常量幾種特殊表現形式:

     八進制:0123(十進制的83)

     十六進制:0x13(0X13)

      二進制

注意:

長整形必須以l(L小寫/小寫)結尾:9l,1238238238L

  單精度浮點型(float)以f結尾:3.6f, .4f, 5.022e+23f

變量:

基本類型:

day02(上)_常量,變量

注意:整數預設:int,小數預設:double

基本類型轉換:

例子:
class TypeConversion1
{
  public static void main(String[] args)
  {
     
      byte b=1;//判斷1這個整形常量在不在-128~127範圍内,在則正确,否則報錯
	           //b=b+2;//ERROR!,此時b的資料類型提升為int,與2(預設int),和為int
               //是以不能放在byte變量中
      b=(byte)(b+2);//把b+2的值強制轉換為byte指派給b,可能丢失精度(看下面的情況)
     
  
	  int i=393;//此時已經超出byte範圍
      System.out.println((byte)i);//-119,發生截斷 詳解轉 截斷圖

      
	  
     	      

      //long i2=1238989001234;//雖然定義的long,

                      //但是此時已經超出預設int範圍(-2^31~2^31-1),會報錯

       long i2=1238989001234L;

System.out.println('a'+1);//98,字元類型會被提升為int(對應ASCII碼為97)
      

      int n=123456789;
      float f=n;//1.234567892E8,雖然n的值沒有超出f的數值範圍,
                //但是float的有效數字為7位,也就是說 92這兩位數字
                //已經不準了  
      System.out.println(f);      
//float f=1.2;//由于浮點數預設為double,1.2指派給f在編譯時會報”可能損失精度”,這時可以使用單精度浮點數1.2f
}             
}      
運作結果:      
截斷圖:      
需要知道:計算機中的資料以二進制補碼的形式存儲,其中正數的原碼,反碼,補碼相同.      
而負數的反碼為:符号位不變,其餘位取反.補碼:反碼+1.      
基本類型間的轉換圖:      
注意:      

實心箭頭表示無精度丢失的轉換,虛箭頭表示可能有精度損失的轉換

轉換規則:      

一 數值類型轉換規則

數值型資料進行運算時,如果操作數的類型不同或操作數的類型均低于int型,則

會進行自動類型轉換處理,具體規則如下:

1)如果兩個操作數中有一個是double型,則系統先将另一個操作數的值轉換為double

型,然後再進行運算,否則

2)如果兩個操作數中有一個是float型,則系統先将另一個操作數的值轉換為float

型,然後再進行運算,否則

3)如果兩個操作數中有一個是long型,則系統先将另一個操作數的值轉換為long

型,然後再進行運算,否則

4)兩個操作數的值都将被轉換為int型

5)如果隻有一個操作數(例如進行"~"位運算時)且其類型低于int型時,則将該操作數的值轉換為int型

簡單歸結為:

1) byte,short,char->int->long->float->double

2) byte,short,char之間不會互相轉換,他們三者在計算時首先會轉換為int類型

注意:Java中可以将int型數值常量直接指派給相應低級的byte,short,char型變量,

而不需要進行強制類型轉換,隻要不超出變量的數值範圍.

原文位址:http://www.liuzm.com/article/java/0900525.htm或http://hi.baidu.com/love__shuai/item/a338a7c90ca7150dad092fee

----android教育訓練 、java教育訓練、期待與您交流!----

轉載于:https://www.cnblogs.com/yiqiu2324/archive/2013/01/13/2858950.html