學習一門語言首先要對他有一定的了解,否則就會失去最基本的東西,
一、什么是Java
通俗將就是計算機語言的最新版本,計算機經歷了C語言、C++語言、以及C+±-語言,這里的C++ - -語言就是Java語言,Java語言是C語言的第三個計算機語言革命,C++語言是對C語言不足處的改進,的一門語言,而Java語言是面對C++語言的不做又一步的改進,為最大的革進新穎,決定不叫C+±-而后一些程序,最終叫Java,
Java與C語言以及C++語言相比的優勢其又跨平臺性、可移植性,
二、sun jdk
眾所周知,java運行在jvm虛擬機上,其中虛擬機又分很多種,到目前為止java代表的并不是jvm,
jvm可以理解成一個不透明的沙盒,提供了一些介面允許輸入輸出,當然也提供了一些基本的監控,java被當成了撰寫程式運行在jvm上的一門編程語言,
sun jdk主要分為bin、lib、 jre 、jre/lib 、 jre/bin 幾大塊:
bin是Java工具,可以調起java的一些可運行包,比如java的編譯,最主要的是編譯器(javac.exe),
lib是java基礎類別庫,
jre是運行JAVA程式所必須的環境的集合,包含JVM標準實作及Java核心類別庫,也就是說運行一個java程式只需要包含jre部分即可,但是jre只能運行,不能編譯,
jre/lib是JVM標準實作及Java核心類別庫,
jre/bin相當于jvm,提供了編譯后的二進制檔案的運行環境,
可以看出 jdk是最全的包含了所有的java所需包括jre,而jre只有運行環境,其中jre包含jvm,
三、回到核心
回到本質上,jvm接受的是二進制檔案,而不是指定java語言撰寫的二進制檔案,所以使用其他語言比如python、c、c++、go等語言,只要能將其編譯成jvm可理解的二進制檔案,就能在jvm上運行,當然這個程序非常艱難,要知道難在哪,需要搞清楚java編譯器編譯出來的二進制檔案的格式是怎么樣的,這個問題我將在后續的java編譯、指令重排中介紹,
當下對java程式員的技能水平考驗的更多是jvm的了解和掌握程度,而非java語言特性,絕大多數jvm都是由c++或者c(c與c++歷來不分家)撰寫,當然也有用java實作虛擬機的版本,要搞懂jvm不必去搞c,但是搞過c的人都知道寫起c來跟寫起java來,完全不是一回事,java給我們的是全套封閉式的環境,同時也是束縛程式員的一大壁壘,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/178898.html
標籤:其他
上一篇:記錄一下mysql的安裝
