首頁技術(shù)文章正文

JavaEE課程筆記day01-Java概述

更新時間:2018-07-20 來源:黑馬程序員JavaEE培訓學院 瀏覽量:

第1章  Java概述                          
         

1.1  Java語言發(fā)展史和平臺概述

A:Java語言發(fā)展史

     詹姆斯·高斯林(James Gosling)1977年獲得了加拿大卡爾加里大學計算機科學學士學位,1983年獲得了美國卡內(nèi)基梅隆大學計算機科學博士學位,畢業(yè)后到IBM工作,設(shè)計IBM第一代工作站NeWS系統(tǒng),但不受重視。后來轉(zhuǎn)至Sun公司,1990年,與Patrick,Naughton和Mike Sheridan等人合作“綠色計劃”,后來發(fā)展一套語言叫做“Oak”,后改名為Java。

   B:Java語言版本

   *JDK 1.1.4       Sparkler     寶石                       1997-09-12

   *JDK 1.1.5       Pumpkin          南瓜                       1997-12-13

   *JDK 1.1.6       Abigail       阿比蓋爾--女子名          1998-04-24

   *JDK 1.1.7       Brutus        布魯圖--古羅馬政治家和將軍      1998-09-28

   *JDK 1.1.8       Chelsea           切爾西--城市名             1999-04-08

   *J2SE 1.2         Playground      運動場                    1998-12-04

   *J2SE 1.2.1      none          無                    1999-03-30

   *J2SE 1.2.2      Cricket       蟋蟀                       1999-07-08

   *J2SE 1.3         Kestrel       美洲紅隼(sǔn)               2000-05-08

   *J2SE 1.3.1      Ladybird    瓢蟲                       2001-05-17

   *J2SE 1.4.0      Merlin        灰背隼                    2002-02-13

   *J2SE 1.4.1      grasshopper    蚱蜢                       2002-09-16

   *J2SE 1.4.2      Mantis       螳螂                       2003-06-26

   *JAVASE 5.0 (1.5.0)      Tiger          老虎     

   *JAVASE 5.1 (1.5.1)      Dragonfly  蜻蜓     

   *JAVASE 6.0 (1.6.0)      Mustang          野馬

   *JAVASE 7.0 (1.7.0)      Dolphin           海豚

1.2 JVM,JRE,JDK的概述
1.2.1   什么是跨平臺?

平臺:指的是操作系統(tǒng)(Windows,Linux,Mac)

跨平臺:Java程序可以在任意操作系統(tǒng)上運行,一次編寫到處運行

原理:實現(xiàn)跨平臺需要依賴Java的虛擬機 JVM (Java Virtual Machine)

1.2.2     JVM   JRE   JDK說明

A:什么是JVM

JVM是java虛擬機(JVM Java Virtual Machine),java程序需要運行在虛擬機上,不同平臺有自己的虛擬機,因此java語言可以跨平臺

B:什么是JRE

包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等如果想要運行一個開發(fā)好的Java程序,計算機中只需要安裝JRE即可。

       JRE:JVM+類庫。

C:什么是JDK

JDK是提供給Java開發(fā)人員使用的,其中包含了java的開發(fā)工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。

      其中的開發(fā)工具:編譯工具(javac.exe)  打包工具(jar.exe)等

      JDK:JRE+JAVA的開發(fā)工具。

D:為什么JDK中包含一個JRE

      為什么JDK中包含一個JRE呢?

      開發(fā)完的程序,需要運行一下看看效果。

E:JDK,JRE,JVM的作用和關(guān)系

JDK包含JRE 和開發(fā)工具包

JRE 包含 核心類庫和JVM

1.3     常用dos命令
1.3.1     打開控制臺

win + R,然后cmd回車

1.3.2     常用命令

d: 回車  盤符切換

dir(directory):列出當前目錄下的文件以及文件夾

cd (change directory)改變指定目錄(進入指定目錄)

進入 cd 目錄;cd 多級目錄

回退 cd..        ;cd\

cls : (clear screen)清屏

exit : 退出dos命令行

1.4     下載安裝JDK

請參考《JDK下載安裝文檔.doc》安裝步驟


1.5  helloworld案例
1.5.1     執(zhí)行流程       

1.5.2     編寫代碼步驟

首先定義一個類

public class 類名

在類定義后加上一對大括號

{}

在大括號中間添加一個主(main)方法/函數(shù)

public static void main(String[] args){ }

在主方法的大括號中間添加一行輸出語句

System.out.println(“HelloWorld”);

1.5.3     案例代碼一

public class HelloWorld {

    public static void main(String[]args) {

        System.out.println("HelloWorld");

    }

}

運行代碼步驟:

