1. C語言和java的區別
首先從概念上說,Java是一種廣泛使用的計算機編程語言,擁有跨平台、面向對象、泛型編程的特性。c語言是一門面向過程、抽象化的通用程序設計語言。Java的面向對象的特性使得用它編程比用C語言要簡單很多。而且Java脫胎於C語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,所以Java相對C語言來說更簡單易用。
其次從適合人群上來說,名企在招聘Java技術人才時一般會要求大專以上學歷,所以想找Java類工作,學歷是個檻;而C語言行業對於學歷並不那麼看重,C語言開發工程師學歷要求中大專學歷佔比較高。
第三從就業機會上來說,Java由於具有跨平台性、安全性、健壯性等特性,廣泛應用於企業級應用開發、網頁開發、游戲開發等領域,就業面相對較廣,而C語言退守到系統級別語言,成為軟體工業的基礎,地位穩定,廣泛應用於底層開發,嵌入式、VR/AR、網路安全等領域都需要用到C語言。
最後從薪資待遇來看,從職友集數據可知,Java開發類人才的平均薪資在一萬以上,C語言工程師的平均薪資在8千到一萬之間。Java開發類的工資較高些。
2. c語言和java的區別
C語言是面向過程的語言,java是面向對象的編程語言,當然C#等也是面向對象的!
C語言開始確實比較容易上手,只要是讓你熟悉
選擇
循環
和順序
(if
for)
等,到最後你還是要改變思想到面向對象上,其實先學哪個後學哪個不重要,主要看你用多少心,
c語言初學的話可以用TC2.0
TC3.0
或者
winTC
,如果學java的話建議使用記事本練習基礎,推薦使用EmEditor
最好有英文基礎
因為java的開發工具基本都是英文的,當然,也可以漢化,不過基本沒人用,我
英文一點不好一樣用英文的。
下面說一下發展前景,c有幾個方向
C
C++
C#
其中C是最難的,也是最賺錢的主要從事底層開發,比如驅動....c++主要用於大型桌面客戶端
比如網路游戲。。。。
c#
也用字桌面應用程序
和
web程序中
asp.net就是用c#
的
我知道的是這些
但是請注意ASP.NET的開發工具是收費的
java也分幾個方向
java因為有移植性好的優勢
所以
被用在很多地方,比如手機軟體,
javaSE可以做簡單的java程序
javaME是用來開發手機應用程序
比如手機游戲,
javaEE是用來做WEB程序的
一些大型網站
java和C的最大區別
我覺得就是java是開源的(免費)
c是收費的(不開源)
java的所有核心代碼你都是可以看到的,而C的
比如C#底層的代碼你根本就不可能看到。
當然
不能說
java
和
C
哪個好一些,因為他們各有優缺點!!!
這個就要每個人在使用的過程中自己來評論了!當然我比較傾向於java
3. Java和c語言的區別
java和c語言兩者的區別如下:
1、C語言是面向過程的語言,執行效率高;Java是面向對象的語言,執行效率比C語言低;
2、C語言的安全性不如Java,C語言沒有Java的垃圾回收機制,申請的空間要手動釋放。Java的通用性好,可以跨平台直接移植,只要有安裝Java虛擬機(JVM)就可以了。
3、在速度上,C語言編寫的程序要優於Java
4、C語言注重的是演算法,但是Java卻不一樣,想用的時候導包就可以了。C語言的演算法很重要,但是Java中的演算法沒有C語言那麼復雜。
5、Java採用Unicode字元集,C語言通常採用的是ASCII字元集,A—65,a—97。
6、C語言的變數可以不進行初始化,但Java的變數要進行初始化。
4. Java和C語言有什麼區別
從概念上看,C語言是一門面向過程、抽象化的通用程序設計語言;Java是一門面向對象編程語言,而Java語言是從C語言衍生而來,它吸收了C++語言的各種優點,並且摒棄了C++里難以理解的多繼承、指針等概念。從概念可以看出C語言相當於Java的基礎語言,學完C再學Java會更容易。
從應用領域上,C語言和Java的應用領域幾乎沒有重合。因為隨著這幾年Java、web、PHP等語言的出現,它們憑借比C更簡潔的、更安全的性能快速崛起,搶佔了大量的市場。目前因為Java有完善的框架,在多線程、高並發方面有著較好的穩定性,所以Java主要應用於企業級應用開發、大型系統開發等領域。而C語言由於編程的復雜性,退守到了系統級別語言,而且因為想要系統級軟體可以發揮出機器的功能,它的底層核心就需要用C/C++來編寫,所以C語言主要應用於軟體工業。
5. c和java的編譯過程到底本質區別在哪裡為什麼c就不能用java的機制一次編程處處運行
C編譯出來的是可以直接有CPU執行的命令代碼,系統可以直接發送給CPU執行。可以理解為自行車的後輪,他直接和地面上轉動,讓車走。
java 編譯出來的是位元組碼,是供JVM試用的代碼,而jvm去調用cpu執行。可以理解為自行車的腳踏。通過腳踏讓鏈條轉,然後讓輪子轉,使車運動!
大家最初的原理和目的以一樣,才會這樣。
6. java和c的編譯方式有什麼區別
我的第一次判斷失誤,請教了一位高手,理論解釋如下:
編譯器的問題,java的編譯器在遇到i++和i- -的時候會重新為變數運算分配一塊內存空間,以存放原始的值,而在完成了賦值運算之後,將這塊內存釋放掉,而C語言中的i=i++就只是完成i++的內容,所以結論會不同。
原理也可以這么說:
Java中:
int temp=i;//重新分配變數內存
i=i+1;
i=temp;
C中:
i=i;//i還是i
i++;
樓主,是不是考慮加點分,答案得來不容易啊 :-)
7. 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
8. 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()函數釋放空間。
9. 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大。
當然Java和C之間的區別還有很多很多
10. c/c++編譯過程和Java編譯過程之間的區別
Java編譯原理
1、Java編譯過程與c/c++編譯過程不同
Java編譯程序將java源程序編譯成jvm可執行代碼--java位元組碼.
c/c++編譯過程:
當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬體平台運行而生成的。因此在編譯過程中,編譯程序通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序運行。
Java編譯過程:
Java編譯器卻不將對變數和方法的引用編譯為數值引用,也不確定程序執行過程中的內存布局,而是將些符號引用信息保留在位元組碼中,由解釋器在運行過程中創立內存布局,然後再通過查表來確定一個方法所在的地址,這樣就有效地保證了java的可移植性和安全性。
2、jvm工作原理
運行jvm字元碼的工作是由解釋器來完成的。解釋執行過程分三步進行:代碼的裝入、代碼的校驗、和代碼的執行。
裝入代碼的工作由「類裝載器classloader」完成。類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被調
用的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其他類。在本台計算機的所有類都在同一地址空間中,而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們與從外部引進的類不會相互影響。
當裝入了運行程序需要的所有類後,解釋器便可確定整個可執行程序的內存布局。解釋器為符號引用與特定的地址空間建立對應關系及查詢表。通過在這一階段確定代碼的內布局,java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼的非法訪問。
隨後,被裝入的代碼由位元組碼校驗器進行檢查。校驗器可以發現操作數棧益處、非法數據類型轉化等多種錯誤。通過校驗後,代碼便開始執行了。
java位元組碼的執行有兩種方式:
1)即時編譯方式:解釋器先將位元組編譯成機器碼,然後再執行該機器碼。
2)解釋執行方式:解釋器通過每次解釋並執行一小段代碼來完成java位元組碼程序的所有操作。