Oracle宣布更多的Java 9 新特性

随着Oracle确认Java9剩余特性,本文深入解析了包括统一JVM日志、编译器控制增强、移除过时GC组合、Coin项目缺陷修复以及模块化改革等关键更新。详细介绍了Java9如何通过统一的日志格式提升日志管理效率,利用更多编译器控制选项优化性能,移除不推荐的垃圾收集组合以精简代码维护,通过Coin项目改进语言特性,并最终实现模块化的源代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着Oracle确认了其余的4个Java9特性,下一代Java的计划开始变得更清晰了,Oracle已经公布了第二套Java9特性。自从Oracle在今年早些时候宣布了3个新的API和模块化源码后,这是Oracle首次推出Java9特性表。

统一JVM日志(JEP158

Java9将会对所有的JVM组件采用相同的日志格式。这将会改变JVM子系统记录事件的方式,以及为日志添加了统一的命令选项。

更多的编译器控制(JEP165)

Oracle想利用一系列的控制选项来对HostspotJIT编译器提供更多细粒度的控制。这个改进将会让开发者在优化方面获得更多的方法上下文(method-control)相关控制,同时允许他们改变JVM编译器的控制选项。

移除过时的GC组合(JEP214)

这次更新将会移除三个已经过时的垃圾收集组合:DefNew+CMS,ParNew+SerialOld和增量模式CMS,这些组合在Java8已经不建议使用了。Oracle声称移除垃圾收集组合动机是为了节省维护成本。希望这些改动能腾出一些资源来简化HostspotGC的代码,从而减少bugs和改善其他GC组合

改善Coin项目的缺陷(JEP213)

Coin项目刚开始是为了对Java7进行一些小的语言修改而建立的。实践证明这些修改是简单易用并行之有效的,所以Oracle计划返回这个项目去解决当时修改语言时的遗留问题。项目发起人已经表明清楚了,这次修改不是进行第二版本的Coin项目,而且他们不再去征求新的语言提议

参考:Java社区对Java9的特性有什么看法

已经证实了Java9将会支持数据报传输层安全性,伴随着还有输出HTML5格式的Javadoc工具

Oracle同样宣布了他们要完成一个警告清除的项目,这个项目已经开始进行了几年了。对import的处理问题作出更多的改善修复,不建议使用的类将不再会触发警告提醒

Java9模块化被证实

Oracle同样承诺了去模块化源代码。模块化JDK源代码的计划在今年年初已经公开了,Oracle的工程团队已经为结构化实施Jigsaw(JEP152JEP201)项目奠定了基础

参考:Panama项目会加进Java9的特性里吗?

Java平台的首席架构师MarkReinhold阐明,Oracle用JRE和JDK中的模块代替JAR的计划会对IDE(集成开发环境)会产生一些影响。“这将会影响到一小类的应用程序,主要是IDE和其他需要枚举和检测保存在运行映像中的类的开发工具”

根据Reinhold所说,一个能够检测这些类的新机制(JEP220)将会被启用并且能使这些类在某种程度上免疫以后改变格式造成的影响。他最近的一番话“JAR格式已经走到它的尽头了,现在是做出改变继续向前的时候了。”给以JAR打包类库和应用程序的程序员中造成了不安。对于这件事,Reinhold称“那些应用依然会很好地运行”

在今年早8月份被证实的第一组Java9特性包含了3个新的API和3个小的特性在Java社区里的回应都很冷淡

原文链接:Jaxenter翻译:ImportNew.com-进林
译文链接:http://www.importnew.com/13986.html

### 关于 Sqlmap 的安装与使用 Sqlmap 是一种自动化工具,用于检测利用 SQL 注入漏洞,并能够接管数据库服务器。它支持多种类型的数据库以及各种注入技术[^1]。 #### 安装 Sqlmap 对于 Windows 平台上的 Sqlmap 安装过程如下: 1. 下载 Sqlmap 工具包并将其解压缩至 Python 2.7 的安装目录下。 2. 将解压后的文件夹重命名为 `sqlmap`。 3. 创建一个新的快捷方式,在目标路径中输入命令提示符 (`cmd`)。 4. 可通过此快捷方式启动终端窗口以便运行 Sqlmap 命令[^2]。 需要注意的是,Python 版本应匹配所使用Sqlmap 脚本版本需求。 #### 使用 Sqlmap 进行扫描 以下是执行一次基本的表名枚举操作的例子: ```bash sqlmap -u http://aa.com/star_photo.php?artist_id=11 -D vhost48330 --tables ``` 上述命令中的参数解释如下: - `-u`: 指定要测试的目标 URL。 - `-D`: 列出指定数据库的名字。 - `--tables`: 枚举该数据库下的所有表格名称[^3]。 这只是一个简单的例子,实际应用中可能还需要调整更多选项来适应不同的环境或者更复杂的场景。 ```python import subprocess def run_sqlmap(url, database_name): command = f'sqlmap -u {url} -D {database_name} --tables' result = subprocess.run(command.split(), stdout=subprocess.PIPE) output = result.stdout.decode() return output ``` 以上是一个调用 Sqlmap 执行相同功能的小型脚本示例,其中使用了 Python 的子进程模块来发起命令行请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值