編輯:關於Android編程
通俗的講,標識符就是程序員自己起的一個名稱(包括變量名,類名,方法名等等),而關鍵字是在JAVA語言中已經被賦予某種特定含義的一些單詞。例如:
int i = 0; //這裡的i是程序員命名的 int是JAVA本身賦予的代表基本數據類型中的整數
當然,標識符不是隨意命名的,它是有一定規則的,建議程序員們按照規則來命名自己所需要的標識符。
(1)標識符由字母、數字、下劃線以及美國佬的美元符號組合而成,但是一定不允許以數字開頭。例如:
int age = 23; //合法 String my_name = xiao; //合法 int a1_1 = 0; //合法 int 1a = 0; //非法
(2)JAVA使用的Unicode標准字符集,最多可以識別65535個字符,標識符可以使用其中的任意字符,包括中文。但是建議不使用中文,避免出現不必要的錯誤,畢竟這是老外的東西。
(3)標識符雖說是任意字符組合,但是不能是JAVA語言中已經賦予某種特定含義的關鍵字以及保留字,如:this,int,goto等。
(4)JAVA中標識符區分大小寫,例如:age和Age是不同的標識符。
JAVA中包含的關鍵字如下表:
JAVA的基本數據類型有八種,如下:
按照內存所占位數從小到大排列
1、byte類型:其所占內存空間最小,只占8位即1個字節,取值范圍-128~127,在使用時注意不要超出范圍。
2、short類型:在內存中占16位即2個字節,取之范圍為-32768~32767之間,雖然取值范圍變大,但是依然不是最常用的。
3、int類型:最常用的一個數據類型,其占32為即4個字節,取值范圍為-2147483648~214783647之間
4、long類型:長整型,在對long類型賦值時必須在末尾加上L或者l,系統為long類型分配64位即8個字節。
在整型數據中,按常用度來分:int>byte>long>short
有整數就應該有小數,浮點類型的來表示小數的。分為雙精度和單精度(double/float)。
(1)在float型變量進行賦值時,必須在末尾加F或f,否則系統將會自動將其定義為double類型數據,float類型數據取值范圍:1.4E-45和3.4028235E-38之間。
(2)double型變量進行賦值時,可加可不加D或d,double比float的取值范圍大,其取值范圍:4.9E-324和1.79769311348623157E-308。
浮點類型數據做運算可能出現意想不到的結果。
原因可能float類型數據占內存8位,而double類型占16位,相加結果會自動轉換位16位數據,故會在末尾補一些數。例:
public class SumNumber { /** * 浮點類型數據運算 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub float f1 = 13.23f; double d1 = 4562.12d; double d2 = 45678.1564; System.out.println("相加結果可能出現意想不到的結果:"+(f1+d1+d2)); } } //運行結果可能是:"相加結果可能出現意想不到的結果:50253.50639954224"
字符類型即char類型,用於存儲單個字符。系統分配16位即兩個字節的內存存儲空間,定義變量賦值時需要用單引號“‘‘“引起來如: char c = ‘a’;需要注意的是:在unicode表中a排列的位置在97,故也可以這樣定義 char c = 97;
在字符類型中還有一種特殊的字符-轉義字符,以”\”開頭,如:\n代表回車換行等。詳情如下:
布爾類型即boolean,通常用於流程控制中if的判斷條件。boolean類型只有兩個值:true和false,分別代表邏輯真和邏輯假
變量顧名思義即可變的量,那麼常量就是常用的量,在程序執行過程中不會變化的量稱為常量。變量和常量都需要使用合法標識符進行聲明後才可以進行使用。
變量聲明是為了告訴編譯器這個變量屬於哪種數據類型,編譯器告訴計算機分配多少內存空間,以及存放的內容,存放在哪裡等,變量名稱必須是合法的標識符。在聲明變量過程中,可以賦值,也可以不賦值。
變量名是有程序員命名的,但是也是有一定規范的。
I 首先變量名必須是標識符,規則參照標識符。
II 變量名不能重復
III 盡量選擇有含義的單詞來命名變量名,增加代碼可讀性以及後續維護等。
變量的有效范圍是指程序代碼中能夠訪問該變量的區域。按照這樣區分將變量分為成員變量和局部變量。
I 成員變量:
在類體中定義的變量稱為成員變量,有效范圍為整個類。成員變量又分為實例變量和靜態變量:
public class Test{ public int i = 0; //定義一個實例變量 public static m = 0; //定義一個靜態變量,由於數據共享 } //若其他類想要訪問Test中的m,只需要Test.m就可以直接訪問。
II 局部變量
在類的方法中定義的變量稱為局部變量,局部變量的有效范圍只在方法體(代碼塊)中有效,在范圍之外的地方無法訪問。當方法被調用的時候,內存中開始分配局部變量的存儲空間,當該方法結束的時候,該局部變量銷毀,內存空間將被釋放。
public class Test{ public int i = 0; //定義一個實例變量 public static m = 0; //定義一個靜態變量,由於數據共享 public static void main(String[] args){ int m = 1; //定義一個局部變量 System.out.println("局部變量m的值為:"+m); System.out.println("靜態變量m的值為:"+Test.m); } } //結果為:局部變量m的值為1 靜態變量m的值為:0
注:局部變量可與成員變量名字相同,但是此成員變量在局部變量所在方法體中是不可見(失效的),如果想要試用成員變量,必須使用:類名.靜態變量。如:Test.m;
I 賦值運算符 “=”
這個符號並不是數學中簡單的等於。賦值運算符是一個二元運算符,功能是將右邊的結果賦值給左邊。如:
變量類型 變量名 = 結果(所需要賦的值);
左邊必須是一個變量,右邊可以是變量,數值,表達式,常量等等。在JAVA中,運算符可以連用。例如:
int a = 0; int b = a; int c = a+b; int x,y,z; //定義三個變量 x = y = z = 0;//連用順序是從右到左
II 算數運算符
JAVA中主要的算數運算符有:+(加)、-(減)、*(乘)、/(除)、%(取余),且都是二元運算符。加減乘不用說,但是在JAVA中的除和取余必須說明一下。
/(除),只取整數,例如 10/3 得到的結果是3。 %(取余),只取余數,例如 10/3 得到的結果是1;
注意:+-這兩個符號如果不放在表達式中,放在一個變量的前面,則會被當作正負號來解釋,如-1,+5等。同時0不能作為除數,這和數學中一樣,否則系統將會拋出異常。
III 自增自減運算符
++/–運算符,使用它的只能是整數類型或浮點類型。放在操作元前後是有區別的,例如:
int a = 0; //此時a=0 int b = a++; //此時b=0,a=1 將a先賦值給b後,a+1 int c = ++b; //此時b=1,c=1 將b+1後賦值給c System.out.println("a,b,c的值分別為:"+a+" "+b+" "+c); //以上程序輸出的內容將是: //a,b,c的值分別為:1,1,1
IV 比較運算符
比較運算符有 >、<、==、>=、<=、!=。主要用於程序中的變量和變量之間,變量和常量之間以及其它數據類型信息之間的比較。返回結果boolean類型。
IV 邏輯運算符
邏輯運算符包括&&(&)(邏輯與)、"|(|)(邏輯或)、!(邏輯非)。針對數據類型為boolean,返回值類型也是boolean。使用邏輯運算符進行運算結果可能如下:
邏輯與及邏輯或又各分為兩種情況
&&短路與:如果第一個條件不成立,則不會執行第二個條件。
"|短路或:如果第一個條件成立,則不會執行第二個條件。
int a = 1; int b = 1; int c = 2; (a==b) && (a==b) //因為a==b為true,第一個條件成立,則會執行(a==b) (a==c) && (a==b) //因為a==c為false,第一個條件不成立,則不會執行(a==6) (a==c) & (a==b) //因為是非短路與,第一個條件雖然是false,同樣會執行(a==b) //邏輯或相同。
V 三元運算符
boolean a = 1<2 ? true : false //定義一個boolean類型變量a,值為三元運算符結果 //三元運算符:條件表達式或boolean ? 條件表達式A(值) : 條件表達式B(值)。當條件表達式或boolean值為true,則返回條件表達式A,反之相反。 //本例a的值為true
基本數據類型混合運算時,會將其自動轉換為同一種數據類型的數據,然後進行計算。自動類型轉換遵循占用內存小的自動轉換為占用內存大的數據類型的規則。例如:short類型與int類型混合計算時,會將short類型轉換為int類型後再進行計算。如圖:
強制類型轉換使用:(類型),如:int a = (int) 1.1; 則a的值為1。
在強制類型轉換過程中,切記不要超出數據類型的取值范圍,否則會出現意想不到的結果。
注意:boolean不能進行強制類型轉換。
三種注釋方式,例如:
int a = 0; //單行注釋,說明一下a的作用 /* 多行注釋, 注釋內容 ... */ /** * 文檔注釋 * 程序名稱:xxx * 時間:xxx * 作者:xxx */
編寫規范:
作為一個好的程序員,需要有一個好的代碼編寫習慣。
這裡不多說~
從JAVA到Android第一篇到此結束了,養成寫博客的習慣就從現在開始。
??最近一段時間比較忙,都沒有時間更新博客,今天公司的事情忙完得空,繼續為我的自定義控件系列博客添磚加瓦。本篇博客講解的是標簽自動換行的布局容器,正好前一陣子有個項目中需
下面是HTC官方的一個圖片,展示了Android系統從發布最終到用戶手中的一個完整的過程: Awesome Infographic: HTC Shows Us “Th
本文主要介紹如何使用tcpdump和wireshark對Android應用程序進行抓包並分析,需要說明的是在抓包之前,你的Android設備必須root過了,另外你的電腦
本文實例講述了Android Activity啟動模式之standard。分享給大家供大家參考,具體如下:Android的活動是通過任務Task來進行管理的,一個任務就是