?       在命令行模式中,輸入javac命令對源代碼進行編譯,生成字節(jié)碼文件

–      javac源文件名.java

?       編譯完成后,如果沒有報錯信息,輸入java命令對class字節(jié)碼文件進行解釋運行,執(zhí)行時不需要添加.class擴展名

–      javaHelloWorld

1.5.4     HelloWorld案例常見問題

A:找不到文件(都演示一下,讓學生看看出現(xiàn)的都是什么問題)

    a:文件擴展名隱藏導致編譯失敗

    b:文件名寫錯了

B:單詞拼寫問題(都演示一下,讓學生看看出現(xiàn)的都是什么問題)

    a:class寫成Class

    b:String寫成string

    c:System寫成system

    d:main寫成mian

C:括號匹配問題(都演示一下,讓學生看看出現(xiàn)的都是什么問題)

    a:把類體的那對大括號弄掉一個

    b:把方法體的那對大括號弄掉一個

    c:把輸出語句的那對小括號弄掉一個

D:中英文問題(都演示一下,讓學生看看出現(xiàn)的都是什么問題)

a:提示信息:錯誤: 非法字符:\????的格式

注意:java編程中需要的基本上都是英文字符

第2章  環(huán)境配置
2.1  工具安裝
2.1.1     Notepad軟件的安裝和配置

為了讓我們寫的程序錯誤看起來更直接,我們安裝一款高級記事本軟件。

Notepad軟件的安裝和配置

設(shè)置 – 首選項 – 新建 – 默認語言和編碼

2.2  環(huán)境變量配置
2.2.1     案例說明

為什么要配置

程序的編譯和執(zhí)行需要使用到j(luò)avac和java命令,所以只能在bin目錄下寫程序

實際開發(fā)中,不可能把程序?qū)懙絙in目錄下,所以我們必須讓javac和java命令在任意目錄下能夠訪問

如何配置

創(chuàng)建新的變量名稱:JAVA_HOME

計算機-右鍵屬性-高級系統(tǒng)設(shè)置-高級-環(huán)境變量-系統(tǒng)變量

為JAVA_HOME添加變量值:JDK安裝目錄

在path環(huán)境變量最前面添加如下內(nèi)容

%JAVA_HOME%\bin;

2.3  注釋
2.3.1     注釋概述

A: 什么是注釋

用于解釋說明程序的文字

B: Java中注釋分類

單行注釋

格式: //注釋文字

多行注釋

格式: /*  注釋文字  */

文檔注釋

格式:/**注釋文字 */

C: 注釋的作用

    解釋說明程序,幫助我們調(diào)試錯誤

2.3.2     案例代碼

/*

       注釋:用于解釋說明程序的文字

 

       分類:

              單行

              多行

 

       作用:解釋說明程序,提高程序的閱讀性

*/

 

//這是我的HelloWorld案例

public class HelloWorld {

       /*

              這是main方法

              main是程序的入口方法

              所有代碼的執(zhí)行都是從main方法開始的

       */

       public static void main(String[] args) {

              //這是輸出語句

              System.out.println("HelloWorld");

       }

 

}

2.4  關(guān)鍵字
2.4.1     關(guān)鍵字概述

被Java語言賦予特定含義的單詞


2.4.2     關(guān)鍵字特點

組成關(guān)鍵字的字母全部小寫

常用的代碼編輯器,針對關(guān)鍵字有特殊的顏色標記,非常直觀,所以我們不需要去死記硬背,在今后的學習中重要的關(guān)鍵字也會不斷的出來。


2.4.3     案例代碼三:

/*

    關(guān)鍵字:被Java語言賦予特定含義的單詞

 

    特點:

        A:組成關(guān)鍵字的字母全部小寫

        B:常見的代碼編輯器,針對關(guān)鍵字有特殊的顏色標記

*/

public class HelloWorld {

    public static void main(String[]args) {

        System.out.println("HelloWorld");

    }

}


第3章  語法格式
3.1  常量
3.1.1     常量概述

在程序執(zhí)行的過程中,其值不可以發(fā)生改變的量


3.1.2     常量分類

字符串常量   用雙引號括起來的內(nèi)容(“HelloWorld”)

整數(shù)常量       所有整數(shù)(12,-23)

小數(shù)常量       所有小數(shù)(12.34)

字符常量       用單引號括起來的內(nèi)容(‘a(chǎn)’,’A’,’0’)

布爾常量       較為特有,只有true和false

空常量          null(數(shù)組部分講解)

3.1.3     案例代碼四:

/*

    常量:在程序執(zhí)行的過程中,其值不可以發(fā)生改變的量

 

    常量分類:

        A:字符串常量 "HelloWorld"

        B:整數(shù)常量       12,-23

        C:小數(shù)常量       12.34

        D:字符常量       'a','0'

        E:布爾常量       true,false

        F:空常量     null(后面講解)

*/

public class ChangLiang {

    public static void main(String[]args) {

        //字符串常量

        System.out.println("HelloWorld");

 

        //整數(shù)常量

        System.out.println(12);

        System.out.println(-23);

 

        //小數(shù)常量

        System.out.println(12.34);

 

        //字符常量

        System.out.println('a');

        System.out.println('0');

 

        //布爾常量

        System.out.println(true);

        System.out.println(false);

    }

 

}


3.2  變量
3.2.1     變量概述

在程序執(zhí)行的過程中,在某個范圍內(nèi)其值可以發(fā)生改變的量

從本質(zhì)上講,變量其實是內(nèi)存中的一小塊區(qū)域


3.2.2     變量定義格式

數(shù)據(jù)類型變量名 = 初始化值;

注意:格式是固定的,記住格式,以不變應萬變


3.2.3     變量圖解

3.3  數(shù)據(jù)類型
3.3.1     計算機存儲單元

變量是內(nèi)存中的小容器,用來存儲數(shù)據(jù)。那么計算機內(nèi)存是怎么存儲數(shù)據(jù)的呢?無論是內(nèi)存還是硬盤,計算機存儲設(shè)備的最小信息單元叫“位(bit)”,我們又稱之為“比特位”,通常用小寫的字母b表示。而計算機最小的存儲單元叫“字節(jié)(byte)”,通常用大寫字母B表示,字節(jié)是由連續(xù)的8個位組成。

除了字節(jié)外還有一些常用的存儲單位,大家可能比較熟悉,我們一起來看看:

–      1B(字節(jié)) = 8bit

–      1KB= 1024B

–      1MB= 1024KB

–      1GB= 1024MB

–      1TB= 1024GB


3.3.2     數(shù)據(jù)類型概述和分類

A:為什么有數(shù)據(jù)類型

    Java語言是強類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存中分配了不同大小的內(nèi)存空間

B:Java中數(shù)據(jù)類型的分類

   基本數(shù)據(jù)類型、引用數(shù)據(jù)類型




3.4  標識符   
3.4.1     標識符概述

A 作用

       給包,類,方法,變量等起名字

B 組成規(guī)則

      由字符,下劃線_,美元符$組成

      這里的字符采用的是unicode字符集,所以包括英文大小寫字母,中文字符,數(shù)字字符等。

      注意事項

           不能以數(shù)字開頭

           不能是Java中的關(guān)鍵字

 

C : 命名原則:見名知意

a包

       最好是域名倒過來,要求所有的字母小寫

b類或者接口

       如果是一個單詞首字母大寫

       如果是多個單詞每個單詞首字母大寫(駝峰標識)

c方法或者變量

       如果是一個單詞全部小寫

       如果是多個單詞,從第二個單詞首字母大寫

d常量

       如果是一個單詞,所有字母大寫

       如果是多個單詞,所有的單詞大寫,用下劃線區(qū)分每個單詞


3.4.2     案例代碼五

/*  標識符:

就是給包,類,方法,變量起名字的符號。

    組成規(guī)則:

        A:unicode字符

            數(shù)字字符,英文大小寫,漢字(不建議使用漢字)

        B:下劃線_

        C:美元符$

 

    注意事項

        A:不能以數(shù)字開頭

        B:不能是java中的關(guān)鍵字

 

    常見命名規(guī)則:

        A:基本要求

            見名知意

        B:常見的命名

            a:包(其實就是文件夾,用于對類進行管理)

                全部小寫,多級包用.隔開

                舉例:com,com.itheima

            b:類

                一個單詞首字母大寫

                   舉例:Student,Car

                多個單詞每個單詞的首字母大寫

                   舉例:HelloWorld

            c:方法和變量

                一個單詞首字母小寫

                   舉例:age,show()

                多個單詞從第二個單詞開始每個單詞的首字母大寫

                   舉例:maxAge,getAge()

*/

public class BiaoZhiFu {

    publicstatic void main(String[] args) {

        //定義變量

        //數(shù)據(jù)類型 變量名 = 初始化值;

        inta = 10;

 

        //正確

        intb2 = 20;

        //錯誤

        //int2b = 30;

 

        //不能是java中的關(guān)鍵字

        //錯誤

        //intpublic = 40;

    }

 

}

3.5  定義變量          
3.5.1     基本數(shù)據(jù)類型變量的定義和使用

