1. 程式人生 > >對JDK的深入理解

對JDK的深入理解


我們先來開一下我們下載的jdk檔案目錄:(Java develop kit (java開發工具))


 Java的jdk其實一共包含三部分內容:

1、工具包
2、類庫
3、JRE
jdk包含了對Java的編譯以及執行的處理,他能對編寫的Java程式碼進行編譯,編譯之後的位元組碼檔案,在jdk內部的虛擬機器上執行,可以說它提供了全套的Java服務。

編譯:

首先,我們先來說說編譯,一般的程式碼都是通過編譯之後才能產生位元組碼檔案,以前一些低階語言,他們是直接生成機器碼,也就是我們經常說到的0,1碼來直接執行在機器上的,這個0,1,就是過去的人用紙帶進行編寫程式碼的另一種表現形式,但是這種方法有個弊端,就是不能跨平臺,高階語言Java就解決了這個問題,他在jdk中嵌入了一個虛擬機器,生成的也不再是之前的機器碼了,而是另一種叫做位元組碼的東西,jdk通過在虛擬機器上執行位元組碼來實現和機器碼一樣的效果,這樣就就提高了跨平臺的性質,平臺換了,只要虛擬機器能識別出來就可以將程式碼進行處理,使其產生相同的結果,在整個體系結構上來說在機器上最底層的是硬體資源,再上一層就是作業系統,程式都是在作業系統上進行執行的,我們的位元組碼檔案可不是直接執行在作業系統上,他和作業系統之間隔了一層虛擬機器

執行:

接下來,該說說這個執行的了,執行方面jdk提供了一個jre,在下載的時候可以單獨下載這個jre,然而,我們應該知道的是,jre其實是jdk的一部分,他是jdk的子集。
jre全稱:Java runtime environment (Java執行環境),這個提供了Java執行所需要的所有的東西,同時,jre對於將來工程的部署也起到一定的作用。
總的來說:
1、對於工具包來說他有一個bin目錄,它是用來放一些工具的,比如說Java.exe,這個是用來執行Java位元組碼的指令,javac.exe,這個使用來編譯Java檔案的,還有一個是jar.exe,這個用來打包檔案用的。

2、對於類庫來說,有一個目錄叫lib,裡邊存了一些工具類的類庫,通過這些類提供的方法方便對硬體進行管理,包括檔案的存取,程序之間的通訊

3、對於jre來說,他提供了程式執行的環境,

相關推薦

深入理解Android虛擬機器》一書的知識點總結

