java語言與c的區別
1、JAVA中的內存分配是動態的,程序員不必關心內存管理方面的問題 2、內JAVA是一種解釋型的語言容 3、JAVA沒有指針 4、JAVA僅允許單一繼承 5、JAVA不能定義全局變數 6、JAVA不用goto語句 7、JAVA不支持宏定義 8、JAVA對每種數據類型都分配固定長度 9、JAVA中沒有頭文件 java和C最本質的區別就是, java是面向對象的語言,而C是面向過程的語言(雖然C可模擬OOP, 但它從本質來說還是面向過程的). 而C多用於開發驅動程序,系統內核,嵌入式程序,等對速度要求比較高的程序. 它們的應用領域也不同,Java側重於游戲類等軟體,C語言側重於應用程序的編輯相比而言c語言要容易些
⑵ JAVA語言與C+語言有什麼區別
就沒有一個回抄答看著是靠譜襲的,給你解釋JAVA和C++最本質的區別:
java是解釋型語言,C++是編譯型語言。
什麼是解釋型語言?解釋型語言是依賴虛擬機,才能運行的語言。在使用Java的時候,你必須安裝有SUN的java虛擬機,才能夠運行java語言。因為你的java代碼,是要先進入虛擬機裡面,虛擬機本質上是一個語言翻譯機,它會把你的代碼翻譯成0和1,然後給CPU跑
什麼是編譯型語言?編譯型語言不需要依賴任何環境,代碼寫完編譯後,直接就是0和1,CPU能直接跑
優缺點:
解釋性語言跨平台,比如在windows上,linux上,你都可以用java寫代碼,而且代碼可以互相移植,基本上不需要改動。因為虛擬機這個中間人幫你轉換了。
編譯型語言依賴平台,但速度快。C++,在windows上寫完,你要換到linux上,那可是千難萬難,要改很多。
⑶ c語言和java的區別
相同的地方:
1、語法類似:
由於Java可以算是從C++發展而來的,因此Java與C語言的語法比較類似
2、編程的熟練程度就是對語言程序庫的掌握程度:
從某種程度上來說,編程語言都是由語法和相應的程序庫所構成,Java有自身的類庫,C語言則有標准庫。所謂的編程,就是使用與語法來調用和組合程序庫中的函數。
不同的地方:
1、內存管理
在Java中,基本不用考慮內存的問題,如果想用一個對象,new一個就可以,這個過程的背後則是JRE為對象分類的一定內存,當JRE發現你不再使用這個對象的時候,他就會自動回收內存,也就是說你只管借東西,不用管歸還,因為與有人當你的跟班,在你不使用的時候就把東西歸還了,不過這個過程還是有的,只不過是JRE作的而已。
但是C則不同,如果你想用,你可以用malloc之類的方法申請內存,當你使用完了,因為沒有跟班的,你需要自己把這塊內存歸還回去,也就是調用free方法來完成這個任務。由於需要顯式的歸還內存,因此當一個函數需要將一塊內存返回給調用者的時候,問題就比較復雜了,不如面向對象和具有內存回收功能的Java那麼直觀了。對於這個問題,在C語言中,有幾種解決方案:
(1)
在調用者中先分配好內存,作為參數傳入到被調用的函數中
(2)
在被調用的函數中分配,使用完後在調用者中釋放
(3)
在被調用函數中使用static變數,可以將該變數返回
2、面向對象
Java的面向對象的特點很明顯,而C則是一個地道的結構化語言。
Java中有一個字元串類String,
通過調用
String.length()就可以知道字元串的長度,但是在C語言中,則需要調用函數strlen(str)來得到字元串(字元數組)的長度。由於C不是面向對象的語言,也就沒有this的概念,因此當使用一個與某個「東西」相關的函數時,就需要不厭其煩的將代表這個「東西」的變數作為參數傳遞進去。
3、名稱空間
Java通過包(package)來實現名稱空間,在C語言中,所有的函數都處於同一名稱空間,也就是沒有名稱空間,因此就會很多程序提供的api介面函數都有一個前綴,例如MYSQL的mysql_init(),
mysql_real_connect(),
mysql_real_query()等函數名稱前面的mysql_。
給你找的資料。
希望對你有所幫助。。
⑷ C語言和java相比較,各自的優勢是什麼
c語言與java的區別與各自的優勢:(c是面向過程的,java是面向對象的)
1.語言背景:
C語言是在單機時代應用非常廣泛,它融合了高級語言的簡單易用和匯編語言的執行效率。而Java是在研究電子消費產品開發平台和互聯網應用的基礎上實現的,它的許多語言特性也是從c語言那裡沿用和發展,並且使面向對象更加自然和完善(如安全性和代碼的移動性)。
2.語言跨平台:
C語言不可以跨平台,JAVA 是不怕這一點的,因為Java可以跨平台,在windows 和 unix 等系統上都可以很好的運行。
3.指針管理:
指針是c語言最大的優點,它可以使用戶幾乎可以訪問計算機的所有內存資源和其他部分資源(就是指那裡打那裡)。同時也是c語言程序最難掌握和調試的問題,並且給系統的安全性和穩定性帶來很大的困難。 而java中沒有指針的概念,盡管也有數組和對象的引用的概念,但它的管理全部交給系統管理,這樣限制了用戶的資源的訪問,但是也給java系統帶來安全性和穩定性。JAVA語言讓編程者無法找到指針來直接訪問內存無指針,並且增添了自動的內存管理功能,從而有效地防止了c語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是使用了指針,只是外人不得使用而已。這有利於Java程序的安全
4.封裝
在java中引入了package的概念,使面向對象和面向組件開發更加方便,而在c語言中沒有package概念,需要其他方式來實現。Java都能夠實現面向對象思想(封裝,繼乘,多態)。而由於c語言為了照顧大量的C語言使用者,而兼容了C,使得自身僅僅成為了帶類的C語言,多多少少影響了其面向對象的徹底性!JAVA則是完全的面向對象語言,它句法更清晰,規模更小,更易學。它是在對多種程序設計語言進行了深入細致研究的基礎上,據棄了其他語言的不足之處,從根本上解決了c語言的固有缺陷。
5.數據類型及類
Java是完全面向對象的語言,所有函數和變數部必須是類的一部分。除了基本數據類型之外,其餘的都作為類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c語言允許將函數和變數定義為全局的。
6.自動內存管理
Java程序中所有的對象都是用new操作符建立在內存堆棧上, Java自動進行無需內存回收操作,不需要程序員進行刪除。而c語言中必須由程序貝釋放內存資源,增加了程序設計者的負扔。Java中當一個對象不被再用到時,無用內存回收器將給它加上標簽以示刪除。JAVA里無用內存回收程序是以線程方式在後台運行的,利用空閑時間工作。
7. 字元串:
C語言不支持字元串變數,在c語言程序中使用Null終止符代表字元串的結束,在Java中字元串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言的核心!
Java沒有函數,作為一個比c語言更純的面向對象的語言,Java強迫開發人員把所有例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。
我覺得這篇文章寫的很好,就摘錄給你看了,希望可以幫助到樓主
⑸ Java和C + +有什麼區別
差別很大,是典型面向過程的編程語言,java是完全面向對象的編程語言。
⑹ Java和c語言的區別
C語言是底層的語言,
java可以看作是在C上面封裝起來的一種語言,就像建一座高樓一樣,C語言更像磚塊,沙石等這些基礎的東西,而java可以看作是磚塊和沙石這些東西組合起來的一面可以搬來搬去的牆。
⑺ Java和C的區別
Java的特點:
1、Java語言是簡單的。Java語言的語法與C語言和C 語言很接近,使得大多數程序員很容易學習和使用。另一方面,Java丟棄了C 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。
2、Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。
Java語言全面支持動態綁定,而C 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
3、Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java.net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。
Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
C語言的特點:
1. 簡潔緊湊、靈活方便。C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富。C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富。C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
⑻ JAVA語言和C語言有什麼區別
C語言和 Java的主要區別:面向過程/面向對象、編譯型/混合型、不同的應用場景。只要閱讀二者的入門資料就清楚了。時間足夠的話,先學C再學Java;時間不夠直接上 Java。一個合格的程序員當然是要會C語言的,不過真正必須用到C語言的領域主要是嵌入式開發和操作系統等偏底層的開發。題主所提到的開發場景(Web開發、移動開發)並不是C語言的強項。而選擇 Java 的話,首先要把這門編程語言的基礎打牢,了解面向對象編程的基本思想。然後選擇 Java 的其中一個應用領域繼續深入學習,比如 Web 後台或者安卓開發。Web開發,即題主所說的「做網站」。網站開發分前端和後台,這兩個方向精通其一即可。簡單粗暴地理解,前端是呈現給用戶的網頁界面以及交互操作,運行在用戶的瀏覽器上;而後台負責存取和處理數據,運行在伺服器上。前端和 Java 沒有多大關系,需要學習的是 HTML、CSS 和 JavaScript。學完 JavaScript 基礎之後,再上手一種前端框架,Vue、React、Angular 都可。後台的話,編程語言可選 PHP 或者 Java。選擇 Java 的話,就必須掌握一種主流的 Ja
⑼ JAVA語言和C/C++語言有什麼異同
Java 是由 C++發展而來的,保留了 C++的大部分內容,其編程方式類似於 C++。但 Java 的句法更清晰、規模更小、更易學。Sun 公司對多種程序設計語言進行了深入研究,並摒棄了其他語言的不足之處,最終退出了 Java。正是這樣,Java 從根本上解決了 C++的固有缺陷,形成了一種新的完全面向對象的語言。Java 和 C/C++的相似之處多於不同之處,有 C 基礎的讀者,學習 Java 會更容易。相比較而言,Java 的編程環境更為簡單。
剛開始的時候我們也搞不清這些概念,不過後來就慢慢清晰了,首先和大家談談Java和js的區別,最簡單的區別就是一個是後端,一個是前端。
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方法:
⑽ Java和C語言有什麼區別
這個問題很多人問我了,你可以在網路知道上搜索,有很多都是我敲的,並且都是最佳答案。今天我就再幫一次兄弟,不過回答保證更為精準。
這個C語言是面向過程語言,C++是混合型語言,java是面向對象語言。很多書中吧C++作為面向對象語言來講,但是實際上C++不是純種的面向對象語言。java是面向對象的代表。如果你聽說過C#的話,那麼C#是面向對象的終結。
當然這些對於初學者來說不太明了什麼是面向對象、什麼是面向過程。而我在這里解釋也會讓你更加懵懂。所以撇開什麼是面向對象什麼是面向過程,單單介紹他們實際應用區別:
C是一門非常干練的語言,一切採用函數的形式完成,你可以把所有需要的功能採用函數的形式完成,然後在主函數main中調用。學起來容易,幾乎用三兩天就可以學會。一般用來教學學習演算法,數據結構等。同樣這也造成了它的應用范圍局限在小程序中,只能是針對小規模的東西開發:比如DOS程序,嵌入式開發等。
C++是在C語言的基礎上擴展的,所以一般C++會兼容C語言庫。C++是因為用C語言開發項目中會遇到很多團隊合作問題,導致團隊的工作效率下降。在此基礎上迫切需要降低軟體開發團隊成員之間彼此的干擾性,使得每個工程人員的代碼竟可能不影響他人。最後C++便應用而生了。C++主要是其中集成了類地概念,可以將所有的東西封裝在類中,類中的私有成員不可被別人訪問,這樣就有效地解決了代碼互干擾性。
java是汲取C++的長處而誕生的,這個語言採用完全面向對象的概念,將所有的功能封裝在類中,而不像C++部分封裝。由於java採用跨平台性,使得更容易被移植,在互聯網要求多終端能夠互相訪問成為可能,這便形成了java平台今日的盛況,在互聯網方面幾乎無人可敵。
學習難易程度來講C++非常難,即使有5年工作經驗的C++工程師也未必能夠熟練應用C++,C語言易掌握,但是應用起來難度不下於C++,因為C語言幾乎是對硬體直接寫代碼,一般來說會使得代碼非常龐大,增加了開發人員的工作量。java因為封裝了很多功能,所以幾乎開發效率相當高。