软件介绍
JDK1.8也被称之为Java8这是一款应用于Java编程语言的必备运行环境,软件包含开放所必备的所有基础库以及对编辑运行的支持环境,而1.8是目前相对比较稳定的版本,不建议下载最新的jdk版本,因为最新的jdk不稳定,有需要的朋友,赶紧来试试看吧。
JDK1.8最新版在安装完毕后也是需要配置环境变量的,用户们可以在下载完忘页面下面翻找,会有相关教程帮助你配置环境内容,快来看看吧。
注意事项
1.8后的jdk会自动添加环境变量,所以我们无需配置环境变量
可以看到path变量已经自动配置了值
jdk1.8版本安装时会自动配置一个环境变量并置顶
验证是否配置成功
JDK 1.8包含组件
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
软件特色
JDK(Java Development Kit)是Java语言软件开发工具包,是Java开发的核心。
JDK包含了JRE(Java Runtime Environment,Java运行环境),而JRE又包含了JVM(Java Virtual Machine,Java虚拟机)和Java核心类库。JDK不仅是Java程序运行的基础,也是各种IDE(集成开发环境)开发环境的基础,它提供了编译和运行Java程序的环境。
JDK包含了Java编译器(用于将Java源代码转换为可执行的Java字节码)、Java运行时环境(包括Java虚拟机JVM和一组标准类库,用于执行特定任务)、Java类库(提供了丰富的API和工具,如Swing、AWT、IO等,帮助开发者快速创建应用程序)、以及各种开发工具(如javac编译器、javadoc文档生成器、jdb调试器等)。
由于Java字节码在不同平台上都是可移植的,使用JDK开发的Java应用程序可以在任何支持Java虚拟机的操作系统上运行,这使得JDK在跨平台开发中广泛应用。
JDK环境变量怎么配置
1.计算机右键属性,高级系统设置,高级,环境变量
2.选择系统变量下的,新建
3.新建,添加变量名 JAVA_HOME ,变量值为之前自己jdk的安装路径C:\Program Files\Java\jdk1.8.0_77随后点击确定
4.继续新建,添加变量名 CLASSPATH ,变量值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面的有个点“.”不要漏掉)
5.找到系统变量里变量为Path的行
6.选中,并点击编辑,追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 到变量值最后。注意前面的;和后面的;不要忘记带了,一定要写上
7.确定保存,配置完成,设置完成,win+R,输入cmd,打开命令行输入 java -version,确定安装是否正确。
JDK 1.8新特性
1、接口改善
现在接口里已经完全可以定义静态方法了. 举一个比较普遍的例子就是在java类库中, 对于一些接口如Foo, 都会有一个有静态方法的工具类Foos 来生成或者配合Foo对象实例来使用. 既然静态方法可以存在于接口当中, 那么大多数情况下 Foos工具类完全可以使用接口中的公共方法来代理 (或者将Foos置成package-private).
2、函数式接口
Java 8 引入的一个核心概念是函数式接口。如果一个接口定义个唯一一个抽象方法,那么这个接口就成为函数式接口。比如,java.lang.Runnable就是一个函数式接口,因为它只顶一个一个抽象方法。
3、Lambdas
一个函数式接口非常有价值的属性就是他们能够用lambdas来实例化。
4、捕获和非捕获的Lambda表达式
当Lambda表达式访问一个定义在Lambda表达式体外的非静态变量或者对象时,这个Lambda表达式称为“捕获的”。
5、lambdas不做的事
你应该记住,有一些lambdas不提供的特性。为了Java 8它们被考虑到了,但是没有被包括进去,由于简化以及时间限制的原因。
Non-final* 变量捕获 - 如果一个变量被赋予新的数值,它将不能被用于lambda之中。"final"关键字不是必需的,但变量必须是“有效final”的(前面讨论过)。
6、java.util.function
作为Comparator 和Runnable早期的证明,在JDK中已经定义的接口恰巧作为函数接口而与lambdas表达式兼容。同样方式可以在你自己的代码中定义任何函数接口或第三方库。
7、泛型接口改进
这是一个以前不能做到的,对编译器判定泛型能力的努力改进。在以前版本的Java中有许多情形编译器不能给某个方法计算出泛型,当方法处于嵌套的或串联方法调用这样的上下文的时候,即使有时候对程序员来说它看起来“很明显”。那些情况需要程序员明确的指定一个“类型见证”(type witness)。它是一种通用的特性,但吃惊的是很少有Java程序员知道(我这么说是基于私下的交流并且阅读了一些StackOverflow的问题)。
8、java.time
在Java8中新的 date/timeAPI存在于 java.time包中。如果你熟悉Joda Time,它将很容易掌握。事实上,我认为如此好的设计,以至于从未听说过 Joda Time的人也能很容易的掌握。
几乎在API中的任何东西都是永恒的,包括值类型和格式化 。对于Date域或者处理或处理本地线程日期格式化不必太过担心。
9、集合API附件
实际上接口能够定义默认方法允许了JDK作者加入大量的附件到集合API接口中。默认实现在核心接口里提供,而其他更有效或更好的重载实现被加入到可适用的具体类中。