java – 为什么静态和默认接口方法不能同步但可以是strictfp?
参见英文答案 >
What is the reason why “synchronized” is not allowed in Java 8 interface methods?1个
为什么静态和默认接口方法不能同步? 人们说synchronized是一个实现细节.那么,strictfp也是一个实现细节,但这并不妨碍在静态和默认接口方法上允许strictfp. 如果实现接口的类没有覆盖默认方法,则继承默认方法并使其已经同步可能非常方便. 我猜测synchronized(以及strictfp)不是继承的(我在这里吗?),但这并不能解释为什么strictfp也允许静态和默认接口方法. 解决方法
strictfp关键字确保您的浮点运算
are consistent across all platforms. stricftp成为JVM的保证,您的浮点运算在所有平台上将是相同的,并且可以预期浮点运算是可移植的且一致的始终.
标记为synchronized的方法实际上是一个实现细节,并且不能由任何一个接口为其任何实现指定或控制.如Brian Goetz所解释的那样,它被故意排除在默认方法之外,因为它们本质上是危险的(强调我的):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |