當前位置:首頁 » 編程語言 » java和c語言相似之處
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java和c語言相似之處

發布時間: 2023-04-23 02:08:14

c語言和JAVA的區別和共同點

Java是Sun公司推出的一種編程語言。它是一種通過解釋方式來執行的語言,語法規則和C++類似。同時,Java也是一種跨平台的程序設計語言。用Java語言編寫的程序叫做「Applet」(小應用程序),用編譯器將它編譯成類文件後,將它存在WWW頁面中,並在HTML檔上作好相應標記,用戶端只要裝上Java的客戶軟體就可以在網上直接運行「Applet」。 Java非常適合於企業網路和Internet環境,現在已成為Internet中最受歡迎、最有影響的編程語言之一。 Java有許多值得稱道的優點,如簡單、面向對象、分布式、解釋性、可靠、安全、結構中立性、可移植性、高性能、多線程、動態性等。Java擯棄了C++中各種弊大於利的功能和許多很少用到的功能。 Jave可以運行與任何微處理器,用Java開發的程序可以在網路上傳輸,並運行於任何客戶機上。
是一種使網頁(Web Page)產生生動活潑畫面的語言
是一種使網頁(Web Page)由靜態(Static)轉變為動態(Dynamic)的語言
是一種語言,用以產生「小應用程序(Applet(s))」
是一種簡化的C++語言 是一種安全的語言,具有阻絕計算機病毒傳輸的功能
Java的通用性好,可以跨平台直接移植,只要有安裝Java虛擬機(JVM)就可以了。開發的效率高。生成的機器碼效率沒有匯編和C的高。

匯編語言是低級語言,能夠直接操作硬體,並且生成機器碼的效率高。但匯編對平台的依賴性強,可移植性差,開發效率低。

而C語言則處於二者之間,移植性比較好,代碼效率也比較高,可以對部分硬體直接訪問。開發效率較高。寫得好的C代碼,可移植性是很好的,很多時候都不用修改或者只做少量修改。在目前的嵌入式系統中,C語言是使用最廣泛的語言

⑵ C語言和Java的區別和相同點

C語言:
1 開發效率高
2 語法簡單
3 發展較為穩定
4 適合開發一般性小程序(計算器 簡單字元游戲等(圖形游戲 需要學習相關的API 如 win gdi))
5 主要思想是面對過程(通過函數指針與結者核鉛構體等可以實現一些類似於面對對象裡面的氏桐東西)
Java語言
1 開發效率高
2 運行效率中等
3 發展較為迅速
4 適合開發大型程序 或手機應用程序首好
5 主要思想是面對對象

⑶ 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語言的相同點與不同點

java屬於面向對象的語言,c是面向過程的,java是以一個類作為最小單位,而c是以函數作為最小單位,相比較起來,c和java前期神如入門的語法基礎類似,到後面java比較靈活,因為java有很多人寫的東西可以直接導入就能用,相當於站在巨人的肩膀上,c也有這樣的,但是范圍沒羨仿有java廣,不過c語言是一種更加底層的游派啟語言,效率會更高

⑸ C語言和java語言有哪些相同之處

所有的計算機高級語言的語法結構都不盡相同。中歲c語賣首睜言是純面向過程的計芹橋算機語言,java是純面向對相的,它們是兩個極端啊!

⑹ java語言與c語言的不同之處和相同之處!

初看語法相似 尤其是流程式控制制語句 但是細看會發現其實是很不一樣的 C語言沒有類的概念 而JAVA一切都要爛穗此寫在類裡面 這族槐也就是面向對象和面向過程飢迅的區別 不過學了C再學JAVA確實會輕松很多

⑺ 論Java與C語言的相同點與不同點和各自的優勢

