Я читаю эффективную java Дж. Блоха, и теперь я нахожусь в объекте объекта функции. Он сказал, что:Знает ли JVM какие указатели функций?
Java не предоставляет указатели на функции, но ссылки на объекты могут быть , используемые для достижения аналогичного эффекта. Вызов метода для объекта обычно выполняет некоторую операцию над этим объектом. Однако можно определить объект, методы которого выполняют операции с другими объектами , переданные явно методам. A n экземпляр класса, который Экспорт точно одного такого метода является фактически указателем на это метод.
Что это значит? Я предполагаю, что каждый раз, когда мы создаем объект такого класса, мы будем эффективно получать указатель на функцию внутри JVM
внутри. Но я не уверен в этом, потому что сама Java не знает концепции указателя функции.
Иными словами, есть ли у нас оптимизация, выполняемая компиляторами для таких объектов?
Пример:
public interface Callback{
public void invoke();
}
public class GenericCallback implements Callback{
public void invoke(){ System.out.println("Generic callback"); }
}
public static void main(String[] args){
Callback c = new GenericCallback(); //What kind of optimization will
//be performed for the c object?
}
Возможный дубликат [Function Pointers in Java] (http://stackoverflow.com/questions/1073358/function-pointers-in-java) – Strelok
@Strelok Это не обман. –