Java - JDK 内部包含详解

JDK

Java开发工具包(Java Development Kit,JDK)。即Java语言编写的程序所需的开发工具包。JDK 包含了 JRE,同时还包括 Java源码的编译器 javac、监控工具 jconsole、分析工具 jvisualvm等。

Tools & Tool APIs(工具和工具API)

java

java.exe 执行应用日志再在控制台显示输出与错误信息。
javaw.exe 主要用于启动基于GUI的应用程序。启动eclipse使用的,也就是启动java应用存在的。
javaws.exe 是用来启动通过web来描述的项目,我们需要一个jnlp文件,来描述 javaws.exe 需要运行的程序。

javac

Java编程语言编译器,javac读取用Java编程语言编写的源文件,并将它们编译成字节码类文件。编译器还可以选择使用可插入注释处理API处理源文件和类文件中的注释。编译器是一个命令行工具,但也可以使用Java编译器API调用。编译器接受由Java语言规范(JLS)定义的源代码,并生成由Java虚拟机规范(JVM)定义的类文件。

javadoc

Javadoc是一个工具,它解析一组源文件中的声明和文档注释,并生成一组描述类、接口、构造函数、方法和字段的HTML页面。

jar

JAR(Java Archive)是一种独立于平台的文件格式,它将许多文件聚合为一个文件。多个javaapplet及其必需的组件(类文件、图像和声音)可以捆绑在一个JAR文件中,然后在一个HTTP事务中下载到浏览器,大大提高了下载速度。JAR格式还支持压缩,这减少了文件大小,进一步提高了下载时间。此外,applet作者可以对JAR文件中的各个条目进行数字签名,以验证它们的来源。它是完全可扩展的。

javap

Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码等。

javah

javah 生成实现本地方法所需的 C 头文件和源文件。C 程序用生成的头文件和源文件在本地源代码中引用某一对象的实例变量。.h 文件含有一个 struct 定义,该定义的布局与相应类的布局平行。该 struct 中的域对应于类中的实例变量。

jdeps

Java类依赖分析器(java dependencies)。

jhat

是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。

Scripting(脚本)

可用于运行与Java平台交互的脚本。

Security(安全)

安全工具帮助您在系统上设置安全策略,并创建可以在远程站点设置的安全策略范围内工作的应用程序。

Monitoring

您可以使用以下工具监视JVM性能统计信息。本节中描述的工具是不受支持的和实验性的,应该牢记这一点。它们可能在将来的JDK版本中不可用。

JConsole

一种兼容JMX的图形工具,用于监视Java虚拟机。它可以监视本地和远程jvm。它还可以监视和管理应用程序。

VisualVM

Java VisualVM是一个工具,它提供了一个可视化界面,用于查看Java应用程序在Java虚拟机(JVM)上运行时的详细信息,以及对这些应用程序进行故障诊断和分析。Java开发工具包(JDK)提供了各种可选工具,包括Java VisualVM,用于检索有关运行JVM软件实例的不同类型的数据。例如,大多数以前独立的工具JConsole、jstat、jinfo、jstack和jmap都是Java VisualVM的一部分。Java VisualVM联合这些工具从JVM软件获取数据,然后以图形方式重新组织和呈现信息,使您能够统一查看关于多个Java应用程序的不同数据,无论它们是在本地运行还是在远程计算机上运行。此外,开发人员可以通过创建插件并将其发布到工具的内置更新中心来扩展Java VisualVM以添加新功能。

JMC

Java高级管理控制台(Java Advanced Management Console,JMC)是一个商业特性,它提供了管理Java版本兼容性和桌面安全更新的工具。

JFR

java飞行记录器(java flight recorder,JFR)。运行java飞行记录器JFR(java flight recorder)

JPDA

Java平台调试器体系结构(Java Platform Debugger Architecture,JPDA)由三个接口组成,设计用于桌面系统开发环境中的调试器。Java虚拟机工具接口(JVM TI)定义了VM必须为调试提供的服务。Java Debug-Wire协议(JDWP)定义了被调试进程和实现javadebug接口(JDI)的调试器前端之间传输的信息和请求的格式。Java调试接口在用户代码级别定义信息和请求。

