(1) List<?> myList = new ArrayList<?>();
(2) ArrayList<?> myList = new ArrayList<?>();
Run Code Online (Sandbox Code Playgroud)
我理解,使用(1),可以交换List接口的实现.似乎(1)通常在应用程序中使用而不管需要(我自己总是使用它).
我想知道是否有人使用(2)?
此外,经常(并且我可以得到一个例子)情况实际上需要使用(1)over(2)(即where(2)不足以对接口和最佳实践等进行编码)
我简要介绍了Maxine,这是一个用Java编写的开源JVM实现.这对我来说是圆形的.如果java需要运行虚拟机,那么虚拟机本身如何用Java编写(VM代码不会需要运行的VM,依此类推?).
编辑:好的,所以我看到我忽略了Java不必在VM中运行的事实.那么如何解释如何在LISP中编写LISP编译器?或者这应该是一个新问题?