1. 程式人生 > 其它 >第一章總結

第一章總結

1.java語言的發展方向:

j2se → java se

j2me → java me

j2ee → java ee →jakarat ee

2.java語言的特點:簡單、面向物件、健壯性、安全性、分散式、跨平臺、編譯性自動垃圾回收機制。

3. jvm、jre、jdk的關係:

jvm:java虛擬機器,二進位制位元組碼.class檔案的執行環境

jre:java執行環境,java檔案的執行環境jre=jvm+核心類庫

jdk:java語言開發工具包jdk=jre+java語言開發工具

4.環境變數的配置,一般選用動態配置法,建立一個系統變數:名稱為:JAVA_HOME ,地址配置到java的jdk的安裝路徑bin的上一級(為了方便今後的專案不在配置環境),然後在path路徑下配置到bin目錄上,%%這個符號表示引用,格式為:%JAVA_HOME%\bin;靜態的配置方法為:在path路徑上,點選編輯然後點選更改,把jdkbin檔案的目錄放在第一個,儲存好就行了,放第一的目的是為了減少path的操作。

5.關鍵字和識別符號:

關鍵字:賦予了特殊的單詞。

識別符號:由類名、物件名、方法名、變數名和常量名組成。

注意識別符號規則:

1.只能由字母、數字、_、$組成,並且不能為數字開頭;

2.不能是關鍵字

3.支援中文,但是不建議用中文

4.區分大小寫,但是不建議用大小寫。因為c語言寫的系統,最後寫的東西會用到c上去,而

c語言不分大小寫

5.駝峰原則:小駝峰:方法名和變數名都是第二個單詞首字母大寫

大駝峰:類名和介面名都是每個單詞首字母大寫

6.常量名全部字母都大寫,包名全部小寫

6.資料型別:分為兩大類,引用資料型別和基本資料型別。

基本資料型別:整數型:byte(1位元組(一個位元組為8位,一位為1bit,叫位元),位元組型、範圍:-2^8—2^7)、short(2位元組,短整型、範圍:-2^162^15)、int(4位元組整型、範圍:-2^32—2^31)、long(8位元組,長整型、範圍:-2^64—2^63)

浮點型:float(4位元組)、double(8位元組)

布林型:boolean (1位元組,結果只能是ture和false)

字元型:char(2位元組,採用ascii碼編碼,’a’是97,和’A’的值是65還不相同的)

7.運算子:算數運算子、賦值運算子、比較運算子和、邏輯運算子和三目運算子。

算數運算子:+ - * / % -- ++ (自增自減:符號在前則先先加減再賦值,變數在前先賦值再加減)

賦值運算子:= += -= *= /= %=(有自動型別轉換,但是會產生精度損失:long a=(long)10;int b+=a;)

比較運算子:> < >= <= == != (結果為true和false,如果要A>B>C,則要用到邏輯運算子)

邏輯運算子:& | && || !(短路與也叫雙與和短路或和雙或,單與和單或的話兩邊的式子都會執行

而雙與:第一個為false第二個就不執行,雙或:第一個為true第二個不執行)

三目運算子:格式:(布林判斷式? true的結果:false 的結果)簡寫的if—else,但是true和false的結果必須由不能什麼都不寫,否則編譯不通過)

8.全域性變數和區域性變數:

全域性變數:類中方法外,可以不賦值,就能使用,每種資料都有預設值,如下:

區域性變數:方法中,必須賦值才能使用

資料的預設值:整型:0 浮點型:0.0 字元型:‘\u0000’ 布林型 :false 引用資料型別:null

9.進位制:

二進位制:0-1,逢2進1

八進位制:0-7,逢8進1

十進位制:0-9,逢10進1

十六進位制:0-9,10-15用abecdf來表示

注意:主要是計算機中儲存的數值為二進值,都是以補碼的方式儲存的,正數的補碼為原碼,

負數的補碼為反碼加一

10.位運算 <<有符號左移 >> 有符號右移 >>> 無符號右移

格式:運算元 <<移動位數

有符號左移:正數:乘以2的移動位數的冪,負數無規律

有符號右移:正數:除以2的移動位數的冪,負數無規律,正數補0,負數補1

無符號右移:全部補0,不論是0還是1

11.掃描器:Scanner

步驟:1.先建立掃描物件:Scanner sc=new Scanner(System.in);

2.導包:用import :import java.util.Scanner;

3.用變數來接收掃描進來的數字:比如我需要一些正數,就用int型別的變數來接收:

int a= nextInt();後面int是的單詞首字母大寫。

12.分支結構:有if、if-else、switch分支結構

格式:1.if(布林結果的表示式){結果為true 執行大括號裡面的語句}

2.if(布林結果的表示式){結果為true 執行大括號裡面的語句}else {為false執行的語句}

3.if(){}else if(){}else…else{}

