jdk11是java程序员常用的工具,专为开发人员推出的软件开发工具,包含了JAVA运行库和开发组件。在这款11版本的JDK中更新了不少细节的地方这些都需要自己在使用中去发现,jdk11最新版可以定位脚本引擎并且在运行时调用它们以运行脚本。而且还有更多的不同jdk版本提供下载,可以按照自己的需求进行选择,而且整个软件非常好用,有用到这款JDPP11!
jdk安装与环境变量配置
1.下载好安装包之后,点击开始安装
2.一般直接选择默认路径,当然也能改,但是路径别出现中文就行了
3.安装完成,现在开始配置环境变量
4.我这里演示的是win7系统,点击计算机选择属性
5.点击高级系统设置,然后点击环境变量
6.选择系统变量的Path然后点击编辑
7.在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有先输入;号再输入上面的代码)
8.选择CLASSPATH 变量,点击编辑,输入 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
9.如果没有java_home新建一个,小编这里上次装了一个jdk12所以有
10.新建 JAVA_HOME 变量 。变量值填写你安装jdk刚刚选择的目录(本人是 C:\Program Files\Java\jdk-11.0.4)
11.按一下win+r(win就是ctrl和alt中间那个按键),然后输入cmd
12.输入java -version ,如图就是安装配置成功了
软件亮点
我们寻求降低创建新形式的可实现类文件常量的成本和中断,这反过来又为语言设计者和编译器实现者提供了更广泛的表达性和性能选择。我们通过创建一个新的常量池形式来实现这一点,该形式可以使用用户提供的行为进行参数化,采用带有静态参数的引导方法。我们还将调整JVM和引导程序方法之间的链接时握手,以便使所使用的引导程序API invokedynamic适用于动态常量。根据invokedynamic我们的经验,我们将调整两者invokedynamic和动态常量的自举握手,放松对参数列表处理到引导方法的某些限制。这项工作需要JDK库的一些原型设计支持几种常量类型的代表性样本,特别是变量句柄(JEP 193)。为了支持这种原型设计,这项工作将与其他关于常量表达式的基本语言支持的工作相协
jdk官方版特色
叙述
如同invokedynamic启用站点连接涉及到从JVM到根据Java的连接逻辑上涨启用一样,大家能将同样技巧用于常量池条目地分析。甲CONSTANT_Dynamic稳定池内容编号以实行屏幕分辨率自举电路方法(AMethodHandle),上述常量(的类型Class),及其一切静态数据引导主要参数(常量的随意编码序列,在动态性常量间的常量池限定周期时间。)
大家加上了一个新的常量池方式,CONSTANT_Dynamic(一个新的常量标识17),它标识字节数后边有两种部件:bootstrap方法的引索,文件格式与a里的引索同样CONSTANT_InvokeDynamic,aCONSTANT_NameAndType,编号预估类型。
行为上,CONSTANT_Dynamic根据对下列主要参数实行其引导方法来分析常量:1。当地Lookup目标,2。String表示常量的名字部件,3。Class表示期待的常量类型,及其4.一切剩下的引导主要参数。此外invokedynamic,好几个进程能够市场竞争处理,但将选择一个与众不同的大赢家,并丢掉其他任何市场竞争回答。而非CallSite像invokedynamic命令所规定的那般回到一个对象,bootstrap方法将回到一个值,该值将立即转换成所需要的类型。
此外invokedynamic,除开类型以外,name部件是一个额外安全通道,用以将关系式信息的传递给bootstrap方法。预估如同invokedynamic命令搜索名字元件的主要用途(比如,方法名字或一些独特ioctl)一样,动态性常量都将寻找名字的用处(比如,enum常量的名字或符号常量的拼读))。把CONSTANT_NameAndType在两个地方促使一个更常常设计。在效果上,CONSTANT_Methodref和CONSTANT_Fieldref常量用于指的是类名字中的一员,而相似的CONSTANT_InvokeDynamic和CONSTANT_Dynamic常量用以指命名实体和用户程序编写的引导程序流程。
具备2个invokedynamic和的常量的类型部件CONSTANT_Dynamic明确启用站点合理类型或常量(各自)。引导方法不容易奉献或管束此类型信息内容,因而引导方法很有可能(一般是)弱类型,而字节码自身始终都是强类型的。
为了能放开对引导说明符长度限定,将调节界定引导方法启用的言语(具备彻底向后兼容性),以容许自变量arity(ACC_VARARGS)引导方法把所有剩下的静态数据主要参数吸收其跟随主要参数中,即便存有是2^16-1。(类格式文件早已容许那样,可是没办法载入较长的引导主要参数列表。)为保持一致性,假如总体目标方法具备可变性的arity,那样invokeWithArguments方法MethodHandle都将以这样的方式拓展。这种引导方法启用还可以在弱类型的方法来特定invokeWithArguments和invoke,如同今日它来特定invoke一个人。
操纵引导连接不正确已经被证明来源于客户的不正确和RFE的相同由来,而且invokedynamic伴随着引导方法变得越来越繁杂(因为它应具有动态性常量),发展趋势可能加快。假如我们可以找到一种方法来保证对引导方法异常更有效控制,并可以简单的进行,我们将要考虑到把它作为此JEP的一部分给予。不然,这将纳入未来增强功能列表。
动因
Javavm虚拟机规范化的4.4节叙述了常量池的文件格式。加上一个新的常量池方式(比如Java7的大力支持MethodHandle和MethodType引进)是一项重大工作中,并在生态系统中传出漪涟,因为他会影响到分析或表述类文件信息全部编码。从而为建立一个新的稳定池方式带来了非常高的规范。
应用invokedynamic,将常量池中储存繁杂数据库的值乘积,由于invokedynamic引导的程序静态数据主要参数列表是一系列常量。invokedynamic合同的设计师(比如LambdaMetafactoryJava8中加入的)一般难以达到依据目前常量集编号的行为必须-这相反还需要在引导程序流程自身方面具有额外非常容易出错认证和获取逻辑性。更加丰富,更加灵活,更高一些类型的常量规避了invokedynamic协议书研发的磨擦,这相反又推动了繁杂逻辑性从运行中到连接时移动,提升了程序性能并优化了编译程序逻辑性。