Java 還是 C++?

來源:互聯網
上載者:User

標籤:nbsp   window   col   速度   疑問   方便   visual   you   易用   

Java 特別象 C++;由此很自然地會得出一個結論:C++似乎會被Java 取代。但我對這個邏輯存有一些疑問。 無論如何,C++仍有一些特性是Java 沒有的。而且儘管已有大量保證,聲稱Java有一天會達到或超過C++的 速度。但這個突破迄今仍未實現(儘管Java 的速度確實在穩步提高,但仍未達到C++的速度)。此外,許多 領域都存在為數眾多的 C++愛好者,所以我並不認為那種語言很快就會被另一種語言替代(愛好者的力量是 容忽視的。比如在我主持的一次“中/進階Java 研討會”上,Allen Holub聲稱兩種最常用的語言是Rexx 和COBOL)。 我感覺 Java 強大之處反映在與 C++稍有不同的領域。C++是一種絕對不會試圖迎合某個模子的語言。特別是 它的形式可以變化多端,以解決不同類型的問題。這主要反映在象Microsoft Visual C++和Borland C++ Builder(我最喜歡這個)那樣的工具身上。它們將庫、組件模型以及代碼產生工具等合成到一起,以開發視 窗化的末端使用者應用(用於Microsoft Windows作業系統)。但在另一方面,Windows開發人員最常用的是 什麼呢?是微軟的 Visual Basic(VB)。當然,我們在這兒暫且不提VB 的文法極易使人迷惑的事實——即 使一個只有幾頁長度的程式,產生的代碼也十分難於管理。從語言設計的角度看,儘管VB 是那樣成功和流 行,但仍然存在不少的缺點。最好能夠同時擁有 VB 那樣的強大功能和易用性,同時不要產生難於管理的代 碼。而這正是Java 最迷人的地方:作為“下一代的 VB”。無論你聽到這種主張後有什麼感覺,請無論如 何都仔細想一想:人們對Java 做了大量的工作,使它能方便程式員解決應用級問題(如連網和跨平台 UI 等),所以它在本質上允許人們建立非常大型和靈活的代碼主體。同時,考慮到 Java 還擁有我迄今為止尚未 在其他任何一種語言裡見到的最“健壯”的類型檢查及錯誤控制系統,所以Java 確實能大大提高我們的編程 效率。這一點是勿庸置疑的! 但對於自己某個特定的項目,真的可以不假思索地將 C++換成Java 嗎?除了Web程式片,還有兩個問題需要 考慮。首先,假如要使用大量現有的庫(這樣肯定可以提高不少的效率),或者已經有了一個堅實的C或 C++程式碼程式庫,那麼換成 Java 後,反映會阻礙開發進度,而不是加快它的速度。但若想從頭開始構建自己的所 有代碼,那麼Java 的簡單易用就能有效地縮短開發時間。 最大的問題是速度。在原始的 Java 解譯器中,解釋過的 Java 會比C慢上 20到 50倍。儘管經過長時間的發 展,這個速度有一定程度的提高,但和C比起來仍然很懸殊。電腦最注重的就是速度;假如在一台電腦 上不能明顯較快地幹活,那麼還不如用手做(有人建議在開發期間使用Java,以縮短開發時間。然後用一個 工具和支撐庫將代碼轉換成C++,這樣可獲得更快的執行速度)。 為使Java 適用於大多數Web 開發項目,關鍵在於速度上的改善。此時要用到人們稱為“剛好及時”(JustIn Time,或JIT)的編譯器,甚至考慮更低級的代碼編譯器(寫作本書時,也有兩款問世)。當然,低級代 碼編譯器會使編譯好的程式不能跨平台執行,但同時也帶來了速度上的提升。這個速度甚至接近 C和 C++。 而且Java 中的程式交叉編譯應當比C 和 C++中簡單得多(理論上只需重編譯即可,但實際仍較難實現;其他 語言也曾作出類似的保證)。 在本書附錄,大家可找到與Java/C++比較.對Java 現狀的觀察以及編碼規則有關的內容。

 

 1 package Com.TomTest; 2  3  4 class TomTest_43 { 5       public static void main(String args[]){ 6            String s1,s2; 7            s1=new String("we are students"); 8            s2=new String("we are students"); 9            System.out.println(s1.equals(s2));10            System.out.println(s1==s2); 11            String s3,s4; 12            s3="how are you";13            s4="how are you";14            System.out.println(s3.equals(s4));15            System.out.println(s3==s4);16         }17     }

 

Java 還是 C++?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.