栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

字节码功能在Java语言中不可用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字节码功能在Java语言中不可用

据我所知,Java 6支持的字节码中没有任何主要功能,这些功能也无法从Java源代码访问。这样做的主要原因显然是Java字节码在设计时就考虑了Java语言。

但是,有些功能不是现代Java编译器提供的:

  • ACC_SUPER
    标志:

这是可以在类上设置的标志,并指定如何

invokespecial
为该类处理字节码的特定特殊情况。它是由所有现代Java编译器(如果我没有记错的话,其中“现代”>
= Java 1.1)设置的,只有古老的Java编译器会生成未设置此文件的类文件。该标志仅出于向后兼容的原因而存在。请注意,从Java
7u51开始,由于安全原因,ACC_SUPER被完全忽略。

  • jsr
    /
    ret
    字节码。

这些字节码用于实现子例程(主要用于实现

finally
块)。从Java
6开始不再生产
它们。之所以会弃用它们,是因为它们使静态验证复杂化了很多,却没有太大的收获(即,几乎总是可以用正常的跳转重新实现使用的代码,而开销却很小)。

  • 一个类中有两个方法,只是返回类型不同。

Java语言规范不允许在同一个类中的两个方法时,它们之间的区别
在他们的返回类型(即相同的名字,相同的参数列表,…)。但是,JVM规范没有这样的限制,因此类文件 可以
包含两个这样的方法,只是没有办法使用普通的Java编译器来生成这样的类文件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号