學習了Java和c語言(雖然不精通),今天就來談一談兩者的優缺點和不同。
首先Java和C都是指令式語言,不同的是Java有面向對象成分在裡面,而C是完全面向過程的。Java具有強大的跨平台性,既不同的操作系統都可以通過JVM來解釋Java程序,只要你的計算機有Java虛擬機即可運行。而C語言則是與平台相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統一的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然後才能運行。正因為這樣,所以Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平台的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什麼Java中只有線程概念而沒有進程概念,而C語言兩者均具有。
C語言是面向過程的語言,執行效率高;Java是面向對象的語言,執行效率比C語言低。C語言最關鍵的是比Java多了指針,而C語言的亮點指針很容易出錯,能夠靈活的運用指針是件很難的事。用好了,對你的程序是錦上添花,反之,就會讓你的程序崩潰掉。
C語言的安全性不如Java,因為C語言沒有Java的垃圾回收機制,申請的空間要手動釋放。
在速度上,C語言編寫的程序要優於Java,因為Java必須運行在虛擬機的環境中,但是因為虛擬機,Java獲得的平台無關性,而C語言的程序有可能需要重新修改編譯才能實現平台的移植,另一方面,C語言比Java語言更「底層」,因此可以用C語言編寫例如硬體的驅動,而Java卻不行。
Java和C語言還有個明顯的不同就是C語言注重的是演算法,但是Java卻不一樣,想用的時候導包就可以了。C語言的演算法很重要,但是Java中的演算法沒有C語言那麼復雜。列印的方法:C語言是printf('…….');而Java是System.out.print('…….'),也可以用println,ln表示換行。
Java程序中的基本數據類型(boolean, char, byte, short, int, long, float, double),是對對象的引用;C語言也有許多種基本類型,還有struct, union, enum, 數組和指針。在Java沒有枚舉、聯合類型。
Java採用Unicode字元集,C語言通常採用的是ASCII字元集,A—65,a—97。C語言的變數可以不進行初始化,但Java的變數要進行初始化。在C語言中,char類型佔一個位元組,在Java中char類型佔2個位元組。
Java面向對象的特徵主要有封裝,關系是單一的、非多重的,一個子類只有一個父類,子類的父類又只有一個父類。C語言支持「運算符的重載」,這是它的一個很重要的多態特徵,是數據抽象和泛型編程的利器。它允許直接對對象進行四則運算,正像基本數據類型那樣Java不支持這種多態機制,也是為降低復雜性。Jvav可以支持方法重載和重寫,所謂重載就是一個類具備多個相同屬性行為;重寫就是在繼承關系中父類的行為在不同的子類上有不同的實現。
在Java中比C語言多了一些修飾符,如訪問修飾符Public(公共的)、Private (私有的)、Protected (受保護的)、默認。
Java有super關鍵字,指代父類對象,通常被用於調用父類的構造方法或一般方法 C語言 則沒有super關鍵字,兩者都有this,指代當前對象。
在Java中,除了static、final、private是靜態綁定以外,所有方法一律按動態綁定處理。Java中可以將類組織起來用Package打包,而C語言沒有。
所以JAVA更實用於開發東西,因為JAVA面向對象,和我們的思維很相似,所以開發起來就簡單些,而C語言是面向過程,就和我們的思維方式有著差異,開發就很少了。而且很難。但因為C語言能夠直接操作硬體,所以在一些嵌入式系統中,C語言是使用最廣泛的語言。
聲明:以上部分內容來源網路,作為補充。這篇文章並非說Java與c語言誰好誰壞,語言沒有好壞之分,而是要學會利用它們不同的特性來發揮最大化的效果。

⑻ java與c語言還有c++的相同之處

相同之處就是高級語言吧,而且都是函數式的!但java和c++都是面向對象的。

⑼ C++和JAVA語言有的相同點和不同點

Java與C++都是面向對象的語言,都使用了面向對象的思想(封裝、繼承、多態),由於面向對象由許多非常好的特性(繼承、組合等),因此二者有很好的可重用性。

主要不同點:

1、Java為解釋性語言,其運行過程為:程序源代碼經過Java編譯器編譯成位元組碼,然後由JVM解釋執行。而C/C++為編譯型語言,源代碼經過編譯和鏈接後生成可執行的二進制代碼,可直接執行。因此Java的執行速度比C/C++慢,但Java能夠跨平台執行,C/C++不能。

2、Java是純面向對象語言,所有代碼(包括函數、變數)必須在類中實現,除基本數據類型(包括int、float等)外,所仔困絕有類型都是類。此外,Java語言中不存在全局變數或者全局函數,而C++兼具面向過程和面向對象編程的特點,可以定義全局變數和全局函數。

3、與C/C++語言相比,尺叢Java語言中沒有指針的概念,這有效防止了C/C++語言中操作指針可能引起的系統問題,從而使程序變得更加安全。

4、與C++語言相比,Java語言不支持多重繼承,但是Java語言引入了介面的概念,可以同時實現多個介面。由於介面也有多態特性,因此Java語言中可以通過實現多個介面來實現與C++語言中多重繼承類似的目的。

