1. 程式人生 > 實用技巧 >java變數和識別符號

java變數和識別符號

目錄

識別符號(Identifier)

  • Java 對各種變數、方法和類等要素命名時使用的字元序列稱為識別符號
  • 技巧:凡是自己可以起名字的地方都叫識別符號。
  • 定義合法識別符號規則:
    • 識別符號可以由字母、數字、下劃線(_)、美元符($)組成,但不能包含 @、%、空格等其它特殊字元。
    • 不能以數字開頭。
    • 識別符號是嚴格區分大小寫的。
    • 識別符號的命名最好能反映出其作用,做到見名知意。

Java中的名稱命名規範

  • 包名:多單片語成時所有字母都小寫:xxxyyyzzz
  • 類名、介面名:多單片語成時,所有單詞的首字母大寫:XxxYyyZzz
  • 變數名、方法名:多單片語成時,第一個單詞首字母小寫,第二個單詞開始每個
    單詞首字母大寫:xxxYyyZzz
  • 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連線:XXX_YYY_ZZZ

關鍵字(keyword)

注:在java語言中已經被賦予特定意義的一些單詞。一共有53個關鍵字。其中有兩個保留字:const和goto。關鍵字不能被用作識別符號!!

  • 保留字(reserved word)
    現有Java版本尚未使用,但以後版本可能會作為關鍵字使用。自己命名識別符號時要避免使用這些保留字
    goto 、const

註釋(comment)

Java程式碼的解釋說明。不影響程式的執行,用於輔助讀程。

	//單行註釋
	
	/*  
	多行註釋  
	多行註釋
	多行註釋
	*/
	
	/**  
   	文件註釋  
	@auther 作者
	@version 版本
	@createdate 日期
 
	*/

變數(variable)

變數的概念:

1.記憶體中的一個儲存區域
2.該區域的資料可以在同一類型範圍內不斷變化
3.變數是程式中最基本的儲存單元。包含變數型別、變數名和儲存的值

變數的作用:

用於在記憶體中儲存資料

使用變數注意:

  • Java中每個變數必須先宣告,後使用

  • 使用變數名來訪問這塊區域的資料

  • 變數的作用域:其定義所在的一對{ }內

  • 變數只有在其作用域內才有效

  • 同一個作用域內,不能定義重名的變數

  • 宣告變數
    語法:<資料型別> <變數名稱>
    例如:int var;

  • 變數的賦值
    語法:<變數名稱> = <值>
    例如:var = 10;

  • 宣告和賦值變數
    語法: <資料型別> <變數名> = <初始化值>
    例如:int var = 10;

變數的分類

  • 按資料型別
    對於每一種資料都定義了明確的具體資料型別(強型別語言),在記憶體中分
    配了不同大小的記憶體空間。

  • 按宣告的位置的不同
    在方法體外,類體內宣告的變數稱為成員變數。
    在方法體內部宣告的變數稱為區域性變數。

注意:二者在初始化值方面的異同:
同:都有生命週期
異:區域性變數除形參外,需顯式初始化。

基本資料型別

基本資料型別

位bit 位元組byte 1byte=8bit

型別名稱 位元組空間 取值範圍
整數型 byte 1 -27到27-1 或者 -128到127
short 2 -215到215-1
int 4 -231到231-1
long 8 -263到263-1
浮點型 float 4 單精度,對小數部分的精度要求不高
double 8 雙精度,精確的小數部分並操作值很大時
字元 char 2 0到65535
布林 boolean 1 真true 假false

基本型別的字面值(5條)

  • 整數字面值是int型別
int a = 999999999;//錯,右側是int型別,但是超出範圍
  • byte,short,char三種比int小的整數可以用範圍內的值直接賦值
byte b=127;//對
byte b=128;//錯,右面已經超過byte範圍是int型別的資料
  • 浮點數的字面值是double型別
double a=3.14;//對
float a=3.14;//錯,右面是double,float是四位元組double是八位元組存不下
  • 字面值字尾l f d
L –long  如:long a = 99999999999;//錯,超出範圍,解決方案加L
F –float  如:float a = 3.14;//錯,右面是double型別,解決方案加F
D –double 如:double a=3;//錯,右面是int,解決方案加D或者改成3.0

基本型別的型別轉換

  • 小到大(隱式轉換)
Byte a =120;
Int b=a;//直接轉
  • 大到小(顯式轉換)

需要強制型別轉換
注意:小數轉成整數,小數直接捨棄

int xx = 356;
byte y=(byte) xx;

運算規則(5條)

  • 計算結果的資料型別,與最大型別一致
3/2  得1 ,而不是1.5,結果是int型別
3d/2 得1.5,相當於double/int,結果是double型別
  • byte,short,char三種比int小的整數,運算時會先自動轉換成int
byte a=3;
byte b=4;
byte c=a+b;//錯,執行時,byte會先自動轉成int再運算,int+int還是int
  • 整數運算溢位
    整數運算,類似於一箇中標,轉到最大時,再轉會回到最小。
    計算:光速執行一年的長度是多少米
System.out.println(300000000*60*60*24*365);
System.out.println(300000000l*60*60*24*365);
  • 浮點數運算不精確
    java提供瞭解決方案,後面就會講到。
System.out.println(1-0.8);
System.out.println(4.35*100);
  • 浮點數的特殊值
Infinity 無窮大 3.14/0 
Nan not a number 0/0.0

二進位制

  • Java整數常量預設是int型別,當用二進位制定義整數時,其第32位是符號位;
    當是long型別時,二進位制預設佔64位,第64位是符號位
  • 二進位制的整數有如下三種形式:
  • 原碼:直接將一個數值換成二進位制數。最高位是符號位
  • 負數的反碼:是對原碼按位取反,只是最高位(符號位)確定為1。
  • 負數的補碼:其反碼加1。
  • 計算機以二進位制補碼的形式儲存所有的整數。
  • 正數的原碼、反碼、補碼都相同
  • 負數的補碼是其反碼+1

為什麼要使用原碼、反碼、補碼錶示形式呢?
計算機辨別“符號位”顯然會讓計算機的基礎電路設計變得十分複雜! 於是人們想出了將符號位也參與運算的方法. 我們知道, 根據運演算法則減去一個正數等於加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法, 這樣計算機運算的設計就更簡單了。

進位制字首

0x  - 16進位制
0  -8進位制
\u  -char型別,16進位制