Java基礎(一)

NO.1 JVM虛擬機
JVM:虛擬機,Java一次編寫万栅,到處使用的關(guān)鍵



NO.2 JRE java運行環(huán)境
JRE:JVM + 類庫
NO.3 JDK java開發(fā)工具包
JDK: JRE + JAVA的開發(fā)工具
NO.4 JDK下載

JDK下載

NO.5 Java編程工具
基礎:notepad->Editplus->Eclipse
就業(yè): MyEclipse(主攻web開發(fā))和Eclipse都用

NO.6 Java版本
Java 標準版 :JSE 簡單基礎的開發(fā)烦粒, 但是java的主要技術(shù)都在這里面
Java 微縮版 : JME 針對特定開發(fā)分類的
Java 企業(yè)版 : JEE 對標準版的擴充,為企業(yè)開發(fā)解決問題

NO.7 第一個簡單程序
public class HelloWorld {

public static void main(String[] args) {

System.out.println(“HelloWorld");

} }

Java 基礎語法

NO.8 關(guān)鍵字
? abstract:表明類或類中的方法是抽象的;
? boolean:基本數(shù)據(jù)類型之一,布爾類型;
? break:提前跳出一個塊;
? byte:基本數(shù)據(jù)類型之一,字節(jié)類型;
? case:在 switch 語句中,表明其中的一個分支;
? catch:用于處理例外情況,用來捕捉異常;
? char:基本數(shù)據(jù)類型之一,字符類型;
? class:類;
? continue:回到一個塊的開始處;
? default:用在 switch 語句中,表明一個默認的分支;
? do:用在"do while"循環(huán)結(jié)構(gòu)中;
? double:基本數(shù)據(jù)類型之一,雙精度浮點數(shù)類型;
? else:在條件語句中,表明當條件不成立時的分支;
? extends:用來表明一個類是另一個類的子類;
? final:用來表明一個類不能派生出子類,或類中的方法不能被覆蓋,或聲明一個變
量是常量;
? finally:用于處理異常情況,用來聲明一個肯定會被執(zhí)行到的塊;
? float:基本數(shù)據(jù)類型之一,單精度浮點數(shù)類型;
? for:一種循環(huán)結(jié)構(gòu)的引導詞;
? if:條件語句的引導詞;
? implements:表明一個類實現(xiàn)了給定的接口;
? import:表明要訪問指定的類或包;
? instanceof:用來測試一個對象是否是一個指定類的實例;
? int:基本數(shù)據(jù)類型之一,整數(shù)類型;
? interface:接口;
? long:基本數(shù)據(jù)類型之一,長整數(shù)類型;
? native:用來聲明一個方法是由與機器相關(guān)的語言(如 C/C++/FORTRAN 語言)實現(xiàn)的;
? new:用來申請新對象;
? package:包;
? private:一種訪問方式:私有模式;
? protected:一種訪問方式:保護模式;
? public:一種訪問方式:公共模式;
? return:從方法中返回值;
? short:基本數(shù)據(jù)類型之一,短整數(shù)類型;
? static:表明域或方法是靜態(tài)的,即該域或方法是屬于類的;
? strictfp:用來聲明 FP-strict(雙精度或單精度浮點數(shù))表達式,參見 IEEE 754 算
術(shù)規(guī)范;
? super:當前對象的父類對象的引用;
? switch:分支結(jié)構(gòu)的引導詞;
? synchronized:表明一段代碼的執(zhí)行需要同步;
? this:當前對象的引用;
? throw:拋出一個異常;
? throws:聲明方法中拋出的所有異常;
? transient:聲明不用序列化的域;
? try:嘗試一個可能拋出異常的程序塊
? void:表明方法不返回值;
? volatile:表明兩個或多個變量必須同步地發(fā)生變化;
? while:用在循環(huán)結(jié)構(gòu)中;
? assert:聲明斷言;
? enum:聲明枚舉類型;
NO.9 數(shù)據(jù)類型
Java 中的基本數(shù)據(jù)類型分為八個原始數(shù)據(jù)類型,原始類型可分為四種: (1):整數(shù)型:byte义黎、short、int泻云、long
(2):浮點型:float宠纯、double
(3):字符型:char
(4):邏輯型 :boolean

整數(shù)型:
byte:字節(jié)型
short:短整型 
int: 整型 
long:長整型

Java 里面的轉(zhuǎn)義字符 轉(zhuǎn)義字符是指,用一些普通字符的組合來代替一些特殊字符,由于其組合改變了原來字
符表示的含義,因此稱為“轉(zhuǎn)義”层释。 常見的轉(zhuǎn)義字符: 
\n 回車(\u000a)
\t 水平制表符(\u0009) 
\b 空格(\u0008)
\r 換行(\u000d)
\f 換頁(\u000c)
\' 單引號(\u0027) 
\" 雙引號(\u0022)
 \\ 反斜杠(\u005c)


NO.10 常量和變量
常量是值不可以改變的標識符贡羔。 對常量的定義規(guī)則:建議大家盡量全部大寫,
并用下劃線將詞分隔。 如:JAVASS_CLASS_NUMBER ,FILE_PATH

變量的定義規(guī)則
(1):遵從所有標識符的規(guī)則 (2):所有變量都可大小寫混用,但首字符應小寫 (3):盡量不要使用下劃線和$符號 (4):可以先聲明再賦值,如:
int i;
i=9; 也可以聲明的同時進行賦值:
int i=9;

Java 類和對象

NO.11 類的定義
一個完整的 Java 類通常由下面六個部分組成:
包定義語句 import 語句 類定義{
    成員變量
    構(gòu)造方法
    成員方法
} 其中:只有類定義和“{}”是不可或缺的,其余部分都可以根據(jù)需要來定義。

NO.12 包的定義—OC中就沒有這個玩意
在 Java 中,包是類楣嘁、接口或其它包的集合,包主要用來將類組織起來成為組,從而對 類進行管理。
2.2:包能干什么 包對于下列工作非常有用:
(1):包允許您將包含類代碼的文件組織起來,易于查找和使用適當?shù)念悺?
(2):包不止是包含類和接口,還能夠包含其它包谆膳。形成層次的包空間勤婚。
 (3):它有助于避免命名沖突馒胆。當您使用很多類時,確保類和方法名稱的唯一性是非常困難 的。
