新手入門選什么:有些人說C語言要比Java更難!你應該怎么辦?
從學習角度上說,很多人認為C語言單純簡單,其實比Java要容易。
我認為,如果要把本質學懂,確實如此,而且在學懂C語言的基礎上再學Java的人往往會獲得很好的效果。

Java中由于隱藏了內(nèi)存分配的處理,反而不如C語言在內(nèi)存管理上來的直觀。
從應用角度上說,還是Java要容易很多的。
主要體現(xiàn)在以下幾點。
1.內(nèi)存管理
C語言需要自己申請內(nèi)存,自己歸還內(nèi)存,總之什么事兒都得自己操心。你得記得自己在哪里借了內(nèi)存,還 得搞清楚自己現(xiàn)在這個指針是指向Stack里的內(nèi)存還是Heap里的,Stack里的還得記得啥時候作用域沒 了……總之,步步驚心,一不小心就要年底被黃世仁討債了。
而Java的內(nèi)存管理,有了垃圾回收這個大媽幫著管了,你就只管借不用管還了。用完了往門口一扔,到時候自己就有人來拿回去了。
2.應用庫
C語言相關的應用庫也不能說不多,但比較雜,而且由于C語言的應用領域跟Java本身就不一樣,所具有的應用庫也不同。從說明來看,主要是指Web開發(fā)。那么要用C語言寫一款應用服務器的話,通常可能要自己來學習HTTP協(xié)議、XML/JSON解析、還要自己研究內(nèi)部的路徑路由……總之一大堆破事兒等著 處理。 Java在這方面優(yōu)勢要明顯很多。

你提到的JavaEE,Struts2,Hibernate,Spring等等都是現(xiàn)成的框架,你只需要按照框架規(guī)定填寫業(yè)務邏輯就好了。解析HTTP協(xié)議之類的底層處理,框架都給你做了。所以,這里你的問題里提的不對等,C語言不學這些,只是老師沒打算讓你用C語言做Web應用罷了。如果做,你要學的知識會成倍增長的。
3. 跨平臺
C語言是不具有二進制級別的跨平臺性的。你在Linux上使用C語言和在Windows上使用C語言,所用到的編譯器不同,涉及到與系統(tǒng)相關的調用,涉及到的函數(shù)、數(shù)據(jù)結構都會不同。這讓C語言在跨平臺開發(fā)的時候工作量成倍增加。不僅僅是跨操作系統(tǒng),即便是同一種操作系統(tǒng),總線位數(shù)不同,也會影響C語言的表現(xiàn)。
早期電腦都是16bit的操作系統(tǒng)(當然更早期還有8bit等更古董的),后來普及了32bit,現(xiàn)在基本都過渡到了64bit。每次升級,都可能讓很多當年設計的不是很好的C語言代碼完蛋。
Java語言自誕生之日起就以跨平臺為宣傳口號。雖然實際效果沒有宣傳的那么美好,但也確實大大降低了開發(fā)工作量。雖然隨之而來的性能問題也一直被各方面詬病。在跨平臺上,Java的優(yōu)勢極其明顯。

為什么說 C 語言比 Java 難?
C語言的規(guī)則相對簡單,規(guī)矩相對少。而這恰恰加大了使用難度。
圍棋和象棋比較,圍棋的規(guī)則相對簡單,就兩種棋子,棋盤上哪里都可以放子,一片子沒有氣就死了。雖然為了解決爭議還有例如打劫之類的規(guī)則,但比起象棋兵種眾多,每個兵種移動方式還不同,遇上國際象棋那種同一個兵種走路和殺人的時候步法還有差異的,動不動老王跟城堡就瞬間移動一下的規(guī)則,圍棋的規(guī)則不可謂不簡單。
然而,AI在象棋上戰(zhàn)勝人類是在1997年,AI在圍棋上戰(zhàn)勝人類是在2018年?我覺得是否真的戰(zhàn)勝了可能目前還有爭議。足可見兩者難度的差異。 C語言和Java也是類似的,越是規(guī)則簡單的C語言越是難以掌握。
綜上來看,C語言在使用上的難度要大大高于Java。在學習時,因為計算機是一門使用科學,如果學了不會用,基本等于沒學,所以最終還是會落到使用難度上,如果要學到能做出同類東西的水平,自然是C語言難度要大一些了。

但是C語言的重要性依然還是不言而喻,作為編程語言的基石語言,想要深入了解編程,想要學習其他編程語言,你在先學好C語言之后,再入手學習其他編程語言就是相當于你掌握了武學的精義,其他的你都能夠快速的掌握學習。
是我的個人經(jīng)驗分享,謝謝你的閱讀,希望能幫到你呀!
大學想提升你的編程能力,成為一個強大的程序員找到一份好工作嗎?不妨和一些志同道合的小伙伴一起學習成長!

學習C/C++編程知識,提升C/C++編程能力,歡迎關注UP一起來成長!
另外,UP在主頁上傳了一些學習C/C++編程的視頻教程,有興趣或者正在學習的小伙伴一定要去看一看哦!會對你有幫助的~