闲谈一点:接触Java也4,5年了,看过很多框架,用过很多封装好的工具,也看过JVM等一些书籍,但是心中一直有一种迷茫感,原因就是对Java没有一个全局的认识,说来惭愧,自己都徘徊在‘器’的层面,本文选择几个小侧面来全局看看Java。
1: 从Java分类的角度
Java分为me,se,ee三个版本,这个三个版本的具体含义就不说了,自己google一下,值得注意的是,现在大家开发的时候基本上都用到了很多ee的包,但是在安装jdk的时候都选择se,通过单独import ee组件jar包的方式使用ee的功能。
2:从Java源代码库的层面看看Java是什么(se)
如上图,首先我们看jdk下包含的jar包,最重要的几个jar包如下:
rt.jar :jdk编程接口的类库,也叫运行时类库,在通常的编程中,你的程序是基于rt.jar中接口来编写的, 这个jar是最重要的。
tools.jar : 这个是编译或分析时是需要调用的类,就是你用到的Java工具的实现如:java,javac, jstack等工具的实现都在这里。
我们现在进入rt.jar:
参考文章:http://blog.csdn.net/bbirdsky/article/details/17121677
Java.,javax.包,org.***包:
1、作为J2SE的API公开接口的一部分,与操作系统无关可以在所有Java平台上运行;
2、不同的jdk版本会保持兼容不会轻易变化,提供API文档及源码(src.zip)。
sun.包:
1、不是API公开接口的一部分,调用sun包的程序并不能确保工作在所有Java平台上,不同的操作系统中的实现可能不相同。
2、不同的jdk版本sun包中的类也可能不定期的变化,因此sun.包中的类没有提供API文档及源码。
在这些包中,java包是基础包,javax包是对其扩展和优化
进入java包看看:
看到这个列表是不是很熟悉,我们看的java编程思想大部分在lang包中,我们用的容器,并发等大部分在util中,我们常用的jdbc在sql中,我们用的rpc有java的实现rmi,我们用的io在nio中等等。
3:从java技术架构上来看看Java是啥
这是官方的一张图http://www.oracle.com/technetwork/java/javase/tech/index.html