5、在C++語言中,需要開發人員去管理內存的分配(包括申請和釋放),而Java語言提供了垃圾回收器來實現垃圾的自動回收,不需要程序顯示地管理內存的分配。在C++語言中,通常會把釋放資源的代碼放到析構函數中,Java語言中雖然沒有析構函數,但卻引入了一個finalize()方法,當垃圾回收器要釋放無用對象的內存時,會首先調用該對象的finalize()方法,因此,開發人員不需要關心也不需要知道對象所佔的內存空間何時被釋放。

其他不同點:

1>C++語言支持運算符重載;Java不支持運算符重載。

2>C++語言支持預處理;Java沒有預處理器,雖然不支持與處理功能(包括頭文件、宏定義等),但它提供的import機制與C++的預處理器功能類似。

3>C++支持默認函數參數;Java不支持默認函數參數。

4>C/C++支持goto語句;Java不提供goto語句,但Java中的goto是保留關鍵字。

5>C/C++支持自動強制類型轉換,這會導致程序的不安全;Java不支持自動強制類型轉換,必須由開發人員顯式地進行強制類型轉換。

6>C/C++中,結構和聯合的所有成員均為公有,這往往會導致安全性問題的發生;而Java根本就不包含結構和聯合,所有內容都封裝在類裡面。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

1>Java具有平台無關性,即對每種數據類型都分配固定長度的空間,例如int型總是占據32位;而C/C++不然,同一個數據類型在念姿不同平台上會分配不同的位元組數。

2>Java提供對注釋文檔的內建支持,所以源碼文件也可以包含它們自己的文檔。通過一個單獨的程序,這些文檔可以提取出來,並重新格式化為HTML。

3>Java包含了一些標准庫,用於完成特定的任務,同時這些庫簡單易用,能夠大大縮短開發周期。例如,Java提供了用於訪問資料庫的JDBC庫,用於實現分布式對象的RMI等標注庫。C++則依靠一些非標準的、由其他廠商提供的庫。

Java與C++的異同點總結 - CSDN博客 http://blog.csdn.net/shennongzhaizhu/article/details/51897060

⑽ C語言和JAVA有什麼共同點么

Java程序中的每個變數要麼是基本數據類型(boolean, char, byte, short, int, long, float, double),要麼是對對象的引用

C++有許多種基本類型,額外還有struct, union, enum, 數組和指針,C++指針可以指向對象,也可以不指向對象

Java沒有枚舉、聯合類型,因為Java認為沒有必要。將可有可無的語言元素去掉是Java對C/C++做出的一大改變,因此,普遍認為Java較C++更輕便,更精簡

Java採用Unicode字元集,C++通常用ASCII字元集。但ASCII是Unicode的子集,對於習慣於ASCII的程序員感覺不到區別

Java中的boolean類型不能轉換成其他類型,反之亦然。C++最近引進了bool類型,代表布爾類型,整型也作為邏輯判斷

模板是一種「泛型編程思想」,它有別於「面向對象編程思想」。C++在很大程度上已經支持了這種新型編程方法,特別是STL的出現
Java目前仍未支持泛型編程,不過據昌啟說Sun公司有在Java中引入模板的計劃

C++支持「運算符的重載」,這是它的一個很重要的多態特徵,是數據抽象和泛型編程的利器。它允許直接對對象進行四則運算,正像基本數據類型那樣
Java不支持這種多態機制,也是為降低復雜性

兩種語言都支持方法重載(overloading)

在C++中,為了允許運行時動態決定哪個函數被調用,一個函數必須用virtual修飾。virtual關鍵字被自動繼承,用以支持多態

凡是沒有用virtual修飾的成員函數(包括static)都是靜態綁定的,即在編譯時決定調用哪個版本

而在Java中,除了static、final、private是靜態綁定以外,所有方法一律按動態綁定處理
C++中有「拷貝構造函數」的概念,在三種情況下,自動調用它
用一個對象初始化另一對象
對象作實參進行函數調用
對象作函數的返回值

通常,當一個對象需要做「深拷貝」(錢能:《C++程序設計教程》)時,我們需要為它事先定義「拷貝構造函數」、「賦值運算符的重載函數」和「析構函數」;否則編謹讓譯器將以「按位」的形式自動生成相應的預設函數。倘若類中含有指針成員或引用成員,那麼這三個默認的函數就隱含了錯誤

Java則沒有這種語法結構和語義邏輯
C++支持inline函數,可以避免函數的堆棧調用,提高運行效率

Java無這種語義