包能夠形成層次命名空間,縮小了名稱沖突的范圍,易于管理名稱睦尽。


NO.13 構(gòu)造方法
6. 1:什么是構(gòu)造方法
類有一個特殊的成員方法叫作構(gòu)造方法,它的作用是創(chuàng)建對象并初始化成員變量型雳。
在創(chuàng) 建對象時,會自動調(diào)用類的構(gòu)造方法纠俭。
6. 2:構(gòu)造方法定義規(guī)則
Java 中的構(gòu)造方法必須與該類具有相同的名字,并且沒有方法的返回類型(包括沒有 voi d)。
另外,構(gòu)造方法一般都應用 publ i c 類型來說明,這樣才能在程序任意的位置創(chuàng)建類 的實例--對象朴则。
6. 3:示例
下面是一個 Rect angl e 類的構(gòu)造方法,它帶有兩個參數(shù),分別表示矩形的長和寬:
publ i c cl ass Rect angl e{
public Rectangle(int w,int h) {
wi dt h=w;
hei ght =h; }
}
6. 4:說明
每個類至少有一個構(gòu)造方法乌妒。如果不寫一個構(gòu)造方法,Java 編程語言將提供一個默認的,
該構(gòu)造方法沒有參數(shù),而且方法體為空外邓。
  注意:如果一個類中已經(jīng)定義了構(gòu)造方法則系統(tǒng)不再提供默認的構(gòu)造方法损话。

NO.14 屬性
8.1:屬性是什么
簡單點說,屬性就是對象所具有的靜態(tài)屬性丧枪。 8.2:定義規(guī)則
Java 類中屬性的聲明采用如下格式:

訪問修飾符 修飾符 類型 屬性名稱=初始值;

訪問修飾符:可以使用四種不同的訪問修飾符中的一種,包括 publ i c( 公共的) 、 pr ot ect ed(受保護的),無修飾符和 pr i vat e(私有的)豪诲。
publ i c 訪問修飾符表示屬性可以 從任何其它代碼調(diào)用顶捷。pr i vat e 表示屬性只可以由該類中的其它方法來調(diào)用挂绰。
pr ot ect ed 將 在以后的課程中討論屎篱。
修飾符:是對屬性特性的描述,例如后面會學習到的:st at i c服赎、f i nal 等等。 
類型:屬性的數(shù)據(jù)類型,可以是任意的類型交播。
屬性名稱:任何合法標識符 初始值:賦值給屬性的初始值重虑。如果不設置,那么會自動進行初始化,基本類型使用缺
省值,對象類型自動初始化為 nul l 。 
8.3:說明
屬性有時候也被稱為成員變量秦士、實例變量缺厉、域,它們經(jīng)常被互換使用隧土。


