亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA學習經驗之談

2019-11-18 11:45:46
字體:
來源:轉載
供稿:網友

  本文是我自2002年9月開始java學習以來的一點經驗之談。首先我不是有豐富編程經驗的程序員,所以本文不對JAVA的具體語法、編程技巧和設計模式做過多的論述,僅從個人的學習角度談感受。
  
  由于有大學期間的C語言學習經歷我對JAVA的基本語法相對來說比較熟悉。最開始的幾個星期我一直在努力理解JAVA語言運做方式和熟悉語法,分別包括JVM虛擬機的運做原理、JAVA程序元素在內存中的分配、JAVA是如何實現跨平臺的可移植能力、及其JAVA為何被稱為一種健壯的語言、APPLET小程序的概念;許多語言都通有的基本型別、流程控制語句、基本類庫函數等等。到后來逐步了解了JAVA語言的一些特性比如JAVA對指針的處理、數組的特性、特有的接口功能(實現了C++的多繼續功能,同時擯棄了相應的負面效果)、完善的異常處理機制、以及JAVA對流訪問的實現方式、簡化的網絡編程、顯式的線程定義等等。
  
  其中熟悉語法的過程相當漫長,就是到現在我也不能說自己已經充分把握了其中的全部,因為JAVA提供的標準類庫實在是個龐大的集合,以至于常用的類庫只占其中的很小比例。
  下面我將對不同的學習單元做較具體的說明。
  
  首先應該是對OOP的理解,在充分把握OOP語言之前只能給出相對籠統的描述,如同管中窺豹只見一斑,OOP(OBJECT ORIENTED PROGRAMMING)面向對象的程序設計,字面上看是把對象作為主體,對象可理解為抽象的物體,這里先談談我對過程化程序語言的理解,許多資料描述PPL(PROCEDURAL PROGRAMMING LANGUAGE)用了一個“HOW”
  ,意思是說PPL描述了如何完成動作,當然完成動作的物體可以稱之為OBJECT,所以我理解為PPL語言是在描述一個物體如何去做一個或多個動作執行程序任務,假如需要完成多個動作就需要多段代碼,假如不同物體完成相同的任務也要重新寫代碼,這就造成浪費,另外,假如PPL中的部分代碼需要修改,差不多肯定要影響到后面的部分,這造成維護的困難,由于PPL代碼的功能和代碼本身是密不可分的,所以隱藏重要代碼成為不可能(為什么要藏呢?比如說你寫了一個商用類庫的第1個版本并且發放出去了,后來你發現前一個版本里有個函數有點不妥當需要修改或者干脆刪掉,這時候問題來了,由于你的代碼對用戶是完全透明的,有的用戶已經把你要修改的函數應用到自己的程序中去了,假如你改變了原來的代碼,用戶的代碼也隨即無法工作,這就是不使用實現隱藏的災難,相信你的老板面臨由你一手造成的兩難境地時不會對你手軟~)。下面該OOP了,它把一切事物都抽象為對象OBJ這和人類的思維方式相同,但是需要一點哲學的思想,所以我一直認為哲學和編程是緊密對應的,OOP優雅地解決了PPL的所有問題,實現了封裝和代碼重用,這就達到了信息隱藏和效率的提升,同時也降低了維護的成本,然而,我們是不是應該淘汰PPL呢,既然OOP這么優秀我們還有什么理由繼續使用PPL呢,在我看來答案是否定的,為什么呢,大家知道C是一種過程化的語言,它是和UNIX一起成長起來的,幾十年的時間以來它一直經久不衰,有存在就一定有原因,C被搞硬件編程的人稱為高級語言,因為它和匯編語言相比確實要方便許多,假如你知道匯編語言的重要性同時也就明白了C語言的價值,就是對硬件的底層編碼,高效率和可讀性在C中被結合,C就是一種過程化語言,所以許多的過程化語言都將存在下去,他們有的語法簡單易用、有的具備非凡的功能。PPL和OOP注定將共存,沒有好與壞的區別,編程語言的發展就象人類的歷史一樣,以前人們知道通過捕魚可以得到魚吃,說不定哪天就出現專門在海里工作的自動捕魚機,人們要做的只是到機器那去取魚,而捕魚的過程被封裝在捕魚機的機器里,這個比喻也許能幫助你理解OOP的概念,但這個不是全面,具體的要靠自己去理解。
  
  下面談JAVA特有的JVM(JAVA VIRTUAL MACHINE)吧,虛擬機這個概念不好理解,什么叫虛擬機?這和JAVA特有的可移植性有關,既然要可移動就不能和具體的計算機硬件有關,你這樣想吧,假如WINDOWS機器是美國人,UNIX機器是法國人,APPLE機器是德國人,并且假設你只會漢語而且你是這三個只懂本國語言人的老板,你需要給他們布置工作,于是你找到他們三個,面對面講話,他們誰也聽不懂啊,所以你們在一起工作沒有結果可言。所以你就想了個主意,你為他們每個人都配了個形影不離的翻譯,你說話時對著翻譯,翻譯就把你的話解釋給他們三人,OK,問題解決,你應該會問這樣做不是要增加成本嗎,沒錯,翻譯的過程是要損失效率的,但這使你不至于什么事都做不了?,F在你應該能多少了解JVM的概念了吧,就象個翻譯。
  
  這個將是很輕易被忽視但是極端重要的東東—JAVA元素在內存中的分配情況。首先假定你有STACK堆棧的概念,它是內存中的一個部分,特性是數據訪問是先進后出,后進先出,這里你要明白這8個字有個隱含的約束,就是時間,假如你要明確數據進出的順序,就要明確它們進出的時機,主要是出棧的時間,就是說你要明確指出什么時候這個數據應該出棧,這樣才能保證先前進棧的數據有機會出棧。還有就是堆的概念,堆是程序運行時大量OBJECT對象存在的空間,你要有個形象的想象圖,不要以為計算機是在神奇地憑空完成程序,就象自然萬物數據也是要有空間才能存在的,回顧剛才說到的堆棧以及它的特性,先告訴你它被用來存放基本數據類型和REFERENCE引用,什么是引用呢,書上說它是指向OBJECT物體的東西,用它來訪問具體的OBJECT,那為什么不直接訪問OBJECT呢?我猜想有如下原因(不一定是事實,也不是無道理),首先是因為效率,訪問堆棧的速度要比堆快,因為堆相對堆棧比較無序、無組織性,你也許要問,那為什么不把OBJECT對象放到堆棧里呢,那樣不是更快么?別忘了OBJECT和自然物體一樣也有屬性的,屬性不好理解,你就當它是體積、重量什么的吧,把OBJECT放到堆棧是不可能的,堆棧容納不下(我猜測堆棧的大小是固定的值而且不會很大),即使能容納下個別的OBJECT,注重OBJECT的體積可不全一樣。明智的方法是用REFERENCE做個標示,假設你在一個阿拉伯國家當老師,那里的人名字可是很長的,又假使你很熟悉你的每個學生所以不會認錯人并且你給他們每人一個固定的學號,上課時你要叫學生回答問題,你選擇叫他們完整的全名呢(阿拉伯國家叫全名以外的外號和縮短的名字是不尊重的行為,也許吧,哈哈),還是叫他們的學號?REFERENCE引用就好比學號吧。另外還有STATIC靜態內存區,是用來專門保存靜態數據的,他們有著非凡的作用和意義,先不說這個。前面說到的這些還不完全,但有一點可以肯定,明確了解他們會使你更快地把握編程語言,幫助理解和分析具體的程序,這些對學習任何一門語言來說都同樣重要。
  
  現在來說一下OVERLOAD和OVERRIDE這兩個概念,不幸的是這兩個非常重要的概念被許多人錯誤地理解了,真是要細細說道一下。首先,看這兩個英文單詞:OVERLOAD—
  超載,過載,重載,超出標準負荷;OVERRIDE:重置,覆蓋,使原來的失去效果。這兩個詞在外國人來看絕對不會弄混,可換了國人恐怕沒幾個初學者能搞得明白,問題在哪呢?我來告訴你,就在這個“重”字上,有許多人(包括我的大學C++課老師)讀OVERLOAD的中文譯名為—重(chong 二聲,升調)載,實際上應該讀(zhong 四聲,降調),OVERRIDE的中文譯名是—重(chong 二聲,升調)置,把重載和重置混為一體了,接著就有人把二者混用,原因主要還是對二者的涵義不明晰。先說OVERLOAD,其實OVERLOAD和OVERRIDE不是什么具體的東西,二者都是機制,OVERLOAD我喜歡叫它超載,是對函數而言(假如不知道什么是函數……那你不要看了)也就是方法(JAVA的函數標準稱謂),這里引用一個經典的說明:你怎么表達洗東西,是不是說洗手、洗車、洗衣服之類的?這些你平時再也熟悉不過的詞語的涵義是什么你真的清楚嗎?比如洗車怎么洗,洗手又怎么洗,它們是相同的過程嗎?你肯用洗車的方式洗手?還是用洗衣服的方式去洗車?懂了嗎,盡管你說話的時候沒有明確地說我要洗我的手,用洗手的方式;或者我要用洗衣服的方式洗一件衣服。不需要那樣麻煩地表達,這就是超載的意思了,具體的語法用我解釋嗎?好吧,OVERLOAD超載是指在同一可訪問區內被聲名的、幾個、具有不同參數列的(參數類型/個數/順序,不同)、同名函數,程序會根據不同的參數列來確定需要調用的函數,這種機制叫超載,超載不關心函數的返回值類型(返回值類型及其為何不能作為超載函數的判定因素在這里不描述)。OVERLOAD覆蓋是指派生類(派生類這里不做描述)中存在重新定義的函數,其函數名、參數列、返回值類型必須同父類中的相對應被覆蓋的函數嚴格一致,覆蓋函數和被覆蓋函數只有函數體(花括號中的部分)不同,當派生類對象調用子類中該同名函數時會自動調用子類中的覆蓋版本,而不是父類中的被覆蓋函數版本,這種機制就叫做覆蓋。明白了沒?這兩個看似生僻怪異的機制可是以后編程中經常用到的哦。
  
  先寫到這里了,提醒大家一下假如沒有英語基礎還是別學編程了,不然困難會很大,99%的技術文檔都是英文,MICROSOFT的MSDN應該有中文版本。另外90%的優秀書籍都是英文版本,比如BRUCE ECKEL的大作 “THINKING IN XXX”系列在他的網站直接提供電子版本的免費下載,很棒的書,目前免費電子版已經出到第3版。相信國內很多人都知道“侯捷”這個臺灣人,他曾翻譯過前面提到的B。E。大師的“THINKING IN JAVA Second Edition”,該書口碑極佳,書中對全數的名詞術語的翻譯比較精準,基本表達了原作者的意思,也是我看過的JAVA書中最為出眾的一本,可惜世上無完美,由于侯先生是臺灣人,書中使用的詞語有的偏重臺灣化,盡管他已經在序中說明將盡量使用大陸的構詞習慣,有些地方還是差強人意。我在這里強烈推薦中級和剛入門的朋友吃透這本書,書中的知識點闡述相當詳盡(個人認為不完美,其實沒有什么是完美的),函蓋了大部分重點要素,是一本系統學習JAVA的好書,但要注重,該書不是面向

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久中文字幕2018| 青青久久av北条麻妃海外网| 欧美日韩一区二区在线播放| 亚洲国产日韩欧美在线动漫| 国产精品视频26uuu| 国产欧美va欧美va香蕉在| yellow中文字幕久久| 欧美一级大片在线观看| 精品国产1区2区| 欧美成人激情视频免费观看| 成人免费看片视频| 81精品国产乱码久久久久久| 亚洲午夜国产成人av电影男同| 粉嫩老牛aⅴ一区二区三区| 97色在线视频| 国产日韩欧美在线视频观看| 日韩美女写真福利在线观看| 欧美精品国产精品日韩精品| 一区二区三区四区在线观看视频| 亚洲欧美一区二区三区在线| 亚洲一区二区三区sesese| 欧美最顶级的aⅴ艳星| 日韩视频免费中文字幕| 国产精品色午夜在线观看| 奇门遁甲1982国语版免费观看高清| 在线成人激情黄色| 欧美日韩国产专区| 日本中文字幕成人| 亚洲国模精品私拍| 在线看片第一页欧美| 一区二区国产精品视频| 成人激情视频在线观看| 国产精品丝袜视频| 亚洲三级 欧美三级| 久久久久999| 欧洲精品久久久| 国产成人精品av在线| 亚洲人成在线观看| 久久久91精品国产一区不卡| 欧美丰满少妇xxxxx做受| 成人激情免费在线| 久久成人精品电影| 日韩在线视频网站| 日本国产一区二区三区| 亚洲韩国日本中文字幕| 欧美福利在线观看| 国产精品r级在线| 午夜精品久久久久久久99热浪潮| 久久6免费高清热精品| 欧美精品在线网站| 亚洲成人a**站| 高跟丝袜一区二区三区| 亚洲高清免费观看高清完整版| 91在线观看免费高清完整版在线观看| 亚洲男人av在线| 国产成人a亚洲精品| 亚洲尤物视频网| 欧美激情第6页| 一本色道久久88综合亚洲精品ⅰ| 57pao成人国产永久免费| 91欧美精品午夜性色福利在线| 亚洲欧美日韩国产中文| 91沈先生在线观看| 九九久久久久久久久激情| 欧美成人精品在线视频| 91爱视频在线| 国产精品视频公开费视频| 亚洲色图18p| 久久99精品国产99久久6尤物| 岛国av在线不卡| 亚洲第一页在线| 国产精品情侣自拍| 日韩免费在线播放| 久久人体大胆视频| 国产欧美va欧美va香蕉在| 黄色一区二区三区| 久久久久久午夜| 欧美黑人狂野猛交老妇| 欧美极品第一页| 久久影院免费观看| 亚洲免费福利视频| 亚洲一区第一页| 亚洲色图色老头| 欧美黄色片在线观看| 国产精品专区一| 欧美精品在线观看91| 国产精品亚洲综合天堂夜夜| 热99久久精品| 欧美高清videos高潮hd| 欧美日韩成人网| 亚洲第一页中文字幕| 久久理论片午夜琪琪电影网| 日韩视频永久免费观看| 在线精品视频视频中文字幕| 中文字幕日韩欧美在线视频| 国产色婷婷国产综合在线理论片a| 奇米四色中文综合久久| 久久精品国产欧美激情| 亚洲片在线资源| 亚洲影院色无极综合| 亚洲精品国产欧美| 国产精品久久久久久网站| 亚洲最大激情中文字幕| 在线精品91av| 日韩成人中文字幕| 日韩欧美亚洲一二三区| 亚洲欧美国产日韩天堂区| 国产成人久久久| 欧美激情亚洲一区| 懂色aⅴ精品一区二区三区蜜月| 国产成人精品av在线| 久久久久久久999精品视频| 亚洲2020天天堂在线观看| 国产精品极品美女在线观看免费| 日韩精品福利网站| 亚洲精品自拍偷拍| www日韩欧美| 日本欧美一二三区| 亚洲精品之草原avav久久| 国产日韩欧美中文在线播放| 91牛牛免费视频| 日韩精品中文字幕在线观看| 欧美在线视频a| 国产精品久在线观看| 久久久成人精品视频| 日韩在线中文字| 日本在线观看天堂男亚洲| 国产免费一区二区三区香蕉精| 国产成人精品一区二区三区| 欧美与欧洲交xxxx免费观看| 精品高清美女精品国产区| 国产不卡在线观看| 欧美成人免费一级人片100| 亚洲男人天堂2019| 91高清在线免费观看| www欧美xxxx| 欧美孕妇孕交黑巨大网站| 国产成人精品在线视频| 亚洲天堂视频在线观看| 一区二区三区国产在线观看| 懂色av一区二区三区| 日韩免费黄色av| 91免费人成网站在线观看18| 欧美日本黄视频| 欧美激情精品久久久久久蜜臀| 欧美大片免费观看| 国产国语刺激对白av不卡| 久久99久久亚洲国产| 日韩中文字幕在线看| 亚洲高清色综合| 国产美女91呻吟求| 午夜欧美不卡精品aaaaa| 黑人极品videos精品欧美裸| 亚洲精品国产电影| 久久久久久香蕉网| 亚洲综合精品伊人久久| 国产精品精品视频一区二区三区| 欧美日韩中文在线观看| 欧美日韩国产91| 这里只有精品在线播放| 国产中文字幕91| 亚洲精品电影网| 久久久久国产精品一区| 日韩电影在线观看永久视频免费网站|