C++中,構造函數的初始化列表是這樣使用的:首先按繼承順序調用基類祥迅局的構造函數構造基類對象,然後按聲明順序調用成員對象的構造函數構造成員對象,最後對列表中出現的成員變數做初始化
Java不採用初始化列表這種構造機制
它們的構造順序基本一致:
靜態變數初始化
靜態初始化塊(Java)
調用基類的構造函數構造基類對象
實例變數的初始化
構造函數的其餘部分
Java使用abstract關鍵字修飾抽象方法或抽象類

C++的對等語法是「純虛函數」和「抽象類」

兩者都使用抽象類作為繼承層次中的基類,提供一般概念,由子類實現其抽象方法,且抽象類都不能被直接實例化為對象
Java中有final關鍵字,修飾類、方法或變數
final類不能被繼承
final方法不能被子類覆蓋
final變數就是常量

C++中沒有這個關鍵字,常量可以使用const或#define定義
const還可以修飾成員函數,即「常成員函數」,當一個const成員函數修改成員數據,或調用非const成員函數時,編譯器會報錯
我們應將不修改成員數據的函數聲明為const
Java和C++中的static關鍵字語法和語義基本相同

static成員變數又叫類變數,被類的所有對象共享
A::x (C++):必須在類體外初始化
A.x (Java):必須在類體內初始化
static成員方法又叫類方法,訪問static變數
A::f( ) (C++)
A.f( ) (Java)
兩者都有內部類和局部類的語法和語義

Java中沒有友元函數和友元類的概念,嚴格支持封裝,不允許外部方法訪問類的私有成員
而C++支持friend關鍵字,允許外部方法訪問類的私有成員,因此不是一種純面向對象的編程語言
Java中類或interface可以用public修飾,也可以不修飾;而C++類不能修飾

三種訪問許可權的語義相同,語法略有差別

C++中還有繼承許可權修飾符,Java則沒有
class A: protected B, public C (C++)
class A extends B (Java)
Java有super關鍵字,指代父類對象,通常被用於調用父類的構造方法或一般方法
C++則沒有super關鍵字

兩者都有this,指代當前對象

Java有package的概念,可以將類組織起來,便於打包和部署,也有利於類的安全。C++沒有這個概念,一個類可以被任意類訪問
Java applet可以被嵌入HTML文檔中,然後由Web瀏覽器下載和執行
Java API有對網路通訊的特別支持

C++則無內置網路功能
C++程序員必須顯式地實現動態內存管理,在析構函數中用delete運算符或free( )函數釋放對象和其他動態分配的數據空間,否則會造成「內存泄露」

而在Java中,垃圾收集是自動的。當對象的最後一個引用變數被釋放掉,這個對象就成為垃圾收集器的候選對象了
因此Java不支持析構函數
finalize( )方法主要被用來釋放先前打開的非內存資源,如文件句柄
Java源代碼被編譯成位元組碼(.class文件),位元組碼是一種只有JVM才能識別的二進制低級代碼,它與具體的處理器無關,要由安裝在OS之上的JVM解釋執行,轉換成相應平台的機器碼,因此Java是體系結構中立和跨平台的

而C++直接被編譯成底層平台的二進制機器碼,由CPU執行,是平台相關的

因此,當解釋執行時,Java程序速度更慢
Java語言支持多線程,允許並發線程的同步與互斥操作
C++則沒有這種內在機制

Javadoc.exe可以將Java程序的內容和結構轉換成HTML格式的文檔


C是面向過程的,C++和JAVA是面向對象的

主要是差別對象的概念

JAVA和C++人說的比較多的主要的是有沒有指針的差別

java簡單易學但效率不高!
c++相反有點麻煩效率高!
還有就是Java的可移植性好!能實現跨平台,即一次編寫到處適用!

C是面向過程的程序設計語言。C++是面向對象的程序設計語言,不過C++語言保持了對C語言的兼容,也就說是在C++程序可以不用修改的插入C語言代碼。JAVA也是面向對象的程序設計語言,主要是實現平台無關性,它的出現主要為了實現對一種智能終端的編程(有人設想在不遠的將來,你的冰箱有可能自己知道裡面的東西已經不多,按著你的需要向應的供貨商進行訂購。在你上班的時候也可以通過互聯網開啟你家裡的微波爐,回到家就好吃的東西^_^)

還有
JAVA主要應用於上層,用戶使用JAVA不需要知道網路協議的細節,只需要知道如何調用相關介面就是了
C和C++主要應用於網路底層,用C和C++的程序員必須對協議有相關認識~

至於 那個簡單,似乎應該說沒有 難易之分。
只要你認真去學都差不多。