NO.15 方法
9. 1:方法是什么
方法就是對象所具有的動態(tài)功能提针。
 9. 2:定義規(guī)則
Java 類中方法的聲明采用以下格式:
訪問修飾符 修飾符 返回值類型 方法名稱 (參數(shù)列表)
throws 異常列表 {方法體}
 訪問修飾符:可以使用四種不同的訪問修飾符中的一種,包括 publ i c( 公共的) 、 pr ot ect ed(受保護的),無修飾符和 pr i vat e(私有的)曹傀。publ i c 訪問修飾符表示方法可以 從任何其它代碼調(diào)用辐脖。pr i vat e 表示方法只可以由該類中的其它方法來調(diào)用。pr ot ect ed 將 在以后的課程中討論皆愉。
修飾符:是對方法特性的描述,例如后面會學習到的:st at i c嗜价、f i nal 、abst r act 幕庐、 synchr oni zed 等等久锥。
返回值類型:表示方法返回值的類型。如果方法不返回任何值,它必須聲明為 voi d( 空) 异剥。
 Java 技術(shù)對返回值是很嚴格的,例如,如果聲明某方法返回一個 i nt 值,那么方法必須從 所有可能的返回路徑中返回一個 i nt 值(只能在等待返回該 i nt 值的上下文中被調(diào)用瑟由。)

方法名稱:可以是任何合法標識符,并帶有用已經(jīng)使用的名稱為基礎的某些限制條件。
參數(shù)列表:允許將參數(shù)值傳遞到方法中届吁。列舉的元素由逗號分開,而每一個元素包含一 個類型和一個標識符错妖。在下面的方法中只有一個形式參數(shù),用 i nt 類型和標識符 days 來聲 明:public void test(int days){}
throws 異常列表:子句導致一個運行時錯誤(異常)被報告到調(diào)用的方法中,以便以 合適的方式處理它。異常在后面的課程中介紹疚沐。
  花括號內(nèi)是方法體,即方法的具體語句序列暂氯。
9. 3:示例 比如現(xiàn)在有一個“車”的類——Car,“車”具有一些基本的屬性,比如四個輪子,一個
方向盤,車的品牌等等。當然,車也具有自己的功能,也就是方法,比如車能夠“開動”— —run亮蛔。要想車子能夠開動,需要給車子添加汽油,也就是說,需要為 run 方法傳遞一些參 數(shù)“油”進去痴施。車子跑起來過后,我們需要知道當前車輛運行的速度,就需要 run 方法具有 返回值“當前的速度”。
package cn.javass.javatest; public class Car {// 車這個類
private String make;// 一個車的品牌 private int tyre;// 一個車具有輪胎的個數(shù) private int wheel;// 一個車具有方向盤的個數(shù)
public Car() { // 初始化屬性
make = "BMW";// 車的品牌是寶馬 tyre = 4;// 一個車具有4個輪胎 wheel = 1;// 一個車具有一個方向盤
}
/**
* 車這個對象所具有的功能,能夠開動 * @param oil 為車輛加汽油的數(shù)量 * @return 車輛當前運行的速度
*/
public double run(int oil) { // 進行具體的功能處理 return 200.0;
} }

NO.16 為什么有棧內(nèi)存和堆內(nèi)存之分
#棧內(nèi)存:
當一個方法執(zhí)行時究流,每個方法都會建立自己的內(nèi)存棧辣吃,在這個方法內(nèi)定義的變量將會逐個放入這塊棧內(nèi)存里。
隨著方法的執(zhí)行結(jié)束芬探,這個方法的內(nèi)存棧也將自然銷毀神得。 因此,所有在方法中定義的局部變量都是放在棧內(nèi)存中的偷仿。

#堆內(nèi)存
在程序中創(chuàng)建一個對象時哩簿,這個對象將被保存到運行時數(shù)據(jù)區(qū)中宵蕉,以便反復利用(因為對象的創(chuàng)建成本通常較大),這個運行時數(shù)據(jù)區(qū)就是堆內(nèi)存节榜。
 堆內(nèi)存中的對象不會隨方法的結(jié)束而銷毀羡玛,即使方法結(jié)束后,這個對象還可能被另一個引用變量所引用(在方法的參數(shù)傳遞時很常見)
