亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java跨平臺原理

2019-11-06 06:17:38
字體:
來源:轉載
供稿:網友

學習java的同學注意了!?。?nbsp;學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群,群號碼:523047986  我們一起學Java!

  1、是么是平臺

Java是可以跨平臺的編程語言,那我們首先得知道什么是平臺,我們把CPU處理器與操作系統的整體叫平臺。

CPU大家都知道,如果計算機是人,那CPU就是人的大腦,它既負責思維運算,又負責身體各部件的命令控制。CPU的種類很多,除去我們熟知的Intel與AMD外,還有比如上面說到的SUN的Sparc,比如IBM的PowerPC等等,這些各個公司生產的CPU使用或相同或不同的指令集。指令集就是cpu中用來計算和控制計算機系統的一套指令的集合。指令集又分為精簡指令集(RISC)與復雜指令集(CISC),每種cpu都有其特定的指令集。開發程序,首先要知道該程序在什么CPU上運行,也就是要知道CPU所使用的指令集。

下面說操作系統,操作系統是充當用戶和計算機之間交互的界面軟件,不同的操作系統支持不同的CPU,嚴格意義上說是不同的操作系統支持不同CPU的指令集。例如  windows和liunx都支持Intel和AMD的復雜指令集,但并不支持PowerPC所使用的精簡指令集,而早期的MAC電腦使用的是PowerPC處理器,所以也就無法在MAC下直接安裝windows,直到05年MAC改用了Intel的CPU,才使在MAC下安裝windows成為可能。但問題來了,原來的MAC 操作系統也只支持PowerPC,在Intel上也不能安裝,怎么辦?所以蘋果公司也得重寫自己的MAC操作系統以支持這種變化。最后總結下,我們要知道,不同的操作系統支持不同的CPU指令集,現在的windows,liunx,mac,solaris都支持Intel與AMD的CPU指令集。

有了上面的鋪墊,旺旺老師就要告訴大家,如果您要開發程序,首先應該確定:1,CPU類型,也就是指令集類型;2,操作系統;我們把這種軟硬件的結合叫平臺。也可以說“平臺= CPU+OS”。又因為現在主流的操作系統都支持主流的CPU,所以有時也把操作系統稱為平臺。

  知道什么是平臺,我們看Java跨平臺原理。

  2、Java跨平臺原理

首先看一張與C語言有關的圖: 

    

如果您有過C的開發經歷,這張圖看起來將非常輕松。我們知道,只要是用標準C開發的程序,使用不同的編譯器編譯后的可執行文件是可以在對應平臺運行的,比如windows可以使用VC編譯,那編譯后的exe文件就可以在windows下運行;liunx下可以使用GCC編譯,生成的可執行文件就可以在Liunx上運行。

到這里請大家思考一個問題:“VC編譯的exe能在Liunx上運行嗎?”

答案肯定是否定的。使用特定編譯器編譯的程序只能在對應的平臺運行,這里也可以說編譯器是與平臺相關的,編譯后的文件也是與平臺相關的。我們說的語言跨平臺是編譯后的文件跨平臺,而不是源程序跨平臺,如果是源程序,任何一門語言都是跨平臺的語言了。這個如果您不明白,看下面一個案例:

比 如火星真的有外星人(并且毋庸置疑,火星是韓國人的,火星文也一定是韓國人發明的),就像我們觀察螞蟻一樣,火星人默默的觀察著我們,有一天,當人類做的 什么事情讓火星人實在是看不下去了(比如旺旺老師的書出版了你不買,哈哈,嘔吐中,沒關系,吐啊吐啊就吐習慣了),所以決定來地球教育我們,但有一個問 題,火星人只會說火星文,地球人理解不了,怎么辦???找翻譯唄(也許非主流可以幫忙,玩笑)!由中文翻譯把火星文翻譯為中文,英文翻譯把火星文翻譯為英文 等等等等,但這樣問題來了,中文翻譯翻譯的東西只有中國人能聽懂,美國人法國人根本不明白,英文翻譯翻譯的文章中國人也不明白,也就是語言不能跨平臺。

