java java自學(xué)可以么,有C語(yǔ)言基礎(chǔ)?
java自學(xué)可以么,有C語(yǔ)言基礎(chǔ)?Java是一種面向?qū)ο蟮恼Z(yǔ)言。定義字符類型的思想不同于面向?qū)ο笳Z(yǔ)言。但正是這些簡(jiǎn)單的組合構(gòu)成了一個(gè)復(fù)雜的系統(tǒng)。學(xué)習(xí)java不一定要基于C語(yǔ)言,從語(yǔ)言本身來(lái)說(shuō),你買的基
java自學(xué)可以么,有C語(yǔ)言基礎(chǔ)?
Java是一種面向?qū)ο蟮恼Z(yǔ)言。定義字符類型的思想不同于面向?qū)ο笳Z(yǔ)言。但正是這些簡(jiǎn)單的組合構(gòu)成了一個(gè)復(fù)雜的系統(tǒng)。學(xué)習(xí)java不一定要基于C語(yǔ)言,從語(yǔ)言本身來(lái)說(shuō),你買的基本教材會(huì)教你一些java的基本知識(shí),所以你不能學(xué)習(xí)java和C.,但是有C基礎(chǔ)可以讓你學(xué)習(xí)java更容易一些。畢竟,它們都是編程語(yǔ)言,在基礎(chǔ)設(shè)施上也很相似。我想這就是為什么大多數(shù)大學(xué)課程把C語(yǔ)言放在大一的原因,不是教學(xué)生如何用C語(yǔ)言寫豐富的東西,而是讓他們通過(guò)C語(yǔ)言理解一些程序思想。
雖然不用學(xué)習(xí)C就可以學(xué)習(xí)java,但語(yǔ)言是相互關(guān)聯(lián)的。再次學(xué)習(xí)C和java將會(huì)非常順利,而直接學(xué)習(xí)java將會(huì)非常不愉快。我不相信你能問(wèn)哪個(gè)Java高手不會(huì)學(xué)c!這根本不是中英文的關(guān)系。Java是由C改進(jìn)的,C是C的擴(kuò)展,你覺(jué)得可以嗎?建議先學(xué)C,不要把重點(diǎn)放在語(yǔ)法上,掌握程序的流程和算法,然后順利地學(xué)java,但語(yǔ)法不同
!綜上所述,學(xué)習(xí)java不需要學(xué)習(xí)C語(yǔ)言,但C語(yǔ)言是一門相對(duì)基礎(chǔ)的語(yǔ)言。在學(xué)習(xí)了基本的東西之后,學(xué)習(xí)其他編程語(yǔ)言將變得非常容易。這是一種蔑視你所看到的東西的能力,但我們所說(shuō)的可能并不適合你。我們應(yīng)該根據(jù)自己的實(shí)際情況、時(shí)間、壓力和目標(biāo)來(lái)選擇合適的。
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)是一個(gè)死循環(huán)。每個(gè)循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過(guò)程,因此與其他程序沒(méi)有本質(zhì)區(qū)別。主流的JavaVM大多是用C語(yǔ)言實(shí)現(xiàn)的,然后用匯編語(yǔ)言輔助實(shí)現(xiàn),用Java實(shí)現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語(yǔ)言在智能設(shè)備中實(shí)現(xiàn)虛擬機(jī)的一個(gè)片段。
此代碼是短加法字節(jié)碼的實(shí)現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認(rèn)為JavaVM就是這樣嗎。
為了優(yōu)化虛擬機(jī)的效率,很多人選擇用匯編的方式重寫執(zhí)行頻率高的代碼。
小結(jié)是C語(yǔ)言實(shí)現(xiàn)的許多,將與匯編結(jié)合起來(lái)作為輔助工具。有其他語(yǔ)言,但不是主流。
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ù)念惐仁荍ava是傻瓜,而C需要更復(fù)雜的設(shè)置來(lái)生成更好的照片。Java有很多方法,別人都為你做過(guò),你可以用。但是在C語(yǔ)言中,您必須自己編寫這些方法,然后再次使用它們。
如果你學(xué)好C語(yǔ)言,你可以理解許多更深入的計(jì)算機(jī)語(yǔ)言原理。如果你學(xué)好了java,你就是別人構(gòu)建的平臺(tái)上的應(yīng)用專家。但是C仍然有很多應(yīng)用。
C與Java類似。
JAVA,PHP Python區(qū)別?
Java、PHP和python之間有什么區(qū)別?現(xiàn)在有越來(lái)越多的編程語(yǔ)言,但要在許多編程語(yǔ)言中脫穎而出并不是一件簡(jiǎn)單的事情。目前,世界上所有編程語(yǔ)言的排名如下圖所示。
從上圖中我們可以看出,由于移動(dòng)終端系統(tǒng)Android的普及,Java仍然是最流行的語(yǔ)言,Android的底層語(yǔ)言是Java。Java不僅可以開(kāi)發(fā)軟件應(yīng)用程序,還可以開(kāi)發(fā)web應(yīng)用程序。Java基本上是分布式計(jì)算和大數(shù)據(jù)領(lǐng)域的佼佼者。例如,Hadoop是基于Java開(kāi)發(fā)的大數(shù)據(jù)處理軟件。
在上圖中,PHP略落后于Java和python。PHP主要用于開(kāi)發(fā)web應(yīng)用程序。雖然php7中增加了開(kāi)發(fā)軟件應(yīng)用程序的功能,但與Java相比還不算什么。然而,在web開(kāi)發(fā)中,它的優(yōu)勢(shì)得到了充分的體現(xiàn)。世界上幾乎70%的網(wǎng)站都是通過(guò)PHP開(kāi)發(fā)的,甚至Facebook也采用了PHP技術(shù)。
在上圖中,增長(zhǎng)最快的語(yǔ)言是python,這可能是由于近年來(lái)人工智能的快速發(fā)展。據(jù)說(shuō)高中將有Python課程。Python語(yǔ)言起步快,應(yīng)用廣泛,可用于web數(shù)據(jù)分析、科學(xué)計(jì)算、統(tǒng)計(jì)分析、自動(dòng)操作等?,F(xiàn)在人工智能系統(tǒng)還將提供Python接口,這使得編寫人工智能應(yīng)用程序更加方便。
都說(shuō)搞底層和算法的才厲害,學(xué)Java的感到自卑,怎么辦?
這是一個(gè)偉大的方式來(lái)建立一個(gè)宇宙飛船,但有許多只是螺絲釘。
搞算法的人看不起搞工程的人,
搞操作系統(tǒng)內(nèi)核的人看不起寫驅(qū)動(dòng)的人,
搞體系結(jié)構(gòu)的人看不起寫模塊的人,
搞嵌入式系統(tǒng)的人看不起寫應(yīng)用的人,
寫背景的人看不起寫前景的人。
使用Mac OS X的工程師鄙視使用Linux的工程師,
使用Linux的工程師鄙視使用windows的工程師。
C語(yǔ)言工程師鄙視C工程師,
C工程師鄙視Java和C工程師,
Java工程師和C工程師互相鄙視。
有漂亮妻子的程序員鄙視沒(méi)有漂亮妻子的程序員。
有妻子的程序員鄙視沒(méi)有妻子的程序員。
沒(méi)有妻子和女友的程序員鄙視單身狗。
……
其實(shí),想想上面的鄙視心態(tài)很簡(jiǎn)單。一般來(lái)說(shuō),站在最高層的人的心態(tài)是我制定了游戲規(guī)則。你只是游戲中的一個(gè)棋子。當(dāng)然,我可以看不起你。
但他真的創(chuàng)造了游戲規(guī)則嗎?顯然不是。
站在蔑視鏈頂端的大多數(shù)人也是這一層的螺絲釘。因此,大多數(shù)人沒(méi)有資格鄙視。比如說(shuō):建房子的時(shí)候,打基礎(chǔ)的工人看不起砌墻工人嗎?事實(shí)上,真正的殺手是房子的設(shè)計(jì)師(當(dāng)然,大多數(shù)設(shè)計(jì)師都是從一個(gè)地方復(fù)制到另一個(gè)地方,并不羨慕)。
所以如果這個(gè)蔑視鏈真的有意義的話,那么我想:底層的人比你付出更多的時(shí)間。Java更容易上手,C更難上手,算法更難上手。
但是優(yōu)秀Java程序員的門檻并沒(méi)有降低。同樣,做算法的人很難做出好的算法。大多數(shù)從事C語(yǔ)言開(kāi)發(fā)的人不會(huì)獨(dú)立編寫操作系統(tǒng)。
如果你只是想繼續(xù)學(xué)習(xí)Java,你應(yīng)該怎么做?只是時(shí)間和精力比別人多。
每種語(yǔ)言都有自己的優(yōu)勢(shì)。不要用Java的缺點(diǎn)來(lái)比較其他語(yǔ)言的優(yōu)點(diǎn),而要充分發(fā)揮Java自身的優(yōu)點(diǎn)。
Java語(yǔ)言主要用來(lái)編寫什么?是不是編寫qq、瀏覽器之類的應(yīng)用?
Java編程語(yǔ)言由Sun Microsystems于1995年開(kāi)發(fā)。以前,它只用于設(shè)計(jì)和編程小型計(jì)算設(shè)備,后來(lái)被作為一種與平臺(tái)無(wú)關(guān)的編程語(yǔ)言采用。Java最重要的特點(diǎn)是它的字節(jié)碼可以在任何平臺(tái)上編譯,包括windows、Linux等,也可以從sun的官方網(wǎng)站免費(fèi)下載。正如我們前面提到的,Java編程語(yǔ)言只為小型設(shè)備開(kāi)發(fā),但現(xiàn)在它可以用于移動(dòng)電話、電子商務(wù)應(yīng)用程序、pc以及幾乎所有的網(wǎng)絡(luò)或計(jì)算設(shè)備。
Java有不同的形式:
JSP?與PHP和ASP一樣,Java服務(wù)器頁(yè)面基于帶有普通HTML標(biāo)記的代碼,這有助于創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)。
Java小程序?這是另一種用于網(wǎng)頁(yè)的Java程序,用于向web瀏覽器添加許多新功能。這些小程序用于即時(shí)通訊、聊天服務(wù)編程、解決一些復(fù)雜的計(jì)算和許多其他用途。
J2EE?各種公司使用Java 2 Enterprise Edition將基于XML結(jié)構(gòu)化文檔的數(shù)據(jù)傳輸?shù)奖舜恕?/p>
JavaBeans?它就像visualbasic和可重用的軟件組件,可以很容易地組裝起來(lái)創(chuàng)建一些新的高級(jí)應(yīng)用程序。
它在語(yǔ)法上類似于Java,但在編碼風(fēng)格上是獨(dú)特的。它遵循循環(huán)、數(shù)據(jù)類型、條件、大括號(hào)、分號(hào)等所有通用編程特性。它是一種全功能的面向?qū)ο缶幊蹋∣OP)語(yǔ)言,因?yàn)樗С炙蠴OP函數(shù),包括類、模塊、繼承、多態(tài)性等。