學(xué)java需要先學(xué)c語(yǔ)言嗎?對(duì)于初學(xué)者來(lái)說(shuō),你可能經(jīng)常會(huì)聽(tīng)到這樣的關(guān)于 Java 和 C 語(yǔ)言的問(wèn)題。雖然很多人說(shuō)C語(yǔ)言是基礎(chǔ),但是很多人還是在學(xué)習(xí)Java,所以我們來(lái)系統(tǒng)分析一下,Java和C語(yǔ)言有什么關(guān)系,初學(xué)者應(yīng)該如何選擇性地學(xué)習(xí)。
學(xué)java需要先學(xué)c語(yǔ)言嗎?
可以不要,Java是一門(mén)面向?qū)ο蟮恼Z(yǔ)言而C是一門(mén)面向過(guò)程的語(yǔ)言,有些人之所以選擇先學(xué)C再學(xué)Java,其主要是因?yàn)镴ava和C有許多語(yǔ)法相似的地方,如果C語(yǔ)言入門(mén),學(xué)java就會(huì)簡(jiǎn)單一點(diǎn)。
一直都說(shuō)學(xué)Java要先學(xué)C語(yǔ)言,其實(shí)這不是必須的。先學(xué)C語(yǔ)言的原因大概有以下幾點(diǎn):
1、學(xué)C語(yǔ)言就是學(xué)Java,因?yàn)镃語(yǔ)言中至少80%的語(yǔ)法知識(shí)都是Java繼承的。 Java剛?cè)腴T(mén)的前半部分,比如數(shù)據(jù)類(lèi)型、變量、流控、數(shù)組、函數(shù),這些知識(shí)幾乎和C語(yǔ)言一模一樣。
2、C語(yǔ)言是面向過(guò)程語(yǔ)言的代表。學(xué)好 C 語(yǔ)言有助于在 Java 中學(xué)習(xí)面向?qū)ο蟮乃枷?。如前所述,如果你想知道什么是面向過(guò)程,什么是面向?qū)ο?,你必須有一個(gè)比較。學(xué)完C語(yǔ)言,再學(xué)Java的函數(shù),你會(huì)發(fā)現(xiàn)它們的語(yǔ)法規(guī)則完全一樣,但用法卻完全不同。如果直接學(xué)Java,會(huì)覺(jué)得應(yīng)該那樣使用它,所以你將無(wú)法深入理解什么是面向?qū)ο蟆?/p>
3、C語(yǔ)言中最重要的就是指針。 C語(yǔ)言中有兩個(gè)知識(shí)點(diǎn)可以說(shuō)是它獨(dú)有的,一個(gè)是函數(shù),一個(gè)是指針。 C語(yǔ)言中的指針是理解Java中“引用”的基礎(chǔ)! Java中引用的本質(zhì)是指針。如果你不了解指針,你可能對(duì)Java中的“引用”沒(méi)有深入的了解。
雖然我已經(jīng)說(shuō)了很多先學(xué)習(xí)Java的好處,但我還是需要先學(xué)習(xí)C語(yǔ)言。但是不學(xué)C語(yǔ)言就學(xué)Java不好嗎?
其實(shí)不是。 C語(yǔ)言和Java是兩種完全不同的語(yǔ)言。一種是過(guò)程式編程,另一種是面向?qū)ο蟮木幊?。雖然說(shuō)如果前期學(xué)過(guò)C語(yǔ)言,說(shuō)不定還能上手Java這更容易。畢竟接觸過(guò)編程,有些變量和函數(shù)(Java中稱為方法)是可以理解的。不過(guò),即使沒(méi)有學(xué)過(guò),也相對(duì)容易。可能是前期理解速度的差異,對(duì)于后者,沒(méi)有區(qū)別。
而且這個(gè)不會(huì)受到C語(yǔ)法的影響,因?yàn)镃語(yǔ)言和Java并不完全一樣,至少Java中沒(méi)有直接的指針(改名引用),學(xué)習(xí)C語(yǔ)言需要學(xué)習(xí)一些數(shù)據(jù)結(jié)構(gòu)的知識(shí)而且算法學(xué)Java也沒(méi)那么麻煩。你可以學(xué)一點(diǎn)。 Java 中的 API 將幫助您做好這件事。在C語(yǔ)言中,你需要通過(guò)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)的函數(shù)可能是Java。只需調(diào)用 API 方法即可。如果想學(xué)Java,可以直接學(xué)。最好花更多的時(shí)間在同一種語(yǔ)言上,而不是學(xué)習(xí)兩種語(yǔ)言,這可能對(duì)每個(gè)人都學(xué)習(xí) Java 更好。
在小編看來(lái),Java和C語(yǔ)言雖然有一些密切的關(guān)系,Java的底層是用C語(yǔ)言寫(xiě)的,但是從另一個(gè)方面來(lái)說(shuō),兩者的關(guān)系并不是很大,語(yǔ)法不同,在語(yǔ)言在設(shè)計(jì)和不同專(zhuān)業(yè)領(lǐng)域也存在一些差異。那么學(xué)java需要先學(xué)c語(yǔ)言嗎?一般來(lái)說(shuō),學(xué)Java不一定要先學(xué)C語(yǔ)言,不學(xué)C語(yǔ)言也能學(xué)好Java。更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專(zhuān)業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。