Java: Как JVM оптимизирует вызов пустой и пустой функции?
Позволять'Представьте, что у нас есть следующие классы:
public class Message extends Object {}
public class Logger implements ILogger {
public void log(Message m) {/*empty*/}
}
и следующая программа:
public static void main(String args[]) {
ILogger l = new Logger();
l.log((Message)null); // a)
l.log(new Message()); // b)
}
Будет ли компилятор Java удалять операторы и б ? В обоих случаях (удаление или удаление), что является обоснованием для компилятора Java?решение?