java編程 Java語(yǔ)言和C語(yǔ)言是同一個(gè)級(jí)別的嗎?
Java語(yǔ)言和C語(yǔ)言是同一個(gè)級(jí)別的嗎?如果你懂C語(yǔ)言,學(xué)習(xí)C和Java會(huì)更容易。Java已經(jīng)有了構(gòu)建塊。積木在一起是一個(gè)項(xiàng)目。C語(yǔ)言必須一步一步地構(gòu)造積木,而逐步地構(gòu)建積木是一個(gè)項(xiàng)目。一個(gè)更恰當(dāng)?shù)念?lèi)比
Java語(yǔ)言和C語(yǔ)言是同一個(gè)級(jí)別的嗎?
如果你懂C語(yǔ)言,學(xué)習(xí)C和Java會(huì)更容易。Java已經(jīng)有了構(gòu)建塊。積木在一起是一個(gè)項(xiàng)目。C語(yǔ)言必須一步一步地構(gòu)造積木,而逐步地構(gòu)建積木是一個(gè)項(xiàng)目。
一個(gè)更恰當(dāng)?shù)念?lèi)比是Java是傻瓜,而C需要更復(fù)雜的設(shè)置來(lái)生成更好的照片。Java有很多方法,別人都為你做過(guò),你可以用。但是在C語(yǔ)言中,您必須自己編寫(xiě)這些方法,然后再次使用它們。
如果你學(xué)好C語(yǔ)言,你可以理解許多更深入的計(jì)算機(jī)語(yǔ)言原理。如果你學(xué)好了java,你就是別人構(gòu)建的平臺(tái)上的應(yīng)用專(zhuān)家。但是C仍然有很多應(yīng)用。
C與Java類(lèi)似。
學(xué)技術(shù),學(xué)java好還是C 好,兩個(gè)之間有何區(qū)別啊?
那一個(gè)很好學(xué)。因人而異。這很不一樣。但是一般來(lái)說(shuō),Java沒(méi)有C難,要學(xué)好這兩種語(yǔ)言幾乎同樣困難。
Java:
其開(kāi)源生態(tài)鏈系統(tǒng)非常龐大,各種框架涵蓋了所有開(kāi)發(fā)領(lǐng)域、各種衍生技術(shù)和業(yè)務(wù)應(yīng)用領(lǐng)域。然而,與C語(yǔ)言相比,它的入門(mén)難度要小一些,但更難深入、準(zhǔn)確地學(xué)習(xí)。一般來(lái)說(shuō),三五年沒(méi)有坑,所以很難被稱(chēng)為大神。
此外,Java和C不是主要的正面競(jìng)爭(zhēng)關(guān)系。Java的主要競(jìng)爭(zhēng)語(yǔ)言是C#、PHP、pyhton等,因?yàn)橹饕獞?yīng)用領(lǐng)域不同。
C:
基本上,計(jì)算機(jī)的底層是C/C,C系統(tǒng)更復(fù)雜,分支更多。除了常規(guī)的桌面程序開(kāi)發(fā)外,只要對(duì)性能、計(jì)算速度等方面有要求,基本上都適合C,應(yīng)用領(lǐng)域更廣。但學(xué)好C語(yǔ)言需要三五年的時(shí)間。
總結(jié):
一般來(lái)說(shuō),Java比較容易入門(mén),但很難深入學(xué)習(xí)和很好地使用。
一般來(lái)說(shuō),C進(jìn)入的難度相對(duì)適中。同樣,要學(xué)好和用好它也是很困難的。
祝你學(xué)習(xí)成功
請(qǐng)問(wèn)java如何學(xué)習(xí)?
這是老生常談。你為什么這么說(shuō)?不管你學(xué)什么,首先會(huì)有人問(wèn)你怎么學(xué)這個(gè)東西?如何有效地學(xué)習(xí)?什么是好辦法?可以找到各種各樣的答案,但都是先打好基礎(chǔ),再結(jié)合實(shí)踐,然后慢慢前進(jìn)。其實(shí)學(xué)習(xí)沒(méi)有捷徑,只有循序漸進(jìn),腳踏實(shí)地,慢慢積累,努力夠了,順其自然。
但是,不同行業(yè)的學(xué)習(xí)方法存在一些差異。在IT行業(yè),你所學(xué)的基本上都是用于應(yīng)用的,所以更多的實(shí)踐是必不可少的。無(wú)論是奠基還是后期的高級(jí)學(xué)習(xí),更多的思考是貫穿始終的。當(dāng)你遇到一些你不明白的事情時(shí),你不能去想它。別擔(dān)心?;厥淄率菍?duì)的,不要陷入困境,問(wèn)題往往是由于你的知識(shí)面太窄,所以看到后面,前面自然頓悟。總之,腳踏實(shí)地,慢慢來(lái),堅(jiān)持不懈,兩個(gè)月的se基本語(yǔ)法,面向?qū)ο蟮幕竟δ軒缀醵寄苷莆铡?/p>
隨著學(xué)習(xí)的深入,你會(huì)覺(jué)得自己無(wú)所不能,所向披靡。祝賀 你。你剛剛跨入門(mén)檻,但還沒(méi)有開(kāi)始。我把這個(gè)階段稱(chēng)為“外行階段”。在這個(gè)階段,你的知識(shí)太少,覺(jué)得自己什么都有能力。事實(shí)上,你只是井底之蛙。
很快你就要經(jīng)歷這個(gè)階段了,突然有一天,你覺(jué)得什么都做不了,你很迷茫,你覺(jué)得路很長(zhǎng),你走不到盡頭,這次你都是真正的初學(xué)者,達(dá)到了第一級(jí)。
將來(lái),你會(huì)發(fā)現(xiàn)進(jìn)門(mén)之后,學(xué)習(xí)變得容易多了,不是你自己的代碼可以讀,學(xué)習(xí)是蓬勃發(fā)展的,這個(gè)時(shí)候你的技術(shù)也有了很大的提高,你已經(jīng)達(dá)到了第二個(gè)層次。
之后,你的技術(shù)越來(lái)越高,但你發(fā)現(xiàn)你知道的越來(lái)越少。這個(gè)時(shí)候,你的視野比以前高了好幾個(gè)層次,視野更大了,你看到了很多東西,你覺(jué)得自己知道的太少了。這是第三層。
結(jié)果,你繼續(xù)學(xué)習(xí),繼續(xù)補(bǔ)齊短板,了解的越來(lái)越多,你發(fā)現(xiàn)自己好像什么都沒(méi)有,到了第四級(jí)。
有一天,你發(fā)現(xiàn)第一層到第四層是一個(gè)循環(huán)過(guò)程。您馬上就會(huì)明白,IT行業(yè)就是這樣。技術(shù)更新和迭代非??臁=裉炷闶切袠I(yè)的領(lǐng)導(dǎo)者,明天你可能會(huì)成為一個(gè)“外行”。只有不斷學(xué)習(xí),才能不被行業(yè)淘汰。這是第五層。
Net Core已經(jīng)開(kāi)源好幾年了, 為什么不像JVM那樣很多人研究和調(diào)優(yōu)其GC算法?
我們已經(jīng)推出了幾個(gè)。Net核心項(xiàng)目,基本上是docker。凈核心2/3。老實(shí)說(shuō),我們不需要對(duì)javacore做太多優(yōu)化。所以沒(méi)有多少研究是正常的。換句話(huà)說(shuō),如果一個(gè)GC需要做很多優(yōu)化,那么它肯定不是一個(gè)好的GC。當(dāng)然,平時(shí)編程、常用的非托管對(duì)象處理等都必須掌握。
c 程序員轉(zhuǎn)java好轉(zhuǎn)嗎?
在這個(gè)時(shí)候,我終于有時(shí)間寫(xiě)一篇我想寫(xiě)的文章。其實(shí),這篇文章的標(biāo)題并不十分準(zhǔn)確。當(dāng)C程序員編寫(xiě)java代碼時(shí),他們不必轉(zhuǎn)用java而放棄C,他們只有一個(gè)選擇。這兩種語(yǔ)言各有優(yōu)點(diǎn)。我們不要談?wù)Z言爭(zhēng)端。讓我們假設(shè)一個(gè)朋友需要這樣的角色轉(zhuǎn)變。在編寫(xiě)了多年的C語(yǔ)言之后,突然一個(gè)項(xiàng)目需要用Java來(lái)編寫(xiě)。
Java語(yǔ)言和C語(yǔ)言在語(yǔ)法上有很多相似之處,但在本質(zhì)上有區(qū)別。當(dāng)一個(gè)合格的C程序員寫(xiě)下每一行代碼時(shí),他必須記住如何存儲(chǔ)代碼中的每一個(gè)變量,堆棧結(jié)構(gòu)是什么,如果處理不當(dāng),哪一塊內(nèi)存會(huì)造成很大的麻煩。然而,Java程序員有些不同。由于Java語(yǔ)言規(guī)范和Java虛擬機(jī)規(guī)范是分離的,再加上自動(dòng)GC,操作性較差。但這不是壞事。畢竟,手動(dòng)內(nèi)存管理有其復(fù)雜性。
就個(gè)人而言,對(duì)于C程序員來(lái)說(shuō),Java語(yǔ)法沒(méi)有問(wèn)題??梢哉f(shuō)80%以上的結(jié)構(gòu)是相同的,所以這不是問(wèn)題。但是如果你學(xué)英語(yǔ)語(yǔ)法,你能通過(guò)大學(xué)英語(yǔ)六級(jí)考試嗎?我們能和外國(guó)人見(jiàn)面聊天嗎?不一定。順便說(shuō)一句,我們要學(xué)習(xí)方言、成語(yǔ)和句型。當(dāng)我們進(jìn)入Java世界時(shí),我們必須按照J(rèn)ava的規(guī)則來(lái)玩。例如,如何創(chuàng)建一個(gè)對(duì)象、如何比較兩個(gè)對(duì)象、如何使用枚舉類(lèi)型、如何編寫(xiě)泛型代碼、并發(fā)代碼何時(shí)要實(shí)現(xiàn)上層結(jié)構(gòu)、何時(shí)在代碼中拋出異常以及何時(shí)使用反射。我認(rèn)為,一個(gè)更專(zhuān)注于技術(shù)的人可能還需要至少三個(gè)月的項(xiàng)目培訓(xùn)才能獲得資格。當(dāng)然,我說(shuō)的前提是這個(gè)C工程師有相當(dāng)?shù)幕A(chǔ),所以他可以站在一座山上看另一座山。
所以我認(rèn)為C程序員轉(zhuǎn)向Java的捷徑是:學(xué)習(xí)Java習(xí)慣用法、模式和項(xiàng)目調(diào)整。
C程序員的另一個(gè)優(yōu)勢(shì)是,由于主流JVM是用C/C代碼編寫(xiě)的,因此喜歡深入研究的人會(huì)非常有幫助。只要你有足夠的調(diào)試技巧,對(duì)一切都了如指掌,這種方法也適用于JavaScript,因?yàn)閂8也是C最新的Java和golang的GC處理時(shí)間很低。擁有GC和不讓世界停頓是很困難的。
如果您想智能地回收內(nèi)存,可以選擇信任,其思想是所有權(quán)機(jī)制。
所謂的所有權(quán)機(jī)制是任何內(nèi)存都有自己的所有者,當(dāng)它被銷(xiāo)毀時(shí),所有者將釋放它。如果別人想使用不屬于自己的記憶,他們需要借用,借用的東西必須歸還。
然后在編譯階段保證所有權(quán)機(jī)制的安全性,不允許出現(xiàn)借而不還的情況。
這是一種新的語(yǔ)言,新的編程思想,你可以研究一下。