閑談一點(diǎn):接觸Java也4,5年了,看過很多框架,用過很多封裝好的工具,也看過JVM等一些書籍,但是心中一直有一種迷茫感,原因就是對Java沒有一個(gè)全局的認(rèn)識,說來慚愧,自己都徘徊在‘器’的層面,本文選擇幾個(gè)小側(cè)面來全局看看Java。
1: 從Java分類的角度
Java分為me,se,ee三個(gè)版本,這個(gè)三個(gè)版本的具體含義就不說了,自己google一下,值得注意的是,現(xiàn)在大家開發(fā)的時(shí)候基本上都用到了很多ee的包,但是在安裝jdk的時(shí)候都選擇se,通過單獨(dú)import ee組件jar包的方式使用ee的功能。
2:從Java源代碼庫的層面看看Java是什么(se)

如上圖,首先我們看jdk下包含的jar包,最重要的幾個(gè)jar包如下:
rt.jar :jdk編程接口的類庫,也叫運(yùn)行時(shí)類庫,在通常的編程中,你的程序是基于rt.jar中接口來編寫的, 這個(gè)jar是最重要的。
tools.jar : 這個(gè)是編譯或分析時(shí)是需要調(diào)用的類,就是你用到的Java工具的實(shí)現(xiàn)如:java,javac, jstack等工具的實(shí)現(xiàn)都在這里。
我們現(xiàn)在進(jìn)入rt.jar:

參考文章:http://blog.csdn.net/bbirdsky/article/details/17121677
Java.,javax.包,org.***包:
1、作為J2SE的API公開接口的一部分,與操作系統(tǒng)無關(guān)可以在所有Java平臺上運(yùn)行;
2、不同的jdk版本會保持兼容不會輕易變化,提供API文檔及源碼(src.zip)。
sun.包:
1、不是API公開接口的一部分,調(diào)用sun包的程序并不能確保工作在所有Java平臺上,不同的操作系統(tǒng)中的實(shí)現(xiàn)可能不相同。
2、不同的jdk版本sun包中的類也可能不定期的變化,因此sun.包中的類沒有提供API文檔及源碼。
在這些包中,java包是基礎(chǔ)包,javax包是對其擴(kuò)展和優(yōu)化
進(jìn)入java包看看:

看到這個(gè)列表是不是很熟悉,我們看的java編程思想大部分在lang包中,我們用的容器,并發(fā)等大部分在util中,我們常用的jdbc在sql中,我們用的rpc有java的實(shí)現(xiàn)rmi,我們用的io在nio中等等。
3:從java技術(shù)架構(gòu)上來看看Java是啥
這是官方的一張圖http://www.oracle.com/technetwork/java/javase/tech/index.html