JVM TI(JVM工具接口)

JVM工具接口(Java Virtual Machine Tool Interface,JVM TI)是供工具使用的本机编程接口。它提供了一种检查状态和控制Java虚拟机(JVM)中运行的应用程序执行的方法。JVM TI支持需要访问JVM状态的各种工具,包括但不限于:分析、调试、监视、线程分析和覆盖率分析工具。

IDL

接口定义语言(Interface Definition Language,IDL)。

RMI

远程方法调用(Remote Method Invocation,RMI)。Java RMI 服务器框架

Java DB(Java数据库)

Deployment(部署)

用于在web上部署java应用程序和小程序的实用程序。

Internationalization(国际化)

工具有助于创建可本地化的应用程序。

Web Services(Web服务)

Troubleshooting(故障排除)

可用于特定的故障排除任务。它们可能在将来的JDK版本中不可用。

JRE

Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。

JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

lang and util base Libraries - lang and util(lang和util库)

Math Java SE 8

java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。

Collections

集合框架提供了一个工具类,Collections,此类型中封装了很多对集合操作的方法,比如排序,查询,修改等。

想要使用排序功能,必须实现一个接口,Comparable或者Comparator接口。

Ref Objects

java.lang.ref提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。程序可以使用一个引用对象来维持对另外某一对象的引用,所采用的方式是使后者仍然可以被回收器回收。程序还可以安排在回收器确定某一给定对象的可到达性已经更改之后的某个时间得到通知。

Regular Expressions

java.util.regex是用于匹配字符序列与正则表达式指定模式的类程序。

Logging

java.util.logging 提供JavaTM 2平台核心日志工具的类和接口。Logging API的中心目标是支持在客户站点进行软件的维护和服务。

Management

java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。它同时允许从本地和远程对正在运行的 Java 虚拟机进行监视和管理。

Instrumentation

java.lang.instrument 提供允许Java编程语言代理监测运行在 JVM 上的程序的服务。

Concurrency Utilities

java.util.concurrent 是在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类,没有这些类,这些功能会很难实现或实现起来冗长乏味。下面简要描述主要的组件。另请参阅 locks 和 atomic 包。

Reflection

java.lang.reflect 提供类和接口,以获取关于类和对象的反射信息。在安全限制内,反射允许编程访问关于加载类的字段、方法和构造方法的信息,并允许使用反射字段、方法和构造方法对对象上的基本对等项进行操作。

Versioning

版本控制功能启用包级别的版本控制,以便应用程序和小程序可以在运行时识别特定Java运行时环境、虚拟机和类包的版本。

Preferences API

java.util.prefs 此包允许应用程序存储并检索用户和系统首选项和配置数据。此数据持久存储在依赖于实现的内部存储中。有两个独立的首选项节点树,一个用于用户首选项,一个用于系统首选项。

JAR

JAR(Java Archive)是一种独立于平台的文件格式,它将许多文件聚合为一个文件。java.util.jar是提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。清单存储与 JAR 文件内容有关的元信息,也用于签名 JAR 文件。

Zip

java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。还包括使用 DEFLATE 压缩算法(用于 ZIP 和 GZIP 文件格式)对数据进行压缩和解压缩的类。此外,还存在用于计算任意输入流的 CRC-32 和 Adler-32 校验和的实用工具类。

Other Base Libraries

Beans

bean(即Java bean)就是Java的类,或者说,就是Java语言的组件,充分体现了Java语言平台独立和面向对象编程的优势。JavaBeans是一代网络程序员的资源。它是Java语言的组件:bean的接口和通讯部分的标准,实现了bean的复用。

Security(安全)

java.security,Java中为安全框架提供类和接口JDK 安全 API 是 Java 编程语言的核心 API,位于 java.security 包(及其子包)中。该 API设计用于帮助开发人员在程序中同时使用低级和高级安全功能。

Serialization(序列化)

描述对象序列化系统和API的体系结构。Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

Extension Mechanism

可选包是应用程序开发人员可以用来扩展核心平台功能的类包(以及任何相关的本机代码)。扩展机制允许Java虚拟机(VM)使用可选扩展的类,这与VM在Java平台中使用类的方式基本相同。扩展机制还提供了一种方法,当所需的可选包尚未安装在JDK或JRE中时,可以从指定的url中检索这些包。

