OpenJDK 计划要求限制 JNI 的使用
Java 社区正在推进一项名为“JEP 472:Prepare to Restrict the Use of JNI(准备限制 JNI 使用)”的提案,旨在保留 Java Native Interface (JNI) 作为与本地代码互操作的标准方式的状态。
JNI 在 JDK 1.1(可追溯到 1997 年 2 月)中被引入,作为 Java 代码与本地代码(通常用 C 语言编写)之间互操作的主要手段,允许 Java 代码调用本地代码(向下调用)和本地代码调用 Java 代码(向上调用)。
但提案指出,Java 代码和本地代码之间的任何交互都存在风险,它可能会损害应用程序和 Java 平台本身的完整性。根据默认完整性策略,所有能够破坏完整性的 JDK 功能都必须获得应用程序开发人员的明确批准。
准备限制 JNI 的使用是确保 Java 平台默认完整性的长期协调努力的一部分。其他相关举措还包括删除 sun.misc.Unsafe 中的内存访问方法(JEP 471)和限制代理的动态加载(JEP 451)。
该提案由 Ron Pressler 提出,于 2023 年 5 月创建,并于 7 月 16 日更新,计划在预计于 2025 年 3 月推出的 JDK 24 中更新发布。
提案要求对 JNI 的使用发出警告,并调整 Foreign Function & Memory (FFM) API 以一致的方式发出警告。所有这些警告的目的在于让开发人员做好准备,即未来版本中将默认禁止与本地代码互操作,无论是通过 JNI 还是 FFM API。开发人员可以在必要时有选择地启用这些接口。
同时,提案还计划协调 JNI 和 FFM API 的使用,以便库维护人员可以从一个迁移到另一个,而无需开发人员更改任何命令行选项。而弃用 JNI 或从 Java 平台中删除 JNI,以及限制通过 JNI 调用的本地代码的行为均不包含在目标范围内。所有本地 JNI 函数仍可供本地代码使用。
更多详情可查看:https://openjdk.org/jeps/472

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GitLab 正在考虑出售
根据路透社的独家报道,美国云软件开发工具供应商 GitLab 正在考虑出售,该公司目前市值约 80 亿美元(约 582.43 亿元人民币),投资者包括谷歌母公司 Alphabet。 消息人士称,GitLab 正在与投资银行家合作启动出售流程,该流程吸引了包括云监控公司 Datadog 在内的同行的兴趣。 Datadog 是一家 SaaS 公司,提供服务器、数据库等的监控服务,当前市值达 440 亿美元(约 3203.38 亿元人民币)。 据熟悉内情的消息人士称,距离达成协议仍需数周时间,不过目前还不确定是否能达成协议。由于此事属于机密,因此消息人士要求匿名。 GitLab 和 Datadog 没有回应置评请求。 Alphabet 通过其风险投资部门持有 GitLab 22.2% 的投票权,该公司也没有回应置评请求。
- 下一篇
前后端数据传输约定探讨
1 目的 稳定可靠,降本增效 前后端数据传输约定旨在提升系统稳定性、可靠性,降低线上线下bug率;并提升研发效率、降低沟通成本、降低延期率。是确保项目前端和后端开发顺利进行的重要规约之一,定义了前端与后端交互的规则和标准。 2 数据传输约定 2.1 数据向后端传递,及在前端流转 1. 前端URL传参:原则上只允许传id参数,尽量不要在URL中传入中文参数及有关状态判断参数。 2. 数据提交:明确表单数据类型,包括是否必填校验、multipart数据以及其他复杂类型数据。 3. 参数规范:详细描述接口所需的参数,包括参数名称、类型、是否必填、默认值、示例等。 2.2 数据从后端返回到前端 1. 正常数据格式:需定义单个数据、复杂数据、可能有的数据、无数据、分页数据、校验数据、特殊数据以及认证加密数据的格式。 2. 异常数据格式:需包含异常状态码、异常名称、数据格式、错误类型码、异常发生位置以及异常描述,以便于前端正确处理和显示错误信息。 3. 性能要求:接口的响应时间、并发处理能力、健壮性、稳定性、故障恢复、安全性等性能指标。 【措施】 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G