java分为三类 -- java SE(标准版)、java EE(企业版)、 java ME(微型版)。(有些人会写成j2SE、J2EE、J2ME)
Java SE就是Java2的标准版,主要用于桌面应用软件的编程;Java ME主要应用于嵌入式系统开发,如手机和PDA的编程;Java EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。(1998年12月,SUN公司发布了JDK1.2,开始使用“Java 2” 这一名称,目前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2)
我现在翻译的只有java SE。这三个之间的关系,可以说是java EE的API应该是java SE的API超集,java ME“大约”是java SE的子集。java EE > java SE > Java ME
那当你在成功安装jdk以后会有一个jdk和jre,如果你只需要运行java程序,只需安装JRE;如果你只需要编写java程序,只需要安装JDK;那你都需要就都安装。说的意思很浅显,深入的大家可以在了解一下,就不在多提了。
进入正题,首先介绍java_api,里面包含61个大包,如下(及每个包的解释):
api分为两个部分java和jdk
Java SE:Java平台标准版(Java SE)API为通用计算定义了核心Java平台。这些API位于名称以开头的模块中java
。
JDK:Java开发工具包(JDK)API是JDK特有的,不一定在Java SE平台的所有实现中都可用。这些API位于名称以开头的模块中jdk
。
1. java.base:定义Java SE平台的基本api。
包下有,
java.io、lang、math、net、nio、security、text、time、util
javax.crypto、net、security
2. java.compiler:定义语言模型、注释处理和Java编译器api。
包下有,Javax.annotation、lang、tools
3. java.datatransfer :定义用于在应用程序之间和应用程序内部传输数据的API。
包下有,java.awt
4. java.desktop:定义AWT和Swing用户界面工具包,以及用于可访问性、音频、图像处理、打印和javabean的api。
包下有,
java.applet、awt、beans
javax.accessibility、imageio、print、sound、swing
5. java.instrument:定义允许代理检测运行在JVM上的程序的服务。
包下有,java.lang.instrument
6. java.logging:定义Java日志API。
包下有,java.util.logging
7. java.management:定义Java管理扩展(JMX) API。
包下有,
Java.lang
javax.management
8. java.management.rmi:为Java管理扩展(JMX)远程API定义RMI连接。
包下有,javax.management.remote.rmi
9. java.naming:定义Java命名和目录接口(JNDI) API。
包下有,javax.naming
10. java.net.http:定义HTTP客户端和WebSocket api。
包下有,java.net.http
11. java.prefs:定义首选项API。
包下有,java.util.prefs
12. java.rmi:定义远程方法调用(RMI) API。
包下有,java.rmi
13. java.scripting:定义脚本API。
包下有,javax.script
14. java.se:定义Java SE平台的API。
包下有,java.compiler、datatransfer、desktop、instrument、logging、management、naming、net、prefs、rmi、scripting、security、sql、transaction、xml
15. java.security.jgss:定义IETF通用安全服务API (GSS-API)的Java绑定。
包下有,
javax.security
org.ietf
16. java.security.sasl:定义对IETF简单身份验证和安全层(SASL)的Java支持。
包下有,java.security.sasl
17. java.smartcardio:定义Java智能卡I/O API。
包下有,javax.smartcardio
18. java.sql:定义JDBC API。
包下有,
java.sql
javax.sql
19. java.sql.rowset:定义JDBC RowSet API。
包下有,javax.sql
20. java.transaction.xa:在JDBC中定义支持分布式事务的API。
包下有,javax.transaction.xa
21. java.xml:定义用于XML处理的Java API (JAXP)、用于XML的流API (StAX)、用于XML的简单API (SAX)和W3C文档对象模型(DOM) API。
包下有,
javax.xml
org.w3c、xml
22. java.xml.crypto:为XML加密定义API。
包下有,javax.xml
23. jdk.accessibility:定义辅助技术的实现者使用的JDK实用程序类。
包下有,com.sun.java.accessibility.util
24. jdk.attach:定义附加API。
包下有,com.sun.tools
25. jdk.charsets:提供java中没有的字符集。基(主要是双字节和IBM字符集)。
没有包
26. jdk.compiler:定义系统Java编译器的实现及其命令行对等物javac。
包下有,com.sun.source、tools
27. jdk.crypto.cryptoki:提供SunPKCS11安全提供程序的实现。
没有包
28. jdk.crypto.ec:提供SunEC安全提供程序的实现。
没有包
29. jdk.dynalink:定义用于对象上高级操作的动态链接的API。
包下有,jdk.dynalink
30. jdk.editpad:提供jdk.jshell使用的编辑垫服务的实现。
没有包
31. jdk.hotspot.agent:定义HotSpot可服务性代理的实现。
没有包
32. jdk.httpserver:定义特定于jdk的HTTP服务器API。
包下有,com.sun.net.httpserver
33. jdk.incubator.foreign:定义实验性的外部内存访问API。
包下有,jdk.incubator.foreign
34. jdk.incubator.jpackage:定义Java打包工具jpackage。
没有包
35. jdk.jartool:定义用于操作Java归档(JAR)文件的工具,包括JAR和jarsigner工具。
包下有,
com.sun.jarsigner
jdk.security.jarsigner
36. jdk.javadoc:定义系统文档工具和它的命令行对等物javadoc的实现。
包下有,jdk.javadoc.doclet
37. jdk.jcmd:定义用于诊断和排除故障的工具,如jcmd、jps和jstat工具。
没有包
38. jdk.jconsole:定义用于监视和管理运行中的应用程序的JMX图形化工具jconsole。
包下有,com.sun.tools.jconsole
39. jdk.jdeps:定义用于分析Java库和程序中的依赖关系的工具,包括jdeps、javap和jdeprscan工具。
没有包
40. jdk.jdi:定义Java调试接口。
包下有,com.sun.jdi
41. jdk.jdwp.agent:提供Java调试连线协议(JDWP)代理的实现。
没有包
42. jdk.jfr:为JDK飞行记录器定义API。
包下有,jdk.jfr
43. jdk.jlink:定义用于创建运行时映像的jlink工具、用于创建和操作jmod文件的jmod工具,以及用于检查特定于JDK实现的容器文件以获取类和资源的jimage工具。
没有包
44. jdk.jshell:提供用于评估Java代码片段的jshell工具,并定义用于建模和执行片段的特定于jdk的API。
包下有,jdk.jshell
45. jdk.jsobject:为JavaScript对象定义API。
包下有,netscape.javascript
46. jdk.jstatd:定义用于启动守护进程的jstatd工具,以便jstat工具远程监控JVM统计信息。
没有包
47. jdk.localedata:为美国地区以外的地区提供地区数据。
没有包
48. jdk.management:为JVM定义特定于jdk的管理接口。
包下有,com.sun.management
49. jdk.management.agent:定义JMX管理代理。
没有包
50. jdk.management.jfr:定义JDK飞行记录器的管理接口。
包下有,jdk.management.jfr
51. jdk.naming.dns:提供DNS Java命名提供程序的实现。
没有包
52. jdk.naming.rmi:提供RMI Java命名提供程序的实现。
没有包
53. jdk.net:定义特定于jdk的网络API。
包下有,jdk.net、nio
54. jdk.nio.mapmode:定义jdk特定的文件映射模式。
包下有,jdk.nio.mapmode
55. jdk.rmic:定义rmic编译器,用于使用远程对象的Java远程方法协议(JRMP)生成存根和骨架。
没有包
56. jdk.scripting.nashorn:为ECMAScript 5.1编写的程序提供了Nashorn脚本引擎和运行时环境的实现。
包下有,jdk.nashorn.api
57. jdk.sctp:为SCTP定义特定于jdk的API。
包下有,com.sun.nio.sctp
58. jdk.security.auth:提供javax.security.auth的实现。*接口和各种身份验证模块。
包下有,com.sun.security.auth
59. jdk.security.jgss:定义GSS-API的JDK扩展和SASLGSSAPI机制的实现。
包下有,com.sun.security.jgss
60. jdk.xml.dom:定义不属于Java SE API的W3C文档对象模型(DOM) API的子集。
包下有,org.w3c.dom
61. jdk.zipfs:提供Zip文件系统提供程序的实现。
没有包