1,概念:
JDK是用于支持Java程序开放的最小环境。
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
平时较常用的是Sun免费提供的JDK,当然还有其他的开发环境,比如ibm。
Oracle JDK不允许免费商用,可以使用Open JDK代替。
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,分别放入不同的文件夹。
1)windows环境变量配置
环境配置:
【我的电脑,右击,属性】,【高级系统设置】,【系统属性-高级】,【环境变量】
1>JAVA_HOME
值为jdk安装目录
2>PATH
变量值为
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
3>CLASSPATH
变量值为
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
检测安装是否成功:
【WIN+R】,【cmd】,输入【java -version】,【javac】【javah】,【回车】,若出现很多英文,代表配置
问题:【java -version】有结果,【javac】【javah】不可以。
解决方案一:在用户变量和系统变量都配置PATH(注意区分大小写)。
解决方案二:重启cmd重新测试(一定要重启)。
4>多个版本jdk安装:
- 配置jdk的bin目录位置:添加系统变量:
JAVA_HOME_8
、JAVA_HOME_11
。
2. 配置
JAVA_HOME
值为:%JAVA_HOME_8%
,要切换版本再改成11. - 其它环境变量配置同上文。
5>验证
cmd执行:
javac -version
2)mac配置
①下载jdk并安装
②配置环境
终端,在.bash_profile中写入:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
完成后终端输入:
source .bash_profile
输入 echo $JAVA_HOME
显示刚才配置的路径
3)openjdk11安装
下载openjdk11,并解压到指定文件夹。
输入cmd并执行命令:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
生成jre。
配置环境变量即可。
5,JRE(Java Runtime Environment)
1)概念:
JRE是支持Java程序运行的标准环境。
2)组成:
把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE。