我想知道是否有任何理由使用Executor代替ExecutorService。
据我所知Executor,JDK中没有实现该接口,这也不是一个实现ExecutorService,这意味着您必须关闭该服务,以便不存在内存泄漏。您无法关闭系统Executor,但可以使用ExecutorService。
因此,在任何情况下都可以使用类似的方法:
private final Executor _executor = Executors.newCachedThreadPool();
Run Code Online (Sandbox Code Playgroud)
Executor接口的目的是什么?实例赞赏。
我查看了java.lang.Double该类的实现。的值NaN是的指定值0x7ff8000000000000L。将该public static final double NaN字段设置为该0.0d / 0.0值,以0x7ff8000000000000L判断JVM是否确实以这种方式实现了该字段。
为什么0x7ff8000000000000L选择此值()?这个值有什么特别的地方(例如它的位掩码)吗?
为什么将字段隐式设置为该值并取决于该0.0d / 0.0操作的基础实现,而静态方法public static long doubleToLongBits(double value)将该值显式设置0x7ff8000000000000L为NaN参数的值?由于0.0d / 0.0高度依赖JVM的实现并在理论上可以更改(很可能永远不会更改),因此隐式设置它是否更安全?
这同样适用于POSITIVE_INFINITY和NEGATIVE_INFINITY。字段被隐式设置为它们的值,但是某些方法使用显式指定的值。这背后有原因吗?
感谢您每天帮助我学习新知识:-)。