JMX

Java Management Extensions(JMX)API是用于管理和监视资源(如应用程序、设备、服务和Java虚拟机)的标准API。JMX技术最初是通过Java社区进程(JCP)作为Java规范请求(JSR)3、Java管理扩展和JSR 160、JMX远程API开发的。

javax.management 提供 Java Management Extensions 的核心类。 Java Management Extensions (JMXTM) API 是一个用于管理和监视的标准 API。典型用途包括: 查询并更改应用程序配置 累积有关应用程序行为的统计并使其可用 通知状态更改及错误状况。 JMX API 还可以作为解决方案的一部分来管理系统、网络等。 API 包括远程访问,因此,远程管理程序可以基于这些目的与正在运行的应用程序交互。

XML JAXP

XML(可扩展标记语言)是一种灵活的方法,用于创建通用信息格式,并在万维网、内部网和其他地方共享格式和数据。

Networking

java.net 并非所有系统都支持 IPv6 协议,而当 Java 网络连接堆栈尝试检测它并在可用时透明地使用它时,还可以利用系统属性禁用它。在 IPv6 不可用或被显式禁用的情况下,Inet6Address 对大多数网络连接操作都不再是有效参数。虽然可以保证在查找主机名时 java.net.InetAddress.getByName 之类的方法不返回 Inet6Address,但仍然可能通过传递字面值来创建此类对象。在此情况下,大多数方法在使用 Inet6Address 调用时都将抛出异常

Override Mechanism

认可的标准重写机制提供了一种方法,可以将实现认可的标准或独立技术的类和接口的更高版本合并到Java平台中。

JNI

JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植。 [1]  从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少要保证本地代码能工作在任何Java 虚拟机环境。

Date and Time - java8 -Date and Time

JDK 8中引入的日期时间api是一组对日期和时间的最重要方面进行建模的包。time包中的核心类使用ISO-8601中定义的日历系统(基于公历系统)作为默认日历。其他非ISO日历系统可以使用java.time.chrono包来表示,并且提供了一些预定义的年表,如回历和泰国佛教年表。

Input/Output

Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

Internationalization(国际化)

Java国际化(internationalization)案例学习

Integration Libraries(集成库)

IDL

Java IDL technology adds CORBA (Common Object Request Broker Architecture,公共对象请求代理架构) Java平台的功能,提供基于标准的互操作性和连接性。Java IDL使支持Web的分布式Java应用程序能够使用对象管理组定义的行业标准IDL(对象管理组接口定义语言)和IIOP(Internet ORB协议)透明地调用远程网络服务上的操作。运行时组件包括用于使用IIOP通信的分布式计算的Java ORB。

JDBC

Java数据库连接(Java Database Connectivity,JDBC)API提供来自Java编程语言的通用数据访问。使用JDBCAPI,您几乎可以访问任何数据源,从关系数据库到电子表格和平面文件。JDBC技术还提供了一个公共基础,在此基础上可以构建工具和备用接口。

JNDI

Java命名和目录接口(Java Naming and Directory Interface,JNDI)为用Java编程语言编写的应用程序提供命名和目录功能。它的设计独立于任何特定的命名或目录服务实现。因此,可以以一种通用的方式访问各种服务——新的、新兴的和已经部署的服务。

RMI

Java远程方法调用(Java Remote Method Invocation,JavaRMI)使程序员能够创建基于Java技术的分布式应用程序,其中远程Java对象的方法可以从其他Java虚拟机(可能在不同的主机上)调用。RMI使用对象序列化来封送和解封参数,不截断类型,支持真正的面向对象多态性。

RMI-IIOP

Internet上的Java远程方法调用ORB间协议技术(RMI-IIOP)是Java平台标准版(JavaSE)的一部分。RMI编程模型支持通过RMI API对CORBA服务器和应用程序进行编程。您可以选择完全在Java编程语言中使用Java远程方法协议(JRMP)作为传输,或者使用Internet InterORB协议(IIOP)与其他CORBA兼容的编程语言一起工作。

