fkjava

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          Java運(yùn)行環(huán)境交互

          SunJava提供了豐富的基礎(chǔ)類庫,Java SE提供了三千多個基礎(chǔ)類(包括第7章介紹的集合框架),通過這些基礎(chǔ)類庫可以提高開發(fā)效率,降低開發(fā)難度。對于合格的Java程序員而言,至少要熟悉Java SE70%以上的類(當(dāng)然,筆者并不是讓讀者去背誦Java API文檔),但在反復(fù)查閱API文檔的過程中,大腦會自動記住大部分類的功能、方法,因此程序員一定要多練,多敲代碼。

              Java提供了StringStringBufferStringBuilder來處理字符串,它們之間存在少許差別,本章會詳細(xì)介紹它們之間的差別,以及如何選擇合適的字符串類。Java還提供了DateCalendar來處理日期、時間,其中Date是一個已經(jīng)過時的API,通常推薦使用Calendar來處理日期、時間。

              正則表達(dá)式是一個強(qiáng)大的文本處理工具,通過正則表達(dá)式可以對文本內(nèi)容查找、替換、分割等操作。從JDK1.4以后,Java也增加了對正則表達(dá)式的支持,包括新增的PatternMatcher兩個類,并改寫了String類,讓String類增加了正則表達(dá)式支持,增加了正則表達(dá)式功能后的String類更加強(qiáng)大。

              Java還提供了非常簡單的國際化支持,Java使用Locale對象封裝一個國家、語言環(huán)境,再使用ResourceBundle根據(jù)Locale加載語言資源包,當(dāng)ResourceBundle加載了指定Locale對應(yīng)的語言資源文件后,ResourceBundle對象就可調(diào)用getString方法來取出指定key所對應(yīng)的消息字符串。

          與用戶互動

              如果一個程序總是按既定的流程運(yùn)行,無須處理用戶動作,這個程序總是比較簡單的。實際上,絕大部分程序都需要處理用戶動作,包括接受用戶的鍵盤輸入、鼠標(biāo)動作等。因為現(xiàn)在還未涉及圖形用戶接口(GUI)編程,故本節(jié)主要介紹程序如何獲得用戶的鍵盤輸入。

          運(yùn)行Java程序的參數(shù)

          回憶Java程序的入口:main方法的方法簽名:

          //Java程序入口:main方法

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

              現(xiàn)在可以詳細(xì)講解main方法為什么采用這個方法簽名:

              1public修飾符:Java類由JVM調(diào)用,為了讓JVM可以自由調(diào)用這個main方法,所以使用public修飾符把這個方法暴露出來。

              2static修飾符:JVM調(diào)用這個主方法時,不可能先創(chuàng)建該主類的對象,然后通過對象來調(diào)用該主方法。JVM直接通過主類來調(diào)用主方法,因此使用static修飾該主方法。

              3void返回值:因為主方法被JVM調(diào)用,該方法的返回值將返回給 JVM,這沒有任何意義,因此main方法沒有返回值。

              上面方法中還包括一個字符串?dāng)?shù)組形參,根據(jù)前面介紹方法調(diào)用的規(guī)則:誰調(diào)用方法,誰負(fù)責(zé)為形參賦值。也就是說,main方法由JVM調(diào)用,即args形參應(yīng)該由JVM負(fù)責(zé)賦值。但JVM怎么知道如何為args數(shù)組賦值呢?我們先看下面程序:

          程序清單:codes/09/9- 1/TestArgs.java

          public class TestArgs

          {

          public static void main(String[] args)

          {

          //輸出args數(shù)組的長度

          System.out.println(args.length);

          //遍歷args數(shù)組的每個元素

          for(String arg:args)

          {

          System.out.pringln(arg);

          }}}   

          上面程序幾乎是最簡單的“HelloWorld”程序,只是這個程序增加了輸出args數(shù)組的長度,遍歷args數(shù)組元素的代碼。使用java TestArgs命令運(yùn)行上面程序,看到程序僅僅輸出一個0,這表明args數(shù)組是一個長度為0的空數(shù)組—這是合理的:因為計算機(jī)是沒有思考能力的,它只能忠實地執(zhí)行用戶交給它的任務(wù),既然我們沒有給args數(shù)組設(shè)定參數(shù)值,那么JVM就不知道args數(shù)組的元素,所以JVM以將args數(shù)組設(shè)置成一個長度為。的數(shù)組。

          改為如下命令來運(yùn)行上面程序:

          java TestArgs Java Spring

          看到如圖9.1所示的運(yùn)行結(jié)果:


          9.1main方法的形參數(shù)組賦值

          從圖9.1中可以看出,如果運(yùn)行Java程序時在類名后緊跟一個或多個字符串(多個字符串之間以空格隔開)JVM就會把這些字符串依次賦給args數(shù)組元素。運(yùn)行Java程序時的參數(shù)與args數(shù)組之間的對應(yīng)關(guān)系如圖9.2所示:


          9.2運(yùn)行Java程序時參數(shù)和args數(shù)組的關(guān)系

          如果某參數(shù)本身包含了空格,則應(yīng)該將該參數(shù)用雙引號(“)括起來,否則JVM會把這個空格當(dāng)成參數(shù)分隔符,而不是當(dāng)成參數(shù)本身。例如采用如下命令來運(yùn)行上面程序:

           java TestArgs “Java Spring”

          運(yùn)行上面命令,看到args數(shù)組的長度是1,只有一個數(shù)組元素,其值是Java Spring

          摘自《瘋狂java講義》

          posted on 2012-05-08 15:55 瘋狂軟件 閱讀(236) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 岳阳市| 林西县| 盐城市| 昌图县| 大姚县| 同德县| 隆德县| 维西| 汾阳市| 大港区| 晴隆县| 临颍县| 定兴县| 锦屏县| 芜湖县| 朝阳区| 灵山县| 新闻| 万盛区| 海安县| 中山市| 马公市| 淮南市| 英德市| 隆德县| 闵行区| 星子县| 西华县| 昭平县| 会泽县| 武清区| 通州区| 太仆寺旗| 新昌县| 平湖市| 保德县| 尖扎县| 东乡族自治县| 定陶县| 蓬莱市| 乌兰察布市|