那上例中,火星文就是C語言,各個國家是平臺,中文翻譯英文翻譯就是對應平臺的編譯器,編譯后的文章就是可執行文件。雖然源文章火星文是與平臺無關的,但翻譯器是與特定國家相關的,翻譯后的文章也是與特定國家相關的。

接下來思考另一個問題“怎么讓火星文跨平臺呢?”

火星人想到了地球上有世界語,于是首先把自己的文章翻譯為世界語;世界語各國人當然看不懂,沒關系,火星人又給每個國家配備了一個世界語到本地語的翻譯,這 樣火星文只要翻譯一次(翻譯為世界語),就可以到各個國家運行了。還要記住,這個過程火星人要提供兩個組件,第一是火星文到世界語的翻譯,第二是世界語到 對應本地語言的翻譯。如下圖:

    

有了上面案例的積累,我們也知道了語言跨平臺原理:“不能編譯成機器語言,因為那樣就與平臺相關了,編譯為中間語言,再由解釋器二次編譯,解釋執行?!比缦率荍ava跨平臺原理表示圖:

    

上圖中的.java就是源程序,類似于c語言的.c,生成的中間碼是.class,這個既是我們上文中說的中間語,各個平臺解釋器就是各種國家翻譯。

接下來我們再比較下兩種方式的差異:第一,C語言是編譯執行的,編譯器與平臺相關,編譯生成的可執行文件與平臺相關;第二,Java是解釋執行的,編譯為中間碼的編譯器與平臺無關,編譯生成的中間碼也與平臺無關(一次編譯,到處運行),中間碼再由解釋器解釋執行,解釋器是與平臺相關的,也就是不同的平臺需要不同的解釋器.

這里再說下語言根據執行方式的不同分類:第一是編譯執行,如上文中說到的C,它把源程序由特定平臺的編譯器一次性編譯為平臺相關的機器碼,它的優點是執行速度快,缺點是無法跨平臺;第二是解釋執行,如HTML,JavaScript,它使用特定的解釋器,把代碼一行行解釋為機器碼,類似于同聲翻譯,它的優點是可以跨平臺,缺點是執行速度慢,暴露源程序;第三種是從Java開始引入的“中間碼+虛擬機”的方式,它既整合了編譯語言與解釋語言的優點,同時如虛擬機又可以解決如垃圾回收,安全性檢查等這些傳統語言頭疼的問題,所以其后微軟的.NET平臺也使用的這種方式。

   

  Java先編譯后解釋

  同一個.class文件在不同的虛擬機會得到不同的機器指令(Windows和linux的機器指令不同),但是最終執行的結果卻是相同的