變量的定義格式:

              數(shù)據(jù)類型 變量名 = 初始化值;

       基本數(shù)據(jù)類型:

              byte,short,int,long,float,double,char,boolean

       注意:

              整數(shù)默認是int類型,定義long類型的數(shù)據(jù)時,要在數(shù)據(jù)后面加L。

              浮點數(shù)默認是double類型,定義float類型的數(shù)據(jù)時,要在數(shù)據(jù)后面加F。

 

3.5.2     案例代碼六

public class VariableDemo {

    publicstatic void main(String[] args) {

        //定義byte類型的變量

        byteb = 10;

        System.out.println(10);

        System.out.println(b);

 

        //定義short類型的變量

        shorts = 100;

        System.out.println(s);

 

        //定義int類型的變量

        inti = 10000;

        System.out.println(i);

 

        //定義long類型的變量

        long l =1000000000000000L;

        System.out.println(l);

 

        //定義float類型的變量

        floatf = 12.34F;

        System.out.println(f);

 

        //定義double類型的變量

        doubled = 12.34;

        System.out.println(d);

 

        //定義char類型的變量

        charc = 'a';

        System.out.println(c);

 

        //定義boolean類型的變量

        booleanbb = false;

        System.out.println(bb);

    }

 

}


3.5.3     變量定義的注意事項

變量未賦值,不能直接使用

引出變量的第二種使用格式

變量只在它所屬的范圍內(nèi)有效。

變量在哪對大括號內(nèi),變量就屬于哪對大括號

一行上可以定義多個變量,但是不建議

3.5.4     案例代碼七

/*  

    變量定義注意事項:

        1:變量未賦值,不能直接使用

        2:變量只在它所屬的范圍內(nèi)有效

            變量屬于它所在的那對大括號

        3:一行上可以定義多個變量,但是不建議

*/

public class VariableDemo2 {

    public static voidmain(String[] args) {

        //定義變量

        int a = 10;

        System.out.println(a);

 

        int b;

        b = 20; //變量在使用前賦值都是可以的

        System.out.println(b);

 

        {

            int c = 100;

            System.out.println(c);

        }

        //System.out.println(c);

 

        /*

        int aa,bb,cc;

        aa = 10;

        bb = 20;

        cc = 30;

        */

 

        /*

        int aa = 10;

        int bb = 20;

        int cc = 30;

        */

 

        int aa=10,bb=20,cc=30;

    }

}


3.6  數(shù)據(jù)類型轉(zhuǎn)換
3.6.1     隱式數(shù)據(jù)類型轉(zhuǎn)換

取值范圍小的數(shù)據(jù)類型與取值范圍大的數(shù)據(jù)類型進行運算,會先將小的數(shù)據(jù)類型提升為大的,再運算


3.6.2     案例代碼八

/*

    +:是一個運算符,做加法運算的。

    我們在做運算的時候,一般要求參與運算的數(shù)據(jù)類型必須一致。

 

    類型轉(zhuǎn)換:

        隱式轉(zhuǎn)換

        強制轉(zhuǎn)換

 

    隱式轉(zhuǎn)換

        byte,short,char-- int -- long -- float -- double

*/

public class TypeCastDemo {

    publicstatic void main(String[] args) {

        //直接輸出了運算的結(jié)果

        System.out.println(3+ 4);

 

        //定義兩個int類型的變量

        int a = 3;

        intb = 4;

        intc = a + b;

        System.out.println(c);

 

        //定義一個byte類型,定義一個int類型

        bytebb = 2;

        intcc = 5;

        System.out.println(bb+ cc);

 

        //我能不能不直接輸出,用一個變量接受呢?

        //用變量接受,這個變量應該有類型

        //可能損失精度

        //bytedd = bb + cc;

        intdd = bb + cc;

        System.out.println(dd);

    }

 

}


3.6.3     強制類型數(shù)據(jù)轉(zhuǎn)換

強制轉(zhuǎn)換的格式

      *b = (byte)(a + b);

強制轉(zhuǎn)換的注意事項

      *如果超出了被賦值的數(shù)據(jù)類型的取值范圍得到的結(jié)果會與你期望的結(jié)果不同


3.6.4     案例代碼九

/*

    強制轉(zhuǎn)換:

        目標類型 變量名 = (目標類型) (被轉(zhuǎn)換的數(shù)據(jù));

        不建議強制轉(zhuǎn)換,因為會有精度的損失。

*/

public class TypeCastDemo2 {

    public static void main(String[] args) {

        inta = 3;

        byteb = 4;

        intc = a + b;

        //byted = a + b;

        byted = (byte) (a + b);

    }

}

本文版權(quán)歸黑馬程序員JavaEE學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

作者:黑馬程序員JavaEE培訓學院

首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報名
和我們在線交談!