則這個對象依然不會被銷毀宗苍。只有當一個對象沒有任何引用變量引用它時稼稿,系統(tǒng)的垃圾回收器才會在合適的時候回收它。

NO.17 static的作用
1.static 是一個特殊的關(guān)鍵字讳窟,它可用于修飾方法让歼,成員變量等成員。
2.static 修飾的成員表明它屬于這個類本身丽啡,而不屬于該類的單個實例是越,因為通常把static修飾的成員變量和方法也稱為類變量,類方法碌上。
3.不使用static修飾的普通方法倚评,成員變量則屬于該類的單個實例,而不屬于該類馏予。因為通常把不使用static修飾的成員變量和方法也稱為實例變量天梧,實例方法。
4.static 的英文直譯就是靜態(tài)的意思霞丧,因此用static修飾的成員變量和方法也叫做靜態(tài)變量和靜態(tài)方法呢岗。

//舉例:

//舉例說明類成員變量和實例成員變量
public class JavaExample {

     public static void main(String[] args){
         //訪問區(qū)別,一個不用創(chuàng)建實例對象直接用類訪問蛹尝,一個必須要創(chuàng)建實例來訪問
         Example.number = 8;

         Example test = new Example();
         test.temp = 10;
         System.out.println( ""+Example.number+"區(qū)別"+test.temp);
     }
      
       public static class Example{

         static  int number;
         int temp;

    }
}
#注意用static修飾的成員變量后豫,類和實例對象都可以調(diào)用,反過來是不行的
NO.18 方法傳遞機制
#Java中方法的參數(shù)傳遞只有值傳遞突那,也就是方法外部傳進來的參數(shù)是不會隨著傳入方法內(nèi)部的操作而發(fā)生改變的
舉例:
public class JavaExample {
    public static void main(String[] args){

         int x = 9;
         int y = 7;
         System.out.println(Integer.toString(x));
         System.out.println(Integer.toString(y));
         Example.swap(x,y);

     }

       public static class Example{
           public static void swap(int a , int b ){
               int temp = a;
               a = b;
               b = temp;
               System.out.printf("交換后a= "+a+",b = "+b);
           }
     }


NO.18 API
就是java提供給我們使用的類挫酿,這些類將底層的實現(xiàn)封裝了起來,我們不需要關(guān)心這些類如何實現(xiàn)的愕难,只需要學習這些類如何使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末早龟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子猫缭,更是在濱河造成了極大的恐慌葱弟,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猜丹,死亡現(xiàn)場離奇詭異芝加,居然都是意外死亡,警方通過查閱死者的電腦和手機射窒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門藏杖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來老赤,“玉大人,你說我怎么就攤上這事制市。” “怎么了弊予?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵祥楣,是天一觀的道長。 經(jīng)常有香客問我汉柒,道長误褪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任碾褂,我火速辦了婚禮兽间,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘正塌。我一直安慰自己嘀略,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布乓诽。 她就那樣靜靜地躺著帜羊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸠天。 梳的紋絲不亂的頭發(fā)上讼育,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音稠集,去河邊找鬼奶段。 笑死,一個胖子當著我的面吹牛剥纷,可吹牛的內(nèi)容都是我干的痹籍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晦鞋,長吁一口氣:“原來是場噩夢啊……” “哼词裤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鳖宾,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吼砂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鼎文,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渔肩,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年拇惋,在試婚紗的時候發(fā)現(xiàn)自己被綠了周偎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抹剩。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蓉坎,靈堂內(nèi)的尸體忽然破棺而出澳眷,到底是詐尸還是另有隱情,我是刑警寧澤蛉艾,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布钳踊,位于F島的核電站,受9級特大地震影響勿侯,放射性物質(zhì)發(fā)生泄漏拓瞪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一助琐、第九天 我趴在偏房一處隱蔽的房頂上張望祭埂。 院中可真熱鬧,春花似錦兵钮、人聲如沸蛆橡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽航罗。三九已至,卻和暖如春屁药,著一層夾襖步出監(jiān)牢的瞬間粥血,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工酿箭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留复亏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓缭嫡,卻偏偏與公主長得像缔御,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妇蛀,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容