㈠ C#和java的運行效率誰比較快
不他們是平分秋色吧
我在這里不能完全列出不同之處,僅列出比較顯著的區別:
1.指針
JAVA語言讓編程者無法找到指針來直接訪問內存無指針,並且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是使用了指針,只是外人不得使用而已。這有利於Java程序的安全。
2.多重繼承
c++支持多重繼承,這是c++的一個特徵,它允許多父類派生一個類。盡管多重繼承功能很強,但使用復雜,而且會引起許多麻煩,編譯程序實現它也很不容易。Java不支持多重繼承,但允許一個類繼承多個介面(extends+implement),實現了c++多重繼承的功能,又避免了c++中的多重繼承實現方式帶來的諸多不便。
3.數據類型及類
Java是完全面向對象的語言,所有函數和變數部必須是類的一部分。除了基本數據類型之外,其餘的都作為類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c++允許將函數和變數定義為全局的。此外,Java中取消了c/c++中的結構和聯合,消除了不必要的麻煩。
4.自動內存管理
Java程序中所有的對象都是用new操作符建立在內存堆棧上,這個操作符類似於c++的new操作符。下面的語句由一個建立了一個類Read的對象,然後調用該對象的work方法:
Read r=new Read();
r.work();
語句Read r=new Read();在堆棧結構上建立了一個Read的實例。Java自動進行無用內存回收操作,不需要程序員進行刪除。而c十十中必須由程序貝釋放內存資源,增加了程序設計者的負扔。Java中當一個對象不被再用到時,無用內存回收器將給它加上標簽以示刪除。JAVA里無用內存回收程序是以線程方式在後台運行的,利用空閑時間工作。
5.操作符重載
Java不支持操作符重載。操作符重載被認為是c十十的突出特徵,在Java中雖然類大體上可以實現這樣的功能,但操作符重載的方便性仍然丟失了不少。Java語言不支持操作符重載是為了保持Java語言盡可能簡單。
6.預處理功能
Java不支持預處理功能。c/c十十在編譯過程中都有一個預編澤階段,即眾所周知的預處理器。預處理器為開發人員提供了方便,但增加丁編譯的復雜性。JAVA虛擬機沒有預處理器,但它提供的引入語句(import)與c十十預處理器的功能類似。
7. Java不支持預設函數參數,而c十十支持
在c中,代碼組織在函數中,函數可以訪問程序的全局變數。c十十增加了類,提供了類演算法,該演算法是與類相連的函數,c十十類方法與Java類方法十分相似,然而,由於c十十仍然支持c,所以不能阻止c十十開發人員使用函數,結果函數和方法混合使用使得程序比較混亂。
Java沒有函數,作為一個比c十十更純的面向對象的語言,Java強迫開發人員把所有例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。
8 字元串
c和c十十不支持字元串變數,在c和c十十程序中使用Null終止符代表字元串的結束,在Java中字元串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言的核心,用類對象實現字元串有以下幾個優點:
(1)在整個系統中建立字元串和訪問字元串元素的方法是一致的;
(2)J3陽字元串類是作為Java語言的一部分定義的,而不是作為外加的延伸部分;
(3)Java字元串執行運行時檢空,可幫助排除一些運行時發生的錯誤;
(4)可對字元串用「十」進行連接操作。
9「goto語句
「可怕」的goto語句是c和c++的「遺物」,它是該語言技術上的合法部分,引用goto語句引起了程序結構的混亂,不易理解,goto語句子要用於無條件轉移子程序和多結構分支技術。鑒於以廣理由,Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使用,使程序簡潔易讀。
l0.類型轉換
在c和c十十中有時出現數據類型的隱含轉換,這就涉及了自動強制類型轉換問題。例如,在c十十中可將一浮點值賦予整型變數,並去掉其尾數。Java不支持c十十中的自動強制類型轉換,如果需要,必須由程序顯式進行強制類型轉換。
11.異常
JAVA中的異常機制用於捕獲例外事件,增強系統容錯能力
try{//可能產生例外的代碼
}catch(exceptionType name){
//處理
}
㈡ Java和c++編寫的程序那個的效率要高一些
Java的編寫效率一般高一點,Java提供的功能多一點,所以相對來說寫的代碼可以少一點;
C++的運行效率要高於Java,實現同樣的功能,C++的運行時間一般要比Java程序短很多。
㈢ java的效率高,還是c的效率高
C的運行效率明顯要比JAVA高,因為C是編譯型的,直接將源碼編譯成機器代碼;而JAVA是解釋型,源碼被編譯成二進制偽代碼,由JAVA虛擬機解釋執行。
但是,由於C是編譯型的,它的可移植性差;而JAVA是解釋執行,因此具有很好的移植性,可跨平台運行。
目前java運行速度是沒有c快,但它的internet編程方面的強大優勢,易學性,完全面向對象的特性,以及全美40%以上的公司都採用java,你說你想學什麼?
java和c的速度比較,是相對的,針對不同的應用, 又不同的結果,編一個普通的本地應用程序,一般c 要快於java, 編web應用,由於c實現的cgi程序基本是進程型,而java application server 的管理servlet採用線程方式,所以,在訪問量大的情況下,java有優勢。
但是緊緊比較速度,除非是對實時性要求高的情況下,是不夠的。由於JAVA又比較完整,規范的庫,語言定義比較嚴格,一般開發速度比較高。
㈣ C和Java的執行效率相差很大嗎
早期大概60倍。後來減到3-4倍。
不過,大部分情況時間是被資源消耗的。 舉個例子。一句sql要1秒。 處理上假設 c用1ms,java用10ms ,慢了10倍
可是 1001ms 和 1010ms 使用者不會有感覺。
另外,現在大部分使用C++,這個性能差距就更小了。
而 C#之類,已經和java比沒有任何優勢了。都使用了虛擬機。
㈤ Java語言的運行效率是不是很低是不是沒有C語言高
C語言的運行效率是相對於Java,C#等高級語言是最高的,毫無疑問,這並不是說java不如C,只是重點不同。
㈥ Java和c語言哪個執行效率高各有什麼優缺點
單純論執行效率,C比Java高。
C語言編譯出來的程序執行過程是機器直接執行其機器碼。
Java語言編譯出來的程序執行過程是,Java虛擬機翻譯Java位元組碼,然後將其轉換成機器碼告知機器運行。
同時Java語言是自動管理內存的,所以他會追蹤大部分對象的引用情況,佔用的內存比C語言程序要高一些。
相對於C語言Java的優點:
1,開發較快速,難度較低,開發項目時需要的人手少,成品速度快,對開發人員要求低於C語言。
2,相關社區活躍,討論和共享java技術的沒有任何一個語言的社區敢相提並論,壓倒性優勢。
3,異常容易追蹤,C的異常很難處理,有的時候要熬夜找bug
缺點:
1,運行速度較C慢,程序越大越明顯
2,難與底層操作系統和硬體打交道,用C可以輕而易舉獲取操作系統硬體信息,java則不能。
㈦ 如何優化JAVA代碼及提高執行效率
張小喜告別996 實現高效編程 減少開發壓力 開啟Java高效編程之門(完整版高清視頻)網路網盤
鏈接:
若資源有問題歡迎追問~
㈧ java為什麼沒有c/c++運行速度快
回答錯誤太多。
1、Java不一定效率就比C++低。一般情況下,Java的效率和C++處於一個數量級,少數情況下Java會比C++更快。
2、現在根本沒有所謂的解釋性語言和編譯性語言之分。Java一樣能通過jaotc,gcj或者Excelsior Jet之類的編譯器編譯成機器碼,C++一樣能夠通過解釋器解釋執行
3、Java虛擬機的主流實現Hotspot里自帶一個JIT編譯器,能夠把位元組碼編譯成機器碼。JIT雖然需要運行時編譯,但是能夠做更多優化,「效率高低顯而易見」根本是無稽之談。
4、「比如java程序不能直接管理內存」更是錯錯錯,通過Unsafe或者JNI,Java應用意義能夠直接管理內存,譬如Spark的一部分就是自己管理了一塊內存。
5、「雖然這樣會造成程序員的工作量加大,但是內存的利用率肯定是比java要高的」更是錯的,gc比人工管理要靠譜多了,C++里的內存泄露到現在都無法避免。
6、「個人感覺應該是垃圾回收的問題」也是錯的,Java應用吃內存主要還是過多的new以及JVM本身佔用的原因,gc的影響相對來說要小得多。
7、「虛擬機就相當於一個操作系統」「通過虛擬操作系統將指令傳遞到實際操作系統肯定是效率較低的」簡直錯到離譜,JNI和JIT都被你吃了啊?
㈨ java和C語言比哪個效率高
java是跨平台的,效率比一般的高級語言低,C語言幾乎直接轉換為機器語言,效率是比所有的高級語言都高。因此C寫的軟體在運行時比JAVA寫的同樣功能的代碼效果許多許多。