學習Java的同學注意了?。?! 學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群,群號碼:523047986  我們一起學Java!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久夜色精品亚洲噜噜国产mv| www.日本久久久久com.| 狠狠爱在线视频一区| 欧美日韩国产精品一区二区不卡中文| 国产成人精品亚洲精品| 亚洲第一视频网| 亚洲午夜av久久乱码| 91在线免费看网站| 亚洲精品成人久久电影| 国产偷国产偷亚洲清高网站| 亚洲最大的网站| 在线观看欧美成人| 国产精品第七十二页| 久久久国产精品x99av| 国产成人精品免高潮费视频| 亚洲大胆人体在线| 国产精品视频区1| 精品国产一区二区三区久久狼黑人| 欧美精品日韩www.p站| 国产精品日韩久久久久| 最新的欧美黄色| 欧美大片第1页| 国产精品视频在线观看| 国产精品自产拍高潮在线观看| 久久久久久久久久久亚洲| 欧美日韩国产二区| 欧美激情2020午夜免费观看| 在线亚洲国产精品网| 在线观看精品国产视频| 国产精品v片在线观看不卡| 欧美精品videofree1080p| 日韩精品在线视频观看| 最新的欧美黄色| 欧美性视频在线| 中文字幕欧美国内| 538国产精品视频一区二区| 亚洲人免费视频| 亚洲最大成人在线| 欧美在线视频观看免费网站| 久久久免费av| 亚洲福利视频网站| 亚洲精品国产电影| 午夜精品久久久久久久99黑人| 日韩精品在线私人| 国产精品亚洲欧美导航| 色综合久综合久久综合久鬼88| 色综合久综合久久综合久鬼88| 亚洲自拍小视频| 成人久久一区二区三区| 欧美野外猛男的大粗鳮| 日韩欧美有码在线| 疯狂蹂躏欧美一区二区精品| 亚洲精品中文字幕女同| 欧美成人国产va精品日本一级| 国产精品久久久久久网站| 久久综合免费视频影院| 日韩免费av片在线观看| 国产精品成人一区二区三区吃奶| 国产成人高清激情视频在线观看| 久久色在线播放| 麻豆国产va免费精品高清在线| 中文字幕久久久av一区| 亚洲精品女av网站| 精品欧美aⅴ在线网站| 亚洲欧美一区二区精品久久久| 一区二区三区黄色| 在线色欧美三级视频| 亚洲国产精品热久久| 日韩视频在线一区| 91在线视频成人| 日韩欧美在线免费| 久久久爽爽爽美女图片| 国产精品视频自拍| 亚洲午夜性刺激影院| 亚洲欧美一区二区三区情侣bbw| 色妞色视频一区二区三区四区| 欧美日韩国产色| 欧美激情精品久久久久久| 亚洲国产精品专区久久| 亚洲色图综合网| 国产精品美腿一区在线看| 国产香蕉97碰碰久久人人| 欧美精品免费播放| 国产精品久久久久久久久粉嫩av| 国产精自产拍久久久久久| 精品久久久久人成| 亚洲一区第一页| www.日韩.com| 亚洲欧美在线一区二区| 亚洲成人久久一区| 欧美综合一区第一页| 国产精品人人做人人爽| 在线日韩欧美视频| 国产精品黄页免费高清在线观看| 亚洲激情第一页| 日韩免费看的电影电视剧大全| 欧美与欧洲交xxxx免费观看| 国产亚洲精品久久久久久| 日韩av在线最新| 3344国产精品免费看| 日韩av在线导航| 欧美日韩在线视频一区二区| 日韩中文字幕视频在线观看| 欧美午夜宅男影院在线观看| 欧美有码在线观看视频| 91av在线免费观看视频| 91国偷自产一区二区三区的观看方式| 6080yy精品一区二区三区| 国产精品第二页| 91九色综合久久| 久久国产精品久久国产精品| 国产99在线|中文| 日韩亚洲精品电影| 日韩av网址在线| 亚洲а∨天堂久久精品喷水| 高跟丝袜一区二区三区| 欧美中文在线观看国产| 久久人91精品久久久久久不卡| 国内精品久久影院| 欧美乱大交做爰xxxⅹ性3| 日韩久久午夜影院| 国产亚洲美女久久| 亚洲国产精品资源| 91欧美激情另类亚洲| 91sao在线观看国产| 日韩精品在线免费观看视频| 久久久av电影| 国产精品视频一区国模私拍| 亚洲女人天堂视频| 91精品在线国产| 国产99久久精品一区二区| 精品国产91久久久久久| 国产情人节一区| 国产精品扒开腿做爽爽爽男男| 日韩av一区在线| 久久99精品国产99久久6尤物| 亚洲最大福利网站| 色噜噜亚洲精品中文字幕| 91av在线国产| 萌白酱国产一区二区| 精品久久久999| 国产剧情久久久久久| 亚洲aa中文字幕| 亚洲自拍偷拍第一页| 亚洲另类欧美自拍| 国产精品久久久久久久久久| 日韩资源在线观看| 欧美wwwxxxx| 欧美性猛交xxxx免费看久久久| 亚洲国产高清自拍| 国产综合香蕉五月婷在线| xvideos成人免费中文版| 国产成+人+综合+亚洲欧美丁香花| 国产在线观看一区二区三区| 欧美日韩加勒比精品一区| 欧美性少妇18aaaa视频| 中文字幕免费精品一区高清| 欧美一区二粉嫩精品国产一线天| 久久久99免费视频| 日韩精品免费在线播放| 九九热精品视频国产| 色哟哟入口国产精品| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美综合区自拍另类|