/中文/
/中文/
/中文/
/英文/
/中文/
/中文/
/中文/
/中文/
/中文/
/英文/
软件Tags: jdkJava
jdk11是java程序员常用的工具,现在发行了11版本了,更新了不少细节的地方这些都需要自己在使用中去发现,而且还有更多的不同jdk版本提供下载,可以按照自己的需求进行选择,而且整个软件非常好用,喜欢就来绿色资源网下载吧!
jdk | ||
jdk12 | jdk 1.9 | JDK v8.0 |
jdk6.0 | java jdk1.6 32位 | oracle jdk1.6驱动 |
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)。为了支持这种原型设计,这项工作将与其他关于常量表达式的基本语言支持的工作相协
描述
就像invokedynamic调用站点的链接涉及从JVM到基于Java的链接逻辑的上行调用一样,我们可以将相同的技巧应用于常量池条目的解析。甲CONSTANT_Dynamic 恒定池条目编码以执行分辨率自举方法(A MethodHandle),所述常数(的类型Class),以及任何静态引导参数(常数的任意序列,在动态常数之间的常量池限制周期。)
我们添加了一个新的常量池形式,CONSTANT_Dynamic(新的常量标记17),它的标记字节后面有两个组件:bootstrap方法的索引,格式与a中的索引相同 CONSTANT_InvokeDynamic,a CONSTANT_NameAndType,编码预期类型。
行为上,CONSTANT_Dynamic通过对以下参数执行其引导方法来解析常量:1。本地Lookup 对象,2。String表示常量的名称组件,3。Class表示期望的常量类型,以及4.任何剩余的引导参数。与此同时invokedynamic,多个线程可以竞争解决,但将选择一个独特的赢家,并丢弃任何其他竞争的答案。而不是CallSite像invokedynamic指令所要求的那样返回一个对象,bootstrap方法将返回一个值,该值将立即转换为所需的类型。
与此同时invokedynamic,除了类型之外,name组件是一个附加通道,用于将表达式信息传递给bootstrap方法。预期正如invokedynamic指令查找名称组件的用途(例如,方法名称或某些特殊描述符)一样,动态常量也将找到名称的用途(例如,enum常量的名称或符号常量的拼写) )。把CONSTANT_NameAndType在两地使得一个更经常的设计。在效果上,CONSTANT_Methodref和 CONSTANT_Fieldref常数用来指的类名称的成员,而类似的CONSTANT_InvokeDynamic和 CONSTANT_Dynamic常数用于指命名实体与用户编程的引导程序。
具有两个invokedynamic和 的常量的类型组件CONSTANT_Dynamic确定调用站点的有效类型或常量(分别)。引导方法不会贡献或约束此类型信息,因此引导方法可能(通常是)弱类型,而字节码本身始终是强类型的。
为了放宽对引导说明符的长度限制,将调整定义引导方法调用的语言(具有完全向后兼容性),以允许变量arity(ACC_VARARGS)引导方法将所有剩余的静态参数吸收到其尾随参数中,即使存在是2 ^ 16-1。(类文件格式已经允许这样,但是没有办法读取过长的引导参数列表。)为了保持一致性,如果目标方法具有可变的arity ,那么 invokeWithArguments方法MethodHandle也将以这种方式扩展。这样的引导方法调用可以在弱类型的方法来指定invokeWithArguments和invoke,就像今天它在来指定invoke一个人。
控制引导链接错误已被证明是来自用户的错误和RFE的重复来源,并且invokedynamic随着引导方法变得更加复杂(因为它们必须具有动态常量),趋势可能会加速。如果我们能找到一种方法来提供对引导方法异常的更全面控制,并且可以简单地完成,我们将考虑将其作为此JEP的一部分提供。否则,它将列入未来的增强功能列表。
动机
Java虚拟机规范的4.4节描述了常量池的格式。添加新的常量池形式(例如Java 7 的支持MethodHandle和MethodType引入)是一项重大的工作,并在生态系统中发出涟漪,因为它会影响解析或解释类文件的所有代码。这为创建新的恒定池形式提供了很高的标准。
使用invokedynamic,将常量池中存储复杂数据的值相乘,因为invokedynamic引导程序的静态参数列表 是一系列常量。invokedynamic协议的设计者 (例如LambdaMetafactoryJava 8中添加的)通常很难满足根据现有常量集编码行为的需要 - 这反过来又需要在引导程序本身中具有额外的容易出错的验证和提取逻辑。更丰富,更灵活,更高类型的常量消除了invokedynamic协议开发的摩擦,这反过来又促进了复杂逻辑从运行时到链接时的移动,提高了程序性能并简化了编译器逻辑。
支持批量比例常量,如数组或资源表
进一步调整bootstrap方法握手
可以与动态常数协同的自举方法的其他用途
将动态常量附加到ConstantValue静态字段的属性
展示Java语言中常量的延迟初始化
将新常量与特殊Java语言规则集成在一起用于常量表达式
src/share/classes/java/lang:
包含实现Unicode字符数据库的Character和的 源。String
src/share/classes/java/text:
包含源,用于提供类语言环境敏感的服务,例如DateFormat,NumberFormat, Collator,Normalizer,Bidi, BreakIterator,等。
src/share/classes/java/util:
包含源语言环境的工具类如 Locale,Currency,Calendar, TimeZone,ResourceBundle,等。
src/share/classes/sun/[text|util]/resources:
包含上述区域设置敏感类所需的区域设置数据。
src/share/classes/java/awt/im:
包含 Input Method Framework的API类的源。
src/share/classes/sun/awt/im:
包含 输入法框架的实现类的源。
src/solaris/classes/sun/awt/fontconfigs, src/windows/classes/sun/awt/windows:
包含 字体配置文件的源