給Java初學者的建議

來源:Java快訊? ????|???? 發布時間:2020-01-07 11:11? ????| 作者:Java小編? ????| 閱讀:

  給初學者之一:淺談Java及應用學java

  很多人對java感到茫然,不知所措,不懂java能做什么即 便知道了java很有用,也不清楚該從哪里入手所以就有了 java入門難 這一說法ok,那我們就從java到底能做什么聊起

  先說什么是java

  java是一種面向對象語言,真正的面向對象,任何函數和變量都以類(class)封裝起來

  至于什么是對象什么是類,我就不廢話了

  關于這兩個概念的解釋任何一本面向對象語言的教材里面都有

  知道了什么是java,那自然就會對java能干什么感興趣

  在說java能做什么之前,先說java作為一個真正面向對象語言的優點

  首先第一個,既然是真正的面向對象,那就要做到徹底的封裝

  這是java和c++大的不同,java所有的源碼以及編譯后的文件都以類的形式存在

  java沒有所謂的類外部定義,所有的函數(方法)以及變量(屬性)都必須在類內部定義

  這樣就不會出現一個類被切割成這里一塊那里一塊的情況,c++就可以,不是么?

  這樣做使得整個程序的結構異常清晰,明了

  其次第二個,讓人歡呼雀躍的是完全屏蔽了指針,同時引入了垃圾回收機制

  任何一個寫過c/c++代碼的人,都會對內存管理深惡痛絕

  因為這使得我們不能把主要精力放在我們關心的事情上

  而需要考慮計算機內部的一些事情,作為一個軟件工程師

  我想沒有一個人愿意把大量的時間花在內存管理上,畢竟我們不是電子工程師

  此時java的優勢體現出來了,它完全屏蔽了內存管理

  也就是說,如果你用java寫程序,寫出來的任何一個程序內存上的開銷,都不受你控制

  乍一看,似乎你受到了束縛,但實際上不是這樣

  因為雖然你的程序無法對內存進行管理,降低了一定的速度

  但你的程序會非常非常的安全,因為你無法調用一個空指針

  而不像以前寫c的時候那樣,成天因為空指針而擔驚受怕

  當然,如果你深入了解這一行,就會發現java其實也無法保證程序不去調用空的指針

  但是它會在大程度上避免空指針的調用

  這已經很好了,安全,這是java的突出的優點

  第三個,虛擬機跨平臺,這是java大的特點,跨平臺

  可能所有人都知道windows,但是不是所有人都知道unix

  和java一樣,很多人都不知道unix這種操作系統干什么用

  我不想多說unix的應用,這不是主要,但是我要說,大部分小型機

  工作站,都跑在unix一族的操作系統上,比如Linux/solaris

  unix比起windows有一個顯著的特點,穩定,這就好比思科和華為

  思科的機器慢但穩定,華為的機器快但不穩定,作為服務器這一端來說

  要的皇怯卸囁歟俏榷ǎ評nix在服務器端還是非常有市場的

  而且很重要的windows不安全,在ms的宣傳中我想所有人都很少看到安全二字

  因為windows操作系統針對的是pc用戶,pc死機就死機咯,大不了重啟

  瘟95經常冒出來的就是藍屏,在服務器這一端上因為ms沒有自己的芯片

  所以要做系統有些力不從心啊。扯遠了,那么java可以做到在windows上編譯

  然后在unix上運行,這是c/c++做不到的

  那么說到這里,java能做什么逐漸清晰起來

  剛才說到了,java程序有一個的特點是安全

  這個安全是針對你的系統來說得,系統在跑了java程序之后會特別地穩定

  而且還能跨平臺,那么很明顯,java主要應用于除了windows操作系統以外所有的平臺

  比如手機,服務器

  想想看,如果你寫的程序要跑在手機上,而手機有多少款用的是windows?

