㈠ java是c語言還是C++編寫的
java是C++編寫的。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
java工作原理由四方面組成:
(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序介面
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體或集成開發環境在Java源文件中定義不同的類,通過調用類中的方法來訪問資源系統;
把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。
㈡ 既然JAVA這么底層,為什麼還需要C和C++語言
不依賴操作系統的程序才是最上層的程序,cpu的匯編碼還有晶元要求那,你能說他過時??沒這個一切都沒了,能跨平台是因為他站的太高,抬個腿就過去了,單你卻忽視了在他下面的程序是什麼開發的,你只知道有虛擬機就能用java ,虛擬機下面還用東西,不是直接佔到硬體上的。。。所謂的不依賴操作系統是只是代碼不依賴,因為他們的編譯代碼是中間代碼,並非機器碼,在運行時才編譯成機器碼。。。。。
不是所有程序都需要跨平台,比如你玩個魔獸爭霸你還要支持手游嗎,用java 通常是由跨平台需要,如果沒有這個需要,那就會有其他方面考慮,其他方面的優勢java未必有,很多軟體開發都有需要大量第三方組件,如果java缺乏這些東西,或者效果不好,自然不會用。。。。還有即使一些低端CPU系統非常簡單,就不可能去支持虛擬機,甚至連系統都沒有,這些程序誰開發。。。微軟公司對windows進行優化難道要靠java嗎???
編程出發點不同罷了, java不可能取代c和c++ ,就像裁縫不能取代廚子一樣。。。。。
還有c++,c只是一種語法,不支持跨平台是因為編的是機器碼,如果你做個編譯器能把他編譯成java的中間碼,為什麼不能跨平台。。。
㈢ javac與java的區別
javac用來編譯java文件,java用來執行。
1,javac命令用來編譯java文件,例如編寫一個Test.java文件,使用javac Test.java可以執行編譯操作,將生成一個Test.class文件。
2,java命令可以執行生成的class文件,使用java Test可以執行編寫的代碼。
㈣ c c++ java的區別
C語言
C語言的優點:
1.簡潔緊湊、靈活方便
2.運算符豐富
3.數據結構豐富
4. C是結構式語言
5. C語法限制不太嚴格,程序設計自由度大
6. C語言允許直接訪問物理地址,可以直接 對硬體進行操作
7. C語言程序生成代碼質量高,程序執行效 率高
8. C語言適用范圍大,可移植性好
9. C語言有一個突出的優點就是適合於多種 操作系統,如DOS、UNIX,也適用於多種機型
10.有效地將一個較復雜的程序系統設計任 務分解成許多易於控制和處理的子任務,便 於開發和維護
C語言的缺點:
1. C語言的缺點主要是表現在數據的封裝性 上,這一點使得C在數據的安全性上做的有 很大缺陷,這也是C和C++的一大區別。
2. C語言的語法限制不太嚴格,對變數的類 型約束不嚴格,影響程序的安全性,對數組 下標越界不作檢查等。從應用的角度,C語 言比其他高級語言較難掌握。
3.可重用性差
4.數據安全性差
5.難以開發大型軟體和圖形界面的應用軟體
6.把數據和處理數據的過程分離為相互獨立 的實體
7.當數據結構改變時,所有相關的處理過程 都要進行相應的修改
8.每一種相對於老問題的新方法都要帶來額 外的開銷
9.圖形用戶界面的應用程序,很難用過程來 描述和實現,開發和維護也都很困難
C++
C++優點:
1.可擴展性強
2.高效 簡潔 快速
3.可移植性
4.面向對象的特性
5.強大而靈活的表達能力和不輸於C的效率
6.支持硬體開發
7.程序模塊間的關系更為簡單,程序模塊的 獨立性、數據的安全性就有了良好的保障
8.通過繼承與多態性,可以大大提高程序的 可重用性,使得軟體的開發和維護都更為方便
C++缺點:
1.比較底層,易用性不是很好
2.多重繼承和友元機制
3.標准庫涵蓋范圍不足
4.開發周期長
5.非並行
6.掌握有難度
7.粒度封裝不夠
Java的優點:
1.簡單性
2.面向對象性(面向對象的程度可以達到 95%)
3.健壯性
4.跨平台性
5.高性能(自動垃圾回收機制)
6.多線程
7.動態性
8.安全性
Java的缺點:
1.效率低(毋庸置疑)
2.跨平台是它最大的優點也是最大的缺點
3.復雜性(做一個項目需要很多的知識,涉 及面廣)
㈤ C與Java的區別
Java和C都是指令式語言(Imperative Language),不同的是Java有面向對象(OO)成分在裡面,而C是完全面向過程的,C的高級版本C++、C#支持面向對象。
另外一個不同是,Java跨平台,既不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平台相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統一的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然後才能運行。
再一個不同是,Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平台的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什麼Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有。
再者,Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配。
還有一點,Java有Gabbage Collection機制,可以自動回收不再使用的空間,而C則要用free()函數釋放空間。
總的來說,Java比較容易上手,學得快,但對於了解編程語言來說幫助不如C大。
當然Java和C之間的區別還有很多很多。
反正就各有各的優勢啦,C一般負責底層 java這就是應用程序
㈥ Java和C的區別
Java和C都是指令式語言(Imperative Language),不同的是Java有面向對象(OO)成分在裡面,而C是完全面向過程的,C的高級版本C++、C#支持面向對象。
另外一個不同是,Java跨平台,既不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平台相關的,有些指令只在某些操作系統中才能執行。具體原因是,Java是解釋型語言,所有代碼都會翻譯成統一的、與系統無關的bytecode,然後放到JVM上運行;而C是編譯式語言,代碼要先通過編譯器轉換成與系統相關的中間代碼,然後才能運行。
再一個不同是,Java不支持系統調用,既無法與操作系統進行交互,這是由它跨平台的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什麼Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有。
再者,Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配。
還有一點,Java有Gabbage Collection機制,可以自動回收不再使用的空間,而C則要用free()函數釋放空間。
㈦ Java和C + +有什麼區別
差別很大,c是典型面向過程的編程語言,java是完全面向對象的編程語言。
㈧ JAVA開源是什麼意思標准C和C++是不是開源的
一種語言有很多實現。你說的是sun公司的java,其他公司也有java的版本,比如ibm,還有gnu的Java。 語言本身是一種標准,沒有開源不開源的說法,除非大家有種默認的說法。例如如果沒有特指其他的java,java自然直sun公司的java。
開源指的是語言的實現是開源的。比如c,有turbo c,源代碼不公開的,就不是開源的。但是linux下默認的gcc是更符合c/c++標準的一種實現,同時也是開源的。而微軟的各種c/C++實現(visual c++)就不是開源的。
如果某種語言所有的實現都不是開源的,那它就不是開源的。例如C#過去可以認為它不是開源的,因為僅有的實現visual c#不開源。但c#是一種國際標准,如果有能力誰都可以做出自己的實現,像現在有了Mono project,它是一個開源的c#實現,甚至可以在linux下用。
強調的是,不是說只要公開就是開源,實際上還有其他版權的一些條款,你必須符合某種開源的版權。還有不是說開源的你就可以隨便用了,有很多開源產品都有類似「強盜」的條款:粗略地說,只要你用了它的代碼,你的代碼也必須開源,否則就侵權了。如果做商用,必須仔細看你用的每一個開源庫的版權聲明,看是否要求你也開源。
㈨ 詳細的比較一下Java和C/C++的優劣
1. c是面向過程的語言。c++和Java都是面向對象的。在c中沒有類或者對象的概念。
2. java運行在虛擬機上,號稱與平台無關。也就是你開發的java程序無論是unix,linux還是windows都可以正常運行。但是實際上這是一個良好的願望,實際跨平台時還會有各種各樣的問題。c和c++都是直接編譯成可執行文件,是否能跨平台主要看你用到的編譯器特性是否有多平台支持。
3. 因為c和c++是直接編譯成可執行文件,所以運行效率要比java高。至於c和c++哪個更快,兩種語言的擁躉已經吵了很多年。
4. java因為是運行在虛擬機上,不需要考慮內存管理和垃圾回收機制。也是就你可以聲明一個對象而不用考慮釋放他,虛擬機幫你做這事情。而c和c++語言本身沒有多少內存管理的概念,寫c和c++程序如果用到指針就一定要考慮內存申請和釋放。內存泄漏是c和c++最頭疼的問題。
5. 代碼重用:java中有一個根類object,所有的類都是其子類,通過這種方式將容器和演算法分離,實現一種操作作用於多種對象,提高代碼重用。c++中沒有總根對象,但是c++提供了另一個更強大的功能「模板」,同樣高效地實現了一種操作作用於多種對象,提供了高效的代碼重用方法。
6. 數據結構:java內建了豐富的數據結構:列表,集合等等(很久沒用java了,有些記不太清)。而c++則用「模板」同樣提供了各種數據結構(容器)。
7. c語言在一些比較低層,和硬體打交道的地方用得比較多。另外很多開源軟體由於unix/linux開發習慣也大多採用c來開發。Java是現在最流行的開發語言,c++比起java稍稍不那麼流行一些,但是功能很強大。如能深入掌握,可以寫出兼顧效率和美觀的優秀代碼。
㈩ java在c/s開發方面是不是特別爛幾乎沒人用
術業有專攻,java的優勢就是WEB,為何要糾結在C/S上?也沒人要求你用java做CS的東西吧(除非你是在做老師安排的作業)。所以如果你想做WEB,JAVA完全能夠做到最好,如果你是想做CS的,可以考慮.NET。