4.switch(變數值){

case 具體的變數值1: 執行語句;break;

……

case 具體的變數值n: 執行語句;break;

default:執行語句;

注意:1.switch有貫穿現象,用break跳出,default標識除此之外輸出結果,可以省略不寫

2.變數值型別:byte short int char String型別

13.迴圈結構:有while、do-while、for迴圈,其中迴圈的布林判斷如果衡為true,則為死迴圈,以應用在寫一個計算器,可以使用多次。

格式:1.while (布林型表示式){為true執行大括號的語句}

2.do{為true執行大括號的語句}while(布林的表示式);注意:do-while與while的區別是不管為true還是false都會執行一次

3.for (初始變量表達式(可以不寫)①;布林型別的表示式②;初始變數的改變的表示式③){執行語句④

具體的步驟為:先執行①,然後判斷②是否成立,如果成立則執行④,再執行③,在判斷②是否成立,成立執行④。①只執行一次,而且是在迴圈之前就執行完畢,當然也可以不寫,省略。

14.迴圈的巢狀:雙迴圈:也叫大圈套小圈。

格式:for(){

for (){}

}

注意:外層控制行,內層控制列,如列印一個任意行和列的*號矩陣

15.隨機數:Random

跟掃描器一樣,都是java我們提供的型別:

步驟:1.建立一個隨機數產生的物件:Random rd =new Random();

2.導包:import java.util.*;(*代表所有的包,包括了Scanner和Random等等的包)

3.產生的隨機數通過一個數來接收:int a = rdnextInt(n);n的取值為[0,n)需要什麼樣的型別就用什麼型別的變數,但是next後面的型別名第一個字母要大寫。

break和continue的區別:break為跳出迴圈和結構(switch),continue為跳過本次迴圈,只要

迴圈條件判斷值為true就還可以繼續迴圈,迴圈還沒結束。

16.方法:具有特定功能的程式碼塊。

好處:提高程式碼的複用性。

格式 :[許可權修飾符]修飾符 返回值型別 方法名稱(形參的型別 形參變數名){

方法體}

注意:實參和形參是不一樣的,實參是具體的資料,是需要傳入的資料,而形參則是方法名後的小括號

的內容,是來寫方法是便於描述的,同時實參也是通過形參傳遞資料到方法中的。

17.方法的使用:不能巢狀,一個類可以有多個方法,方法裡面不能有方法。

注意:1.不呼叫不執行

2.如果在同一個類中直接呼叫 格式:add();

3.在不同的類中得通過物件去呼叫 格式:先建立物件,物件名稱.方法名();

18.方法的返回值:

1.返回值的型別必須與return後的資料型別一致,

2.當為void型別時,就沒有返回值,此時return就可以省略

返回值的使用:

1.直接列印輸出:System.out.println(“add(23,33)”)

2.賦值使用:用一個變數來接收;int a = add(23,33);

3.直接呼叫:執行了方法,但是返回值不能使用了:add(23.33);

19.方法過載:

好處:降低程式設計師的記憶複雜度

概念:在一個類中,方法名稱相同,引數列表不同,稱為方法過載

1.與返回值型別無關,

2.引數列表不同:引數個數不同、引數型別不同、引數順序不同

20.方法的記憶體圖:棧:載入的是方法和區域性變數,堆:載入的是物件、靜態成員和常量

棧的特點:隨著元素的進棧,棧的指標依次上移,先進後出,後進先出。

壓棧:進棧,push

彈棧:出棧,pop

21.陣列:多個變數組成的一個整體,用來便於批量操作資料的,也是用來儲存資料的。

1.元素:陣列中的每一個變數

2.索引:角標,編號

3.長度:陣列中的元素的個數

22.陣列的宣告方法:

1.動態初始化:

格式:資料型別 [] 陣列名稱=new 資料型別 [長度];

陣列一旦建立,就確定了長度,資料中的元素為預設值,見8全域性變數和區域性變數的總結。陣列的名稱可以在[]前,也能在[]後,兩個方式都是合法的

2.靜態初始化

格式:資料型別 [] 陣列名稱=new 資料型別 []{值1,值2,……};

[]中沒有長度值,長度值為大括號裡面的值的個數,檢視的用陣列名稱.length

3.簡寫的靜態初始化:宣告和賦值不能分開,其他的兩個可以

格式:資料型別 []陣列名稱={值1,值2,……};

23.陣列的異常:

1.陣列角標越界異常。ArrayIndexOutofbourdsExcrption

原因:陣列的訪問超出索引範圍

2.空指標異常:NullPointorException

原因:物件為空

24.二維陣列的宣告和賦值:陣列套陣列,Java中沒有多維陣列的概念,所謂的多維陣列,就是陣列套陣列

1.動態初始化:

格式:陣列型別[] [] =new 陣列型別[長度1][長度2]

注意:長度2可以省略不寫,但是必須要先賦值才能使用,不然會出線空指標

2.靜態初始化

格式:陣列型別 [] [] =new 資料型別 [] []{{},{},{}};

3.簡寫的靜態初始化

格式:陣列型別 [] [] ={{},{},{}}

注意:對於二維陣列來說,第一個[]表示陣列的外層,第二個[]陣列的內層,在堆中如圖