1.Android虛擬機器(Dalvik)和java(VM)虛擬機器的區別: (1)可執行檔案: Android:執行的是.dex檔案 java:執行的是標準的位元組碼(Bytecode) (2)所基於的記憶體: Android:基於暫存器的虛擬機器(

JDK深入理解

我們先來開一下我們下載的jdk檔案目錄:(Java develop kit (java開發工具))  Java的jdk其實一共包含三部分內容: 1、工具包 2、類庫 3、JRE jdk包含了

深入理解Spring AOP之二代理象生成

gets code 網上 none work class als post 產生 深入理解Spring AOP之二代理對象生成 spring代理對象 上一篇博客中講到了Spring的一些基本概念和初步講了實現方

深入理解_JVM內存管理JDK監控工具與故障處理工具07

最大 jhat hotspot interval 統計信息 傳遞 啟動 令行 相同 1、jps: JVM process Status Tool,顯示系統所有的HotSpot虛擬機進程以及進程的本地虛擬機的唯一ID(LVMID,Local Virtual Mac

深入理解JVM_內存管理象訪問與大小02

gms uwa hint map awd bpp ase pbo cdc 1、對象訪問: 在java語言中,對象訪問如何進行的? (1)最簡單的訪問,也會涉及java棧、java堆和方法區這三個最重要的內存區域之間的關聯關系。 Ob

深入理解JVM:HotSpot虛擬機象探秘

意願 對象分配 初始化 處理 失敗 每一個 面向 this 線程id 對象的創建 java是一門面向對象的語言。在Java程序執行過程中無時無刻有Java對象被創建出來。在語言層面上,創建對象(克隆、反序列化)一般是一個newkeyword而已,而在虛

事務的深入理解

技術 回滾 平臺 com 一個 許多事 isolation 自己的 管理 1.事務是對一系列動作的組合 2.事務是對一系列動作的組合 3.事務是對一系列動作的組合 4.事務是對一系列動作的組合,要麽全都成功,要麽全都失敗回滾 5.事務是對一系列動作的組合,要麽全都成

鏈接:深入理解javascript構造函數和原型

原型對象 函數 href 深入理解java asc 構造 rip spa tar 鏈接:深入理解javascript構造函數和原型對象http://www.jb51.net/article/55539.htm 鏈接:深入理解javascript構造函數和原型對象

深入理解Java類型信息(Class象)與反射機制

成員變量 字段 機制 () 程序 轉換 默認 數據 統一   深入理解Class對象    RRTI的概念以及Class對象作用    認識Class對象之前,先來了解一個概念,RTTI(Run-Time Type Identification)運行時類型識別,對於這個詞一

find,xargs,grep和管道的一些深入理解

發送 文件名 rgs rom 輸入 很多 () option 理解 轉自於:http://fatmouse.xyz/2016/05/10/2016-05-10-find-grep-xargs-and-pipe/ 問題 相信大家都知道在目錄中搜索含有固定字符串文件的命令:

JDK學習---深入理解java中的String

test bound test6 -h 很多 lai 靈活性 圖形 會有 本文參考資料: 1、《深入理解jvm虛擬機》 2、《大話數據結構》、《大化設計模式》 3、http://www.cnblogs.com/ITtangtang/p/3976820.html#344102

深入理解JavaScript的閉包特性如何給循環中的象添加事件

彈出 所有 了解 ext catch 形參 efi 運行期 -- 初學者經常碰到的,即獲取HTML元素集合,循環給元素添加事件。在事件響應函數中(event handler)獲取對應的索引。但每次獲取的都是最後一次循環的索引。原因是初學者並未理解JavaScri

『PyTorch』第五彈_深入理解Tensor象_中上:索引

nbsp 使用 gpo 簡單 深入理解 pre 需要 sub ext 一、普通索引 示例 a = t.Tensor(4,5) print(a) print(a[0:1,:2]) print(a[0,:2]) # 註意和前一種索引出來的值相同,shape不同 print(

『PyTorch』第五彈_深入理解Tensor象_中下:數學計算以及numpy比較

python 輸入 簡單 相對 range pri std lin block 一、簡單數學操作 1、逐元素操作 t.clamp(a,min=2,max=4)近似於tf.clip_by_value(A, min, max),修剪值域。 a = t.arange(0,6).

阻塞,非阻塞,同步,異步的深入理解

一個 以太網 結果 情況下 spa nbsp emc sock 過程 以前寫過一篇對於這幾個概念的粗略解釋,現在再深入一些。 同步和異步的區別: 同步是調用協議中結果在調用完成時返回,調用過程中參與雙方處於一種狀態同步的過程。 異步是指調用方發出請求就立即返回。 請求甚至可

深入理解python裏面類的象的賦值

技術 技術分享 pytho sel sed 深入理解 ID alt code class T(): def __init__(self): self.name=324 pass a=T() a.name=999 b=a #深入理解類,類裏

深入理解JDK動態代理

緩存 loader getprop manager 動態 java declared flush ont 1 package jdkproxy; 2 3 public interface Moveable { 4 void move(int i); 5 }

象的深度拓展$.extend(true,{},a,b),深入理解,小心陷阱

com ges 深入理解 沒有 裏的 事物 cnblogs wid 希望 轉載:https://www.cnblogs.com/DJeanWeb/p/4388689.html $.extend一般情景下,使用深度拓展兩個對象時,我們想要的效果是,b對象覆蓋掉a對象中存在的

深入理解Java象的創建過程:類的初始化與實例化

fcm 創建過程 this 創作 alt sso sdn 限定 知識 轉載自:https://blog.csdn.net/justloveyou_/article/details/72466416 摘要:   在Java中,一個對象在可以被使用之前必須要被正確地初始化,這一

python寫簡單的web靜態伺服器,socket的深入理解

import socket from multiprocessing import Process import time #...使用socket建立簡單的靜態伺服器 def func1(sock): # 子程序實現的功能 read_data = sock.recv(2