java语言编程基础_java语言编程基础
java語言基本要素
高級語言如c++、c#、java等都有一些共同性的東西:關鍵字、標識符、
運算符、注釋、數(shù)據(jù)類型、常量和變量、語句、函數(shù)、數(shù)組。高級語言在這些要素上大同小異。
Java關鍵字:一些有特定含義,有專門用途的字符串(keyword)。Java中關鍵字均為小寫。如do while if int等。不需要記,用多了自然會知道。
標識符
自定義的名稱。如類名、變量名、方法名等。合法標識符規(guī)則:1 不可使用關鍵子字 2 不能以數(shù)字開頭。在java中標識符可有26個英文大小寫字母、數(shù)字0~9、_$組成。Java中嚴格區(qū)分大小寫。
★:編程中一般起有意義的標識符,方便閱讀。這也是一個良好的編程習慣。
注釋
顧名思義,就是對代碼進行一些標注,說明,或者暫時的”刪除”。
Java的注釋格式為://單行注釋 /* xxxxx */多行注釋。注意:注釋的代碼不參與編譯,即不包含在字節(jié)碼中。
數(shù)據(jù)類型
Java 是強類型語言,每一種數(shù)據(jù)都定義了明確的數(shù)據(jù)類型,在內(nèi)存總分配了不同的大小的內(nèi)存空間。注:整數(shù)默認int,小數(shù)默認double。類型轉換:分為強制類型轉換(顯示)和自動類型轉換(隱式)。表達式中byte、short、char的值會提升至int,其他的long、double、float,對應自身類型
例:System.out.println('a' + 1);//char自動類型轉換 98
System.out.println( (char)('a' + 1));//強轉? b ACSII碼
byte b = 4; //byte 范圍-128~127 在此范圍內(nèi)的值java會自動強轉為byte
byte = b1 + b2;// 變量不可檢測,編譯會出錯,應加強轉 舉一反三 以下類型一樣
Byte?8位帶符號整數(shù)?-128到127之間的任意整數(shù)
Short?16位無符號整數(shù)?-32768~32767之間的任意整數(shù)
Int?32位帶符號整數(shù)?-2^31到2^31-1之間的任意整數(shù)
Long?64位帶符號整數(shù)?-2^63到2^63-1之間的任意整數(shù)
Float?32位單精度浮點數(shù)?根據(jù)IEEE754-1985標準
Double?64位雙精度浮點數(shù)?根據(jù)IEEE754-1985標準 一些提示:
不象其它程序設計語言,Java語言中的整型的位數(shù)是固定的,而不會根據(jù)硬件平臺以及操作系統(tǒng)的不同而不同。
值傳遞:(形式參數(shù)類型是基本數(shù)據(jù)類型加上String類型):方法調(diào)用時,實際參數(shù)把它的值傳遞給對應的形式參數(shù),形式參數(shù)只是用實際參數(shù)的值初始化自己的存儲單元內(nèi)容,是兩個不同的存儲單元,所以方法執(zhí)行中形式參數(shù)值的改變不影響實際參數(shù)的值。
引用傳遞:(形式參數(shù)類型是引用數(shù)據(jù)類型參數(shù)):也稱為傳地址。方法調(diào)用時,實際參數(shù)是對象(或數(shù)組),這時實際參數(shù)與形式參數(shù)指向同一個地址,在方法執(zhí)行中,對形式參數(shù)的操作實際上就是對實際參數(shù)的操作,這個結果在方法結束后被保留了下來,所以方法執(zhí)行中形式參數(shù)的改變將會影響實際參數(shù)。
常量與變量
常量表示不可以改變的數(shù)值。Java中的常量:1 整數(shù)常量,所有整數(shù)? 2 小數(shù)常量,所有小數(shù)。 3 布爾型常量,true和false。 4字符常量? 用‘’標識 5 字符串常量 用“”標識 6 null常量,就一個null。
變量:內(nèi)存中的一塊區(qū)域,其中有名稱(變量名)和類型(數(shù)據(jù)類型),該區(qū)域的數(shù)據(jù)可以在同一數(shù)據(jù)類型下不斷變化。用途:不斷的存放該數(shù)據(jù)類型的常量,可重復使用。變量的作用范圍:在{}中有效。需要初始化。定義變量格式:
數(shù)據(jù)類型變量名 =初始化值;在java中的基本類型變量都有一個默認的初始化值,因此也可以 基本類型變量名;前提是該變量是類的成員變量時才有默認值,作為局部變量時必須要初始化;
運算符
算數(shù)運算:+ 加,連接符如“3” + 2 輸出32? - 減 *乘 /除 取商? %取余
++自增(原有基礎+1,再賦給原數(shù)據(jù) a++等價與 a = a+1 )? --自減
+=加等于a+= 4等價與a = a+4
★:a++參與其他運算時,a原值參與運算后再+1, ++a 則是a+1后參與運算
賦值運算: = 、+= 、-=、/=、%=
比較運算:
>大于? =大于等于
instanceof 檢查是否是類對象 例:"Hello" instanceof String? //true
比較運算符的結果只有兩個true 或 false
邏輯運算:&&與 ||或? & |亦可,單個與2個的區(qū)別: 表達式1&表達式2:兩邊同時運算后,結果相與;表達式1&&表達式2:表達式1若=false,表達式2不再運算。 用于連接兩個boolean類型的值
位運算:直接對二進制進行操作 <>右移? >>>無符號右移 &與? |? 或? ^異或? ~反碼
★ 2<<3 =16 左移3位后低位補零 等價與 2 * 2(3)
6>>1 = 3 右移后1位,若高位為0,空位補零,否則補1 等價與 6/2(1)
用位運算比算數(shù)運算更高效 3*8 ,3<<3 前提:2的整數(shù)倍
兩個數(shù)值型變量交換值的方法:
1.a = temp, a = b, b = temp;
2.a =a + b, b= a-b, a = a-b;
3.a=a^b; b=a^b; a=a^b; 一個數(shù)異或兩次等于原來的數(shù)
三元運算:格式:(條件表達式)?表達式1:表達式2 如果條件表達式為? ?????????? true結果等于表達式1,為false,結果為表達式2。可看做簡???? ?????? 化的if else 語句,但區(qū)別是三元運算一定會有結果。
例:獲取兩數(shù)中較大者: int a=4,b=3,c;c= a>b?a:b;結果c=4
語句(程序流程控制)
判斷結構、順序結構、循環(huán)結構、選擇結構。
順序結構:沒什么好說的,就是程序從上到下執(zhí)行。
判斷結構:if 語句,if else 語句 ,if else if else if..語句:
if(條件判斷){
true執(zhí)行
} else{
false執(zhí)行};
不寫else默認if的以下的程序就是else要執(zhí)行的程序,如果沒有中括號,但按照一定的格式(如上去掉中括號)if else 語句也成立。
{}的作用:括起來的代碼叫局部代碼塊,可決定局部變量的生命周期。
選擇結構:switch語句:switch(表達式){
case(取值1):
執(zhí)行;break;//已取1值,中斷選擇,執(zhí)行switch的下一條
case(取值2):
執(zhí)行;break;
......
default:語句;break;//如果都沒選擇case的值(先判斷case值,不論default寫在哪里),則取默認值。
}
注:只有四種數(shù)據(jù)類型供給switch選擇,byte、short、int、char、Enum(枚舉類型)、String(java7新增)。緊跟}的語句可以不寫break;
循環(huán)結構:語句:while、 do while、 for.
While(條件表達式){????? ??do{
執(zhí)行語句;????????????? 執(zhí)行語句;
}while(條件表達式);//注意分號
}
while(){} 若條件為true,執(zhí)行語句后 再次判斷條件,若為true再執(zhí)行第二次語句,再判斷...,直到條件為false為止。
do while 無論條件如何至少會執(zhí)行一次do中的執(zhí)行語句。先做后判斷。
for語句:格式for(初始化表達式;循環(huán)條件表達式;循環(huán)后的操作表達式){
執(zhí)行語句;//循環(huán)體
}
運行順序:首先執(zhí)行初始化表達式,然后判讀循環(huán)條件表達式,若真,執(zhí)行循環(huán)體,然后在執(zhí)行循環(huán)后的操作表達式,接著再判斷條件表達式,重復過程,知道調(diào)教不滿足為止。For語句可以嵌套for 、if。
注:while和for可以交換使用,在于for中定義的變量包括在初始化表達式中定義的變量在循環(huán)結束后被內(nèi)存釋放。 無限循環(huán):while(true) for(;;)
其他語句:break跳出循環(huán)應用與選擇和循環(huán)結構、continue跳出本次循環(huán),執(zhí)行下次一循環(huán),應用于循環(huán)結構。
注:兩個語句必須作用于自己的應用范圍里才有效。這兩個語句單獨存在時后不跟其他語句,因為執(zhí)行不到。
函數(shù)
函數(shù)即方法,指在類中具有特定功能的代碼塊。運用函數(shù)可以將功能代碼進行封裝,并切只有在被調(diào)用時才會執(zhí)行,提高了代碼的復用性。
如何設計一個函數(shù):以函數(shù)的功能為中心,考慮功能如何實現(xiàn)?需要幾個形參?返回值是什么,自然而然就能下手了。
注:函數(shù)內(nèi)不能再定義另一個函數(shù),能調(diào)用其他函數(shù)(需要看修飾符,后文會提),函數(shù)的結果應返回給調(diào)用者。函數(shù)調(diào)用完,便被內(nèi)存移除,當被調(diào)用時再加載進內(nèi)存(形參會掛..)。
格式:修飾符 返回類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2...){
執(zhí)行語句;
return ;返回值
}
特殊:函數(shù)無返回值,不需要返回值時返回類型用void,return可以不寫。
函數(shù)的重載:在一個類當中允許存在多個重名的函數(shù),只要它們的形參個數(shù)或形參類型不同即可。
重載:同類,同名 ,同返回值,不同參數(shù)。
注:與返回類型沒有關系,區(qū)別僅在于參數(shù)列表。
數(shù)組
同一種類型數(shù)據(jù)的集合,數(shù)組其實就是一個容器。
格式:
元素類型[] 數(shù)組名 = new 元素類型[數(shù)組長度]
元素類型[] 數(shù)組名 = new 元素類型{元素1,元素2,....}
數(shù)組自動給元素標號,從0開始。不明確具體的數(shù)據(jù)是什么時用格式1,
已知具體數(shù)據(jù)用格式2.
數(shù)組常見的異常:
ArrayIndexOutofBoundsException: 下標越界,即訪問了數(shù)組不存在的角標。
NullpointerException: 當引用的變量沒有任何實體指向時arr=null,出現(xiàn)該異常。
對數(shù)組的操作通過操作角標完成,arr[x] = xx; print(arr[x]);...可以用for循環(huán)遍歷數(shù)組。遍歷數(shù)組能完成很多有用的功能,查找某個特定數(shù)據(jù),求和,求最大,排序等。
基本的遍歷方式:for(int = 0;i
arr[i];
}
二維數(shù)組:數(shù)組中的數(shù)組。
格式:int[][] arr = new int[2][3];//二維數(shù)組中有2個含有三個元素的一維數(shù)組。
int[]][] arr = new int[3][];//二維數(shù)組中有三個一維數(shù)組。
排序與查找: 記于數(shù)據(jù)結構與算法中。
總結
以上是生活随笔為你收集整理的java语言编程基础_java语言编程基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本汽车制造商认为未来几年将在中国市场为
- 下一篇: java高级编程期末考试题_java高级