java語言的特色和起源:
java是一種類天然語言的高級編程語言,它具備面向對象、安全、跨平臺、多線程等特色。最開始的編程語言都是面向「機器」的編程語言,如二進制編碼,可是二進制複雜,在大規模編碼中若是有錯,很是不易排錯,所以後來由助記符發展出了彙編語言,可是實質上彙編依然是面向「機器」的編程語言,由於程序員必須重複操做內存空間等很是繁瑣的步驟,不是很人性化,到了後來,纔出現了高級的程序語言,1995年,java的開發團隊在一系列面向過程的編程語言基礎上,開發出了它。
java的數據類型和變量:計算機要運算一個程序或者計算,那麼首先必須對數據進行存儲,這就涉及到內存的操做,操做內存,在java等高級的編程語言中,是使用數據類型和變量來進行的,數據類型表示了存儲的數據在內存空間的大小,這樣有效地進行了存儲,變量表明數據在內存中的地址,當咱們訪問一個變量,實際上就是經過訪問這個變量名錶明的地址。
java的數據類型分類:基本數據類型和引用數據類型:
基本數據類型:byte short int long float double char boolean 8種,引用數據類型:如數組、String等都是引用數據類型。
java中的常量用final修飾,表明變量指向的內存空間的大小固定不變,約定俗塵用全字母大寫來表示。
java中的運算符:賦值運算、關係運算、邏輯運算、位運算.算術運算符..,須要注意的是邏輯運算中的短路行爲,在自增(減)運算中,須要注意的是前置和後置運算,在表達式中當前所表明的值,是先增(減)仍是先取值;
java中的流程控制:
選擇流程控制:
結構以下:
if(){
}........單if表達式java
if(){程序員
}else{
}....... if-else 表達式 編程
if(){
}else if()表達好似 }else{
} ...... if-else if-else 表達式數組
須要注意的是嵌套的if-else if-else 最好用{ }的形式標識,不然容易出錯,if()中是布爾表達式安全
switch結構多線程
switch(變量名){
case 常量表達式1 : 語句1;break;
case 常量表達式2 : 語句2;break;
case 常量表達式3 : 語句3;break;
case 常量表達式4: 語句4;break;
default: ..... break;
}eclipse
break;不能省,不然很容易出錯編程語言
循環表達式:this
while(布爾){
語句;
}
do{編碼
}while(布爾);
一個是先驗循環,一個是後驗循環,布爾值是控制表達式循環的條件;
for(表達式1;表達式2;表達式3){
語句塊;
}
表達式①是變量的初始化;表達式②是對整個循環進行是否執行的判斷;表達式③是循環變量的改變,執行的流程是 1--2--語句塊--3--2--語句塊,表達式①只執行一次
數組:
數組是內存中的一塊連續的空間,能夠減小搜索變量的時間,提升運行的效率,數組的表現形式:數據類型[] 變量名;
數組的初始化:以int數組爲例
①int[] a=new int[10];
②int[] a=new int[]{1,2,3,4,5};
③int[] a={1,2,3,4,5,6};
二維數組或多維數組:
能夠當成變量是數組的一維數組,可意會不可言傳;
方法:
解決問題的方式;
方法的定義:方法的結構是 修飾符 可選修飾符 返回值 方法名(形參)
方法的調用:在須要調用的地方寫上方法,並注意形參的傳遞
方法中值的傳遞:java中方法是按值傳遞;
遞歸:方法使用時本身調用本身;造成一個相似的循環。
API幫助文檔的使用:
如Scanner Date等java已經寫好的類,他們類中包含豐富的方法能夠調用,咱們須要調用這些類中的方法的時候,須要引入該類所在的包,使用import java.***
這樣的格式,而後才能使用;
java中默認的包是java.lang,是基本的類所在的程序包,這不須要引入,其餘的根據使用須要引入;
JavaBean的規範: 必須是一個公共的類,必須有一個公共的無參數構造方法,屬性應該私有、隱藏起來,應該提供符合命名規範的public修飾的geter、seter方法,實現必須實現的Serializa藉口接口;設計類的考慮: has-a: 也就是組合的關係,缺乏是不能夠的,表明了這個類自己的屬性和行爲,是一種與生俱來的特色共性 is-a: 也就是繼承的關係,除了上面兩種關係,還有聚合的關係,也就是設計一個類時,不是它必要的屬性或行爲操做,是根據業務的要求或須要進行添加的一種關係訪問關係: 包含static 修飾的屬性或者方法是類級別的,沒有static 修飾的屬性或方法是對象級別的,類是惟一的,而對象能夠有不少個,java經過類來建立對象,來模擬現實中的邏輯關係解決問題,包含static修飾的方法中不能有非static的成員屬性或者調用方法,由於他們不在一個概念的層次,由於對象中的屬性或者方法有若干,不能放在一個類的角度,總之,可意會而不可言傳;this: 表示當前對象調用這個方法,簡稱當前對象;get/set方法中須要注意的地方: 若是成員屬性是一個布爾,那麼用eclipse調用source經過按鍵gernerate Geter/Seter自動得到的方法名是is***(),這時須要改寫它的方法名爲get***(),以便後期的調用;方法調用棧: 正在調用的棧在棧頂,一旦調用完畢,就被移除;包的做用: java中能夠寫若干個同名的類,但他們必須放不一樣的包中,package的做用就是劃分不一樣的包以便存放和管理類,包括提供的基本類庫;引用數據類型: 如建立一個對象的過程: 在堆中建立一個對象,對象中包含了這個對象的屬性和方法,而把它的地址發送給棧上的變量,這個變量表明這個堆中的對象的引用重載: 同一個類中,方法名相同,參數列表不一樣的形式叫重載; 它與訪問修飾符沒有關係,與返回類型沒有關係,與參數的變量名沒有關係;構造方法: 構造方法也叫構造器,是一個特殊的方法,沒有返回類型,使用訪問修飾符public + 類名(){}表示 構造方法的做用: 爲對象分配內存;建立並初始化成員的屬性;返回一個引用;