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

即使分配是try中的最后一个操作,也可以在catch中重新分配最终变量吗?

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

即使分配是try中的最后一个操作,也可以在catch中重新分配最终变量吗?

这是对最有力论点的总结,以支持这样的论点:当前的定值分配规则必须在不破坏一致性的前提下放宽(A),然后再提出我的反驳(B):

  • :在字节码级别,对变量的写入不是try块中的最后一条指令:例如,最后一条指令通常是

    goto
    对异常处理代码的跳转;

  • :但是,如果规则状态

    i
    绝对未分配 的捕捉块内,它的值可以不被观察到。不可观察的价值与没有价值一样好。

  • :即使编译器声明

    i
    绝对未分配 ,调试工具仍然可以看到该值;

  • B :实际上,调试工具始终可以访问未初始化的局部变量,该变量在典型的实现中将具有任意值。未初始化的变量和在实际写入发生后突然完成初始化的变量之间没有本质区别。不管此处考虑的特殊情况如何,该工具都必须始终使用其他元数据来为每个局部变量知道 明确分配 该变量的指令范围,并且仅允许在执行发现自身处于该范围内时观察其值。

定论:

该规范可以持续接收更多细粒度的规则,这些规则可以使我发布的示例得以编译。



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

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

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