【java学习】JDK(Java Development Kit)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunshineTan/article/details/82884786

1,概念:

JDK是用于支持Java程序开放的最小环境。
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
平时较常用的是Sun免费提供的JDK,当然还有其他的开发环境,比如ibm。

1)版本

①SE(JavaSE,standard edition,标准版)

是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

②EE(JavaEE,enterprise edition,企业版)

使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。从2018年2月26日开始,J2EE改名为Jakarta EE [1-2] 。

③ME(J2ME,micro edition)

主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

2)组成

Java程序设计语言、Java虚拟机、Java API类库等三部分组成。

2,包含组件

1)Javac.exe

是收录于JDK中的Java语言编译器。可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于JVM的字节码。

2)java

运行工具,运行.class的字节码

3)jar

打包工具,将相关的类文件打包成一个文件

4)javadoc

①介绍

文档生成器,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javadoc只能为public、protected成员进行文档注释。private和daulft的注释会被忽略掉。通过-private标记,可以把private成员的注释也包括在内。

②使用方式

i>嵌入HTML

ii>使用文档标签

独立文档标签以“@”开头的命令,且要置于注释行的最前面。
行内文档标签可以出现在javadoc注释的任何地方,但要在花括号内,同样以@开头。

③常用标记

标签 说明
@author 作者 作者标识
@version 版本号 版本号
@param 参数名 描述 方法的入参名及描述信息,如入参有特别要求,可在此注释。
@return 描述 对函数返回值的注释
@deprecated 过期文本 标识随着程序版本的提升,当前API已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API。
@throws异常类名 构造函数或方法所会抛出的异常。
@see 引用 查看相关内容,如类、方法、变量等。
@since 描述文本 API在什么程序的什么版本后开发支持。
{@link包.类#成员 标签} 链接到某个特定的成员对应的文档中。
{@value} 当对常量进行注释时,如果想将其值包含在文档中,则通过该标签来引用常量的值。

5)jdb debugger(jdb.exe)

调试工具

6)jps

显示当前java程序运行的进程状态

7)javah

从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。

8)javaprof.exe

剖析工具

3,Java类库(Java API)

Java官方为开发者提高的很多功能强大的类,分别放在各个包中。
Java类库具有跨平台的特点,保证了软件的可移植性。

①java.*开头:

java的核心包。

a>java.lang

java编程的基础类。如:Object,Math,String,StringBuffer,System,Thread等。
提供核心功能
–java.lang.ref 使能与垃圾回收交互
–java.lang.reflect 运行时分析代码

b>java.util

java的utility工具包,包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各自实用工具类(字符串标记生成器、随机数生成器)。

–java.util.jar 生成和打开JAR文件
–java.util.zip 读写压缩或解压缩文件

c>java.io

通过文件系统、数据流和序列化提供系统的输入与输出。

d>java.net

实现网络应用与开发的类。

e>java.sql

使用Java语言访问并处理存储再数据源(通常是一个关系型数据库)中的数据API.

f>java.awt(Abstract Window Toolkit,抽象窗口工具包)

GUI设计与开发的类:创建界面和绘制图形图像的所有类。
AWT是JAVA的language核心语言包;如String、Math、Integer、System、Thread,提供常用的功能。特殊之处是不需要导入,是作为默认导入的包。

早期编写图形界面应用程序的包。

AWT和Swing的实现原理不同。
AWT实现原理:
图形函数与操作系统提供的图形函数一一对应。也就是说,当我们利用 AWT构件图形用户界面的时候,实际上是在利用操作系统的图形库。
不同的操作系统其图形库的功能可能不一样。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT不得不通过牺牲功能来实现平台无关性。因此,AWT 的图形功能是各操作系统图形功能的“交集”。
因为AWT是依靠本地方法来实现功能的,所以AWT控件称为“重量级控件”。
–java.awt.color
支持颜色空间和外形
–java.awt.datatransfer
与系统的剪贴板交换数据 java.awt.dnd 支持拖拉操作
–java.awt.event
处理事件
–java.awt.font
描述多种字体类型
–java.awt.geom 允许你使用几何形状
–java.awt.im 允许编辑组件中日文,中文,韩文的的输入
–java.awt.im.spi 支持二选一的输入设备 (在java 2, v1.3中加入)
–java.awt.image 处理图像
–java.awt.image.renderable 支持独立显示图像
–java.awt.print 支持一般的打印功能

g>java.swing

GUI设计与开发的类:是一组轻量级的组件。
是为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展,在各平台通用。
例如:并不是所有的操作系统都提供了对树形控件的支持, Swing则利用了AWT中所提供的基本作图方法模拟了一个树形控件。
因为Swing不使用本地方法,故Swing控件称为“轻量级控件”。

AWT和Swing之间的区别:
i>AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。
ii>AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。

h>java.text

与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
格式化,查询和处理文本 。

i>java.security

处理证书,密钥,摘要,签名和其他安全功能
–java.security.acl 管理访问控制列表
–java.security.cert 分析和管理证书
–java.security.interfaces 为DSA(数字签名算法)定义接口
–java.security.spec 设定密钥和算法参数

j>java.math

处理大整数和十进制数

k>java.rmi

支持远程方法调用
–java.rmi.activation 激活永久对象
–java.rmi.dgc 管理分布垃圾回收
–java.rmi.registry 映射名称到远程对象引用
–java.rmi.server 支持远程方法调用

l>java.beans

允许你建立软件组件

m>java.beans.beancontext

为bean 提供可执行环境

n>java.applet

是创建APPLET的必须包。支持小应用程序的结构

②javax.*开头:

扩展包。x是extension的意思。是对java.*的优化和扩展。

③org.*开头:

是各个机构或组织发布的包。这些组织有影响力,且代码质量高。

④com.*开头:

由盈利性公司发布,有版权问题。
注意:为防止命名重复,惯例:以自己的域名倒写形式作为开头来为自己开发的包命名,如百度:com.baidu.*开头。

4,安装配置

jdk安装需要两次:第一次是JDK,第二次是jre,分别放入不同的文件夹。

环境配置:
【系统与安全】,【系统】,【高级系统设置】,【系统属性-高级】,【环境变量】

①JAVA_HOME

值为jdk安装目录
JAVA_HOME

②PATH

变量值为
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

③CLASSPATH

变量值为
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

检测安装是否成功:
【WIN+R】,【cmd】,输入【java -version】,【javac】【javah】,【回车】,若出现很多英文,代表配置

问题:【java -version】有结果,【javac】【javah】不可以。
解决:在用户变量和系统变量都配置PATH(注意区分大小写)。

5,JRE(Java Runtime Environment)

1)概念:

JRE是支持Java程序运行的标准环境。

2)组成:

把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE。

猜你喜欢

转载自blog.csdn.net/SunshineTan/article/details/82884786