夏末浅笑_2014年夏末大Java新闻

夏末浅笑

正如即将到来的JavaOne那样 ,最近在Java社区中已经有很多重大新闻。 这篇文章简要地引用了其中的三个项目(Java SE 8更新,Java SE 9和Java EE 8),并对我发现是我在类路径/类加载器问题上见过的更清晰的文章之一进行了“奖励”引用。

Oracle Java 8 JVM中的字符串重复数据删除

在“ 字符串重复数据删除-Java 8 Update 20中的一项新功能”中Fabian Lange使用JDK 8 Update 20引入的JVM选项-XX:+UseStringDeduplicationG1垃圾收集器引入了字符串重复数据删除Java启动器工具页面已更新,其中提到了 JVM选项-XX:+UseStringDeduplication-XX:+PrintStringDeduplicationStatistics-XX:StringDeduplicationAgeThreshold 。 有关JDK 8 Update 20的更多详细信息,请参见发布的博客文章:Oracle Java Development Kit 8,Update 20 。 Lange帖子还引发了有关Java subreddit上的此和相关JVM选项的讨论

Java 9功能

自宣布OpenJDK JDK 9项目以来,Java 9一直是Java社区中讨论的热门话题。 期待已久的Java模块化从JDK 8启动的 Project Jigsaw )可能是Java 9预期的最大新功能。Paul Krill在《 为什么开发人员应该对Java 9感到兴奋的原因》中写道:“ Jigsaw并不是唯一的新功能。适用于Java9。对流行的JSON(JavaScript对象表示法)数据交换格式的支持以及流程API,代码缓存和锁定改进也是关键特性。 目前在该OpenJDK JDK 9页面上建议的六个JEP是102( 进程API更新 ),143( 改进竞争锁 ),197( 分段代码缓存 ),198(轻型JSON API),199( 智能Java编译,第2阶段) )和201( 模块化源代码 )。

Java 9随附money API的博客文章中, otaviojava引入了JSR 354 (“ JSR 354:Money and Currency API”),描述了为什么需要它,涵盖了如何实现它,并得出结论,“该API有望[在Java 9中。”

Java EE 8

Reza Rahman的帖子Java EE 8起飞了! 谈论开始的JSR 366Java EE 8规范)。 这篇文章列出了Java EE的一些预期的高级内容,以及到相关JSR的链接。

揭秘Java类路径

Java类路径问题无疑是Java开发人员可能面临的更困难的挑战之一。 Jar Hell变得容易–用jHades揭开类路径的神秘面纱,很好地概述了与类路径和类加载器相关的一些最常见问题,并简要解释了它们为什么会发生。 我没有使用过jHades ,但是这篇文章的质量无疑激发了我对该工具的兴趣。

结论

“ Java”(SE,EE,JVM等)不断发展并为我们带来了新的语言功能,库和工具。 这篇文章引用了一些帖子,这些帖子着重介绍了JDK 8,JDK 9和Java EE 8的最新发展。

翻译自: https://www.javacodegeeks.com/2014/09/big-java-news-in-late-summer-2014.html

夏末浅笑

Java注解是在编译时或运行时处理的特殊标记,可以用来给代码添加元数据信息。如果需要在运行时修改字段的注解值,可以使用Java反射机制来实现。 以下是修改字段的注解值的示例代码: ```java // 定义一个注解 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @interface MyAnnotation { String value(); } // 定义一个类,包含一个被注解的字段 class MyClass { @MyAnnotation("oldValue") private String myField; } // 在运行时修改字段的注解值 public class Main { public static void main(String[] args) throws Exception { MyClass obj = new MyClass(); Field field = obj.getClass().getDeclaredField("myField"); MyAnnotation annotation = field.getAnnotation(MyAnnotation.class); String oldValue = annotation.value(); System.out.println("oldValue = " + oldValue); // 修改注解值 MyAnnotation newAnnotation = new MyAnnotation() { @Override public String value() { return "newValue"; } @Override public Class<? extends Annotation> annotationType() { return MyAnnotation.class; } }; field.setAnnotation(newAnnotation); // 再次获取注解值 MyAnnotation updatedAnnotation = field.getAnnotation(MyAnnotation.class); String newValue = updatedAnnotation.value(); System.out.println("newValue = " + newValue); } } ``` 在上面的示例代码中,首先定义了一个注解`MyAnnotation`,然后在`MyClass`类中给`myField`字段添加了这个注解。接着在`Main`类中使用Java反射机制获取`myField`字段的注解值,并将其修改为新值。最后再次获取注解值,可以看到已经被修改为新值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值