Scripting

许多脚本语言和动态类型语言的实现生成Java字节码,以便程序可以在Java平台上运行,就像实际的Java程序一样。以这种方式实现一种语言(或者作为脚本语言的Java解释器类)提供了Java平台的所有优点:脚本实现可以利用Java平台的二进制可移植性、安全性和高性能字节码执行。

User Interface Toolkits(用户界面工具包)- JavaFX

Swing

Swing实现了一组组件,用于构建图形用户界面(GUIs)和向Java应用程序添加丰富的图形功能和交互性。Swing组件完全用Java编程语言实现。可插入的外观允许您创建GUIs,这些GUIs可以跨平台看起来相同,也可以假定当前操作系统平台(如Microsoft Windows、Solaris)的外观™ 或者Linux)。

Java 2D

Java 2D API是一组用于高级2D图形和图像处理的类。它在一个单一的综合模型中包含线条艺术、文本和图像。API为图像合成和alpha通道图像提供了广泛的支持,一组类提供了精确的颜色空间定义和转换,以及一组丰富的面向显示的成像操作符。这些类是作为java.awt和java.awt.image包的附加内容提供的。

AWT

抽象窗口工具包(Abstract Window Toolkit,AWT)

Accessibility(可访问性)

Java Access Bridge是一种技术,它使某些Java应用程序和applet对Microsoft Windows系统上的辅助技术可见。

Drag and Drop

拖放允许在Java编程语言和本机应用程序之间、Java编程语言应用程序之间以及单个Java编程语言应用程序内进行数据传输。

对拖放的支持主要是在AWT包中实现的,但是Swing GUI类中内置了额外的支持。在许多情况下,可以通过调用Swing组件上的单个方法来启用拖放支持。有关更多信息,请参阅Swing教程中的“如何使用拖放和数据传输”一节

Input Methods

输入方法框架支持文本编辑组件和输入文本的输入方法之间的协作。输入法是一种软件组件,允许用户以键盘上简单键入以外的方式输入文本。它们通常用于在键盘上输入日文、中文或韩文(使用数千个不同的字符),而键盘上的键要少得多。但是,该框架还支持其他语言的输入方法,以及使用完全不同的输入机制,如手写或语音识别。

Image I/O

通过JSR-015开发的Java Image I/O API提供了一个可插入的体系结构,用于处理存储在文件中并通过网络访问的图像。它提供了比以前加载和保存图像的api更大的灵活性和功能。

API为添加特定于格式的插件提供了一个框架。Java映像I/O中包含了几种常见格式的插件,但第三方可以使用此API创建自己的插件来处理特殊格式。

Print Service

Java打印服务API允许在所有Java平台上进行打印,包括那些需要占用很小空间的平台,例如Java ME配置文件,但也支持Java.awt.Print.PrinterJob API。Java打印服务API包括一个可扩展的打印属性集,该属性集基于IETF的Internet打印协议(IPP)1.1中指定的标准属性。通过这些属性,客户机和服务器应用程序可以发现和选择具有属性指定功能的打印机。除了包含的StreamPrintService(允许应用程序将数据转换为不同格式)之外,第三方还可以通过服务提供商接口动态安装自己的打印服务。

Sound

Java平台包括一个强大的API,用于捕获、处理和回放音频和MIDI(乐器数字接口)数据。这个API由一个高效的声音引擎支持,该引擎保证了平台的高质量音频混合和MIDI合成能力。

Deployment(部署)

Java Web Start

Java Web Start是一种应用程序部署技术,它使您能够从Web浏览器单击一次就启动功能齐全的应用程序。现在,您可以下载并启动应用程序,例如完整的电子表格程序或Internet聊天客户端,而无需经历复杂的安装过程。

Applet / Java Plug-in

Java插件技术(以下简称“Java插件”)包含在Java运行时环境(JRE)中,使Java小程序能够在桌面上的web浏览器中运行。Java插件为web浏览器中的小程序提供了强大的功能,同时以向后兼容的方式提高了小程序的总体可靠性和功能。

JVM

Java虚拟机(Java Virtual Machine,简称JVM),JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnyaPapa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值