首先,关于JDK API我想所有对Java感兴趣的开发者都会拥有一份JavaAPI文档方便自己翻阅,对于一个新手我们常常会有疑惑,Java提供了这么多的API,到底哪些对我们才是有用的呢?下面一一为大家讲解。


    细心的读者会发现包名开头可分为java,javax两类:java和javax都是Java的API(Application Programming Interface)包,java是核心包,javax的x是extension的意思,也就是扩展包


1:针对awt开发我们比较常用的是:

134942_MMT1_143244.png

后来Java扩展了Swing:

135041_oubP_143244.png

以上包可能在我们实际的开发中很少用到,但是却给初学Java的菜鸟提供了一套丰富的界面编程API。一下着重介绍工作以来使用的最频繁的几套API,才用顺序介绍。

2:基础包,IO流跟lang

135424_fspC_143244.png

使用Java编程打交道最多的莫过于IO流操作,因为Java本身还要经过一层JVM跟OS交互,因此JavaIO底层使用的是JNI技术实现与本地文件流的读取,另外由于JavaIO使用装饰模式设计使用JavaIO使用起来更加简单,易懂。关于基础包lang包从上往下依次为,Java最基础的一些类比如线程,基本数据类型,迭代,排序,字符源等都包含在该包内。再来就是注解包,该包在实战中能定义一些类的源数据,即可以给类归类,在MVC层面上常常用来表现vo层,service层与controller层。接下来使用的最多的就是反射了,我们知道有了反射应该是很多框架实现的基础。

3:网络传输层协议,NIO:

140359_2YAs_143244.png

Java最开始的设计就是基于网络编程的,因此Java对传输层协议做了一个很好的封装,很多应用层的服务器框架都要在该基础上实现自己的协议,比如常用的tomcat实现了Http等协议,但是光有这个还不够的,我们知道在1.4之前针对Java Socket编程这块最大的瓶颈是对IO的操作,因为在这之前Java使用的是传统的BIO,即一个连接一个线程处理IO等待的场景,由于这个原因在很长一段时间Java在大型软件架构中都不能表现得非常完美,但是JDK1.4之后Java在这块上有了很大的提升就是NIO的出现,NIO使用一种全新的设计方式即select/poll,以及选择器通道,堆外内存概念的引入大大增加了Java在这块的不足之处,使得Java在这块的速度能够与C,C++开发的网络服务器一较高下。


4:远程过程调用RMI:

141328_Ujep_143244.png

其实在我的工作中目前还没有使用到RMI技术,只是自己做过一些demo,用得比较多的是基于RPC的hessian,使用过Spring的人应该清楚Spring封装了很多远程调用机制跟一些服务比如,Spring Hessian/Burlap ,Spring httpinvoker,Spring RMI关于这里面的原因这里面就不多说了,网上有一大堆很好的资料。

5:数据库规范:

142237_5VZD_143244.png

sql包是一套接口规范,用于各自的数据库厂商在该基础上实现各自的数据库操作,就是我们在开发中接触最多的JDBC,在开发中可能框架都给我们封装好了,但是对于初学Java的菜鸟来说还是建议不要使用封装好的框架以加强基本功。

6:Java工具包util:

142627_v7l1_143244.png

记得大学刚开始学习C语言的数据结构+算法课程时,要理解很多概念比如说队列,堆栈,集合等,然后还是在理解的同时自己写代码实现,对于不愿意学习编程的人来说这个过程是比较痛苦的,而对于喜欢编程的人来说这个是锻炼自己的一个很好的方式,因为选择Java之后你将不需要自己去实现队列啥的了,没错,JavaAPI提供了一整套在开发中常用的工具包,从而能使你更加专注于业务逻辑的编写。

7:Java并发包:

143127_HHwc_143244.png

说到并发,我想这应该是很多开发人员要关注的问题了,因为它会让你的系统出现各种各样的问题,在Java里面提供了锁机制来控制并发,但是这种锁机制充其量只能算得上是悲观锁了,如何优化呢?这时候Java并发包出现了,至少它的出现跟以前控制并发的方式比起来,性能是提升了好多的,因为它的底层使用的是CAS来控制。并发包里面可以完全替换原先控制方法块的方式以及wait,notiy方式。