-
1 # 只說程式碼的大餅
-
2 # 鼴鼠科技
先說說C語言的優勢:
C語言誕生的時間比較早,簡單來說,C語言更像是計算機程式語言的基礎,感覺所有程式語言或多或少的能在它身上找到影子,所以學會c語言像其她語言轉移也是非常簡單的,C語言是完全底層的語言(直接編譯成組合語言),比如作業系統、虛擬機器(JVM的底層就是C語言實現的)、驅動、通訊協議之類,在Unix和Linux環境中也是不可或缺的,另外在嵌入式領域也大有作為,而且C語言效率極高。但C語言也有一些問題,因為是面向過程的,導致不像面嚮物件語言的Java靈活,尤其在團隊開發的時候,C語言不是跨平臺的,具有不可移植性。由於過於底層,所以對硬體依賴很高,導致一旦硬體環境變化,需要重新編譯,可能會出現一些問題。
再說說Java語言的優勢:
Java是C語言的後輩,它是在C語言的基礎上,拋棄了一些指標之類的東西,和C語言完全不同的是Java是一門面向物件的語言,Java是跨平臺的,Java是安全的,許多要求安全的企業對Java需求很大,Java也一直排名語言榜第一位。以上是她的優勢,它的不足是,它不夠簡潔,執行效率不是很高,她不是底層語言,不能直接操作硬體,不能操作硬體導致它不太底層嗎,有些事情她沒有辦法做的很好,比如硬體程式設計,嵌入式之類的等。
總結:
由於Java和C語言面向的領域不同或者說應用場景不同,C語言主要用於作業系統、核心開發,嵌入式(微控制器)、交換機、路由器等網路裝置的開發;Java主要是企業應用開發,包括電商、移動端開發,伺服器端開發、大資料技術、商業網站領域等。但個人建議學程式設計上選擇Java,因為Java比C語言更容易就業,考慮C語言實際上學習難度比Java要大,按理說C高手,都是令人“欽佩”的高手,然而,由於社會上大部分的商業專案,比如並不一定需要多高深的技術,而是需要簡單的實現技術,越簡單,企業開發的成本越低,再加上Java的跨平臺性,並隨著近些年Java在移動領域的發展,使Java市場上人才的需求越來越大,因此,Java就業工資要明顯高一些。
-
3 # 一顆蘿蔔啊
你說的優勢是什麼方面呢?
技術方面?社群支援方面?企業使用方面?
計算機專業,說下自己的學習歷程,大一時學習C語言,是所有語言的基礎,它是一個面向過程的語言,直到大學畢業,也沒學過Java,是的,只是門語言,Java是一門面向物件的語言,我那裡學校教的是C++,而05年畢業那段時間,Java一下子被很多企業使用,所以開始自學Java,後來就靠它吃飯了。
如果你想靠語言來吃飯,我建議你還是學習Java吧,因為很多企業早期的系統都是用Java開發的,所以現在依然需要Java人才,而且Java的技術是面向企業級的,這種找工作好找。
C語言的話,企業級基本不用,寫些底層的作業系統,這類可以考慮下,不過基本都是要科班出身的人才,如果寫網路層協議的,最近大家都喜歡用Go了。
說下技術方面吧,C語言確實會比Java難點,所以學精的話,會困難點,但Java的第三方庫多,很多技術實現直接用第三方庫就可以了,不用自己重複寫,C語言的庫也有,但相對於Java還是比不了的。至於哪個先進?一個面向過程的,一個面向物件的,先進不先進不知道,不過Java可讀性好。
社群生態圈的話,C語言的社群也不多,人也比較少,Java的社群人比較多,且企業級開發,有好多新的技術出現,學習的東西也比較實用。
最後,有需求才有存在的必要,所以你選擇大眾點比較好。
-
4 # 吾真本
Java優勢:1)除了支援面向過程程式設計,尤其面向物件程式設計,jdk7之後又增加支援函數語言程式設計,能讓你更好地實現業務模型;2)網際網路大廠如阿里的主力開發語言;3)框架工具生態成熟,如spring框架,能讓你輕鬆開發企業級應用。
想學程式設計,建議可從C語言入門,之後再學習Java。如有餘力,再學一下JavaScript,向全棧工程師邁進。
-
5 # 中國工匠
如果沒有明確的目標,推薦學習java
1.語言背景:C語言是在單機時代應用非常廣泛,它融合了高階語言的簡單易用和組合語言的執行效率。而Java是在研究電子消費產品開發平臺和網際網路應用的基礎上實現的,它的許多語言特性也是從c語言那裡沿用和發展,並且使面向物件更加自然和完善(如安全性和程式碼的移動性)。2.語言跨平臺:C語言不可以跨平臺,JAVA 是不怕這一點的,因為Java可以跨平臺,在windows 和 unix 等系統上都可以很好的執行。3.指標管理:指標是c語言最e5a48de588b6e79fa5e9819331333264663738大的優點,它可以使使用者幾乎可以訪問計算機的所有記憶體資源和其他部分資源(就是指那裡打那裡)。同時也是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強迫開發人員把所有例行程式包括在類中,事實上,用方法實現例行程式可激勵開發人員更好地組織編碼。
-
6 # 優就業浙江IT培訓
首先從概念上說,Java是一種廣泛使用的計算機程式語言,擁有跨平臺、面向物件、泛型程式設計的特性。c語言是一門面向過程、抽象化的通用程式設計語言。Java的面向物件的特性使得用它程式設計比用C語言要簡單很多。而且Java脫胎於C語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,所以Java相對C語言來說更簡單易用。
其次從適合人群上來說,名企在招聘Java技術人才時一般會要求大專以上學歷,所以想找Java類工作,學歷是個檻;而C語言行業對於學歷並不那麼看重,C語言開發工程師學歷要求中大專學歷佔比較高。
第三從就業機會上來說,Java由於具有跨平臺性、安全性、健壯性等特性,廣泛應用於企業級應用開發、網頁開發、遊戲開發等領域,就業面相對較廣,而C語言退守到系統級別語言,成為軟體工業的基礎,地位穩定,廣泛應用於底層開發,嵌入式、VR/AR、網路安全等領域都需要用到C語言。
最後從薪資待遇來看,從職友集資料可知,Java開發類人才的平均薪資在一萬以上,C語言工程師的平均薪資在8千到一萬之間。Java開發類的工資較高些。
-
7 # 急速馬力快de原始碼控
一個非常好的問題。Java是當前使用最普遍的程式語言,C是最古老的程式語言之一,在物聯網和嵌入式開發領域依然使用廣泛。
根據最新2020年5月份的TIOBE程式語言指數排行榜,排名前三的分別是C、Java、Python,相比四月份,C超過了Java。
TIOBE程式設計排行榜根據全球工程師、課程和搜尋引擎數量為指數得出,在一定程度上反映了程式語言的發展趨勢。
一,程式語言從程式語言本身來說,Java首次推出在1995年5月,C則是骨灰級的開發語言,誕生於1972年,第一個完備的C標準形成於1989年。
1,Java
兩種語言各有特點,Java經歷了20多年,一直在不斷更新推出新版本。2009年Oracle收購Sun公司後,Java發展得到了大力支援,現在使用非常多的Java8釋出於2014年,當前最新版本是Java14。和早期版本相比,從Java8開始,吸收了越來越多的現代化程式語言的優點,比如lambda表示式。
Java是一種靜態面向物件程式語言,繼承了很多的C++優點,功能強大、簡單易用、跨平臺可移植,具有多執行緒、分散式等特點。
2,C
C雖然是最古老的程式語言之一,但是依然使用廣泛,因為具有很好的可移植性和很高的執行效率,執行時環境佔用資源少,幾乎與所有系統相容,常用於作業系統和嵌入式系統開發。
隨著物聯網技術快速發展,C語言再次得到關注和使用,主要開發領域是底層模組驅動程式和嵌入式應用。
二,發展前景1,考慮題主自己的興趣和準備從事的行業,根據應用場景選擇最合適的開發語言。
2,考慮發展前景和國內實際情況,推薦學習Java語言。Java是當前的主流開發語言,在企業應用開發中Java最被青睞,基本上所有的資訊管理系統都是基於Java開發的,Java語言+ Spring Boot框架組合處於絕對的壟斷地位,豐富的元件和易用的功能,使得學習起來比較容易。
根據IDC的統計數字,Java程式設計師市場需求量佔到了所有軟體開發類人才的60%~70%。Java社群非常活躍,各種文件和學習資料非常豐富。因為使用廣泛,所以很多同事朋友溝通交流。
開發框架也是降低學習難度的有力工具,Spring框架是Java開發時常用框架,有非常豐富的元件和易用的功能,Spring Boot和Spring Cloud更是簡化了開發過程中的瑣碎工作,自動化配置依賴模組、開箱即用和約定優於配置,這些策略使得Spring框架在快速開發領域非常受歡迎。
-
8 # 蘭州新華小小新
Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的程式設計
C語言是一門面向過程的、抽象化的通用程式設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低階儲存器。C語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。儘管C語言提供了許多低階處理的功能,但仍然保持著跨平臺的特性,以一個標準規格寫出的C語言程式可在包括類似嵌入式處理器以及超級計算機等作業平臺的許多計算機平臺上進行編譯。
相關內容
- 毫無程式設計基礎的小白準備學習C語言,如何安裝VS?
- 求c語言程式設計輸出200以內的素數?
- C語言程式設計適合用於哪些系統或軟體的設計上?
- c語言程式設計,假設x是一個整數,寫一個程式:從鍵盤上輸入它的值,計算y=2x+5,並輸出y的值?
- c語言程式設計的平臺是什麼?
- java如何程式設計實現從鍵盤輸入10個數存入陣列,顯示出來並從中找出最大值?
- 如何使用動態代理實現Java面向切面程式設計?
- 有沒有學會了java等程式設計自己創業開公司的。分享一下經驗?
- 未來想往能源網際網路、人工智慧等方面發展,學程式設計的話是python還是java合適呢?
- 33歲了想學java程式設計,之前沒有軟體基礎,請問用處大嗎?
一:Java的使用優勢如下:
1:企業級Web開發。
2:微服務開發。
3:移動端開發。
4:大資料開發。
曾經有人說:“沒有C語言實現不了的功能。”。證明C語言是無所不能的,
只是有實現起來耗時,實現的效率低。
二:C語言的使用優勢如下:
1:寫作業系統一般用C語言。
2:嵌入式開發、及驅動開發一般也是C語言。
效能執行優勢:C語言比Java執行效能好。
總之:沒有最合適的語言,只有更合適的語言,每種語言都有它擅長的領域。