java虚拟机通俗_JAVA虚拟机的通俗解释
JAVA不同于C語言,是在JAVA虛擬機(jī)中運(yùn)行的。JAVA虛擬機(jī)的百度解釋如下。虛擬機(jī)是一種抽象化的計(jì)算機(jī),通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。Java虛擬機(jī)有自己完善的硬體架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java虛擬機(jī)屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。
我開始上班的時(shí)候有很多聲音是虛擬機(jī)運(yùn)行比較慢,天然不如C語言運(yùn)算快。就是所謂的程序員鄙視鏈,C天然鄙視JAVA。后來隨著了解的多了,感覺JAVA虛擬機(jī)是添加中間層的想法。就是封裝。
程序最開始是機(jī)器編碼,一個(gè)符號代表一種操作。
后來是匯編,可以讓程序員不需要記住二進(jìn)制命令了,匯編的一條指令和機(jī)器代碼的一條指令是一一對應(yīng)的。只是為了讓我們更好的記憶。
后來是C語言這種高級程序語言,C語言是匯編語言的抽象,他會編譯成匯編語言,然后編程可執(zhí)行文件。C語言讓程序員可以不需要理解什么寄存器了,PC了。反正就是編程變得簡單了,更需要注重業(yè)務(wù)。有了C語言以后,大型程序才有可能被開發(fā)出來,使用匯編語言來寫一個(gè)大的項(xiàng)目,無論從學(xué)習(xí)成本(上學(xué)的時(shí)候匯編就沒學(xué)好)還是合作成本,各個(gè)方便都不適合寫出大型程序。
但是C語言又存在移植性的問題,每個(gè)CPU的指令級不一樣,不同的操作系統(tǒng)變量還有大小端也存在不同。程序的遷移就很麻煩,需要使用源代碼到不同的機(jī)器上進(jìn)行編譯,然后才能執(zhí)行。但是也會存在一些執(zhí)行的差異。
引用一句話“計(jì)算機(jī)里面沒有什么問題都可以通過添加中間件來解決。”
我覺得JAVA就是通過這個(gè)思想誕生的,一處編寫,到處運(yùn)行。
JAVA不在針對CUP執(zhí)行級以及操作系統(tǒng)來編寫程序了,而是針對虛擬機(jī)(中間件),不同的操作系統(tǒng),我再通過虛擬機(jī)去適應(yīng)。這樣程序就和操作系統(tǒng)解耦了。兩個(gè)不互相依賴。DI,IOC也是這種思想吧。如果是DI這種思想是對的,那么JAVA就是更好的一種語言。
C->操作系統(tǒng)
JAVA->虛擬機(jī)
總結(jié)
以上是生活随笔為你收集整理的java虚拟机通俗_JAVA虚拟机的通俗解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武直超700架,三代坦克占比超7成
- 下一篇: mysql自带命令使用教程_自用mysq