北大青鳥軟件學校

  就算有,那如果你用c/c++,是不是要針對每一款手機寫一套程序呢?

  累死,那跨平臺的java就不用,做到編譯一次,隨時運行

  同樣,在服務器這一端,如果我想給一個網絡門戶站點,比如sina

  寫一個應用程序,pc的性能肯定無法滿足sina這樣大站點并發數量的要求

  那么它就需要買服務器,那么服務器ms沒有市場,而且windows很不安全

  那么十之八九會買一個sun/ibm的機器,或者hp,但不管是誰的機器

  它裝的操作系統也不會是windows,因為windows太不安全了,而且多核的支持太差了

  這個有空再說,那么如果你要寫一個程序在這樣的機器上跑

  難道我們就在這個機器上做開發么?當然不可能,一般程序員開發用的都是pc,windows

  那么該怎么辦?寫一個程序,然后再拿到服務器上去編譯,去調試?

  肯定不可能,所以我們就希望找到一個語言,編譯完生成程序之后

  在pc上調試,然后直接移植到服務器上去,那么此時,我們就會毫不猶豫地選擇java

  因為在跨平臺以及安全性來說,java永遠是第一選擇

  ok,下面說java的缺點

  一慢,這其實是一種誤區,這就好比goto語句一樣

  java也拋棄了指針,雖然看上去似乎變慢了,但是在這個兩三年硬件性能就能翻番的年代

  速度已經不是我們關心的問題了,而且對于企業級的應用來說

  沒有什么比安全穩定更重要的,換句話說,我們可以忍受慢,但是不能忍受死機和藍屏

  而且越大型的應用,這種慢的劣勢體現得越模糊

  因為當系統項目越做越大,任何一個環節做不好都可能影響全局的情況下

  安全尤其重要,而且就像goto語句一樣

  這種過分追求速度的主張會給系統開發和糾錯以及維護帶來無可挽回甚至不可避免的損失

  把內存交給計算機去管理吧,這種代價值得

  我們做的不是pc游戲,沒必要把內存的那一點點消耗當親爹

  二難看,又是一個誤區,很多人甚至拿出Java swing控件畫出的界面來說

  呵呵,其實java不是不能畫得好看,IDEA就是java寫的IDE,挺漂亮的

  但為什么難看呢,是因為swing控件它本身就是unix時代的產物,swing控件貼近unix界面

  老外看unix界面其實挺順眼的,他們就是吃unix飯長大的

  而unix又是吃百家飯的,不像ms那么唯利是圖,所以不怎么對中國人友好

  加上我國又沒有公司在做操作系統,所以看上去是不怎么順眼

  其實玩過unix的人都知道,unix對中文的支持一直不怎么好

  三我還沒想到,其他人補充

  給初學者之二:從JDK說起

  在知道了java有什么優點,能做什么之后

  就該說一下java該如何去學了

  在說java如何去學之前,有必要把java的幾個大方向做一個簡單說明

  早在五年前,嗯,應該說是六年前,也就是99年的時候

  sun公司做出了一個決定,將java應用平臺做一個劃分

  畢竟在不同領域,語言應用特性是有區別的

  針對不同領域內的應用,sun公司可以發布相關高端標準來統一規范代碼

  這三大塊就是J2SE,J2EE以及J2ME

  這個舉措今天看來無疑是非常了不起的

  正是由于這次革命性的發展,使java從一種小打小鬧游戲性的語言

  發展成為今天企業級應用的基礎

  這里要特別說明一下J2SE J2EE J2ME中2的意思

  其實2就是英文單詞to的諧音,就是to的意思

  而不是second edition,當然java 2本身版本號就是1.2,也有點2nd edition的味道

  說點題外的,sun公司發布的java版本很有意思

  雖然總是寫是1.X但其實外界對這種版的說法也就是X.0

  比如java 2,其實就是java 1.2

  1.3其實就是3.0,1.4就是4.0,現在所說的5.0 其實就是1.5

  只是以前我們更習慣叫1.X而已

  可能到了5.0以后,就全改叫X.0而不是1.X了

  所以以后聽到別人說java 5.0,千萬別驚訝,其實就是1.5

  在這三個J2*E中J2SE是基礎,就是java 2的標準版(java 2 standard edition)

  也就是基礎的java語言部分,無論學什么java技術,J2SE都是必須掌握的

  要使用J2SE就必須安裝JDK(java development kit)

  JDK在sun公司的主頁上可以mf下載,下載后需要安裝,具體安裝流程看教材

  JDK包含有五個部分:核心API,集成API,用戶界面API,發布技術還有java虛擬機(JVM)

  先說運行環境,運行環境主要要說的就是java虛擬機(JVM)

  前面我們說過java是跨平臺的語言,那么如何做到跨平臺呢?畢竟每種操作系統都是不同的

  java的設計者們提出了一個虛擬機的概念


分享到:
文章標題:給Java初學者的建議文章鏈接: http://www.summitxu.cn/news/hyxw/107.html 本文內容、圖片由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至2353260942@qq.com 舉報,一經查實,本站將立刻刪除。互聯網教程 寵物知識(如需投稿聯系管理員開通!)