У меня есть приложение Java с классом обслуживания, который имеет множество (около 20 или около того) частных методов. Я много читал о частных и частных статических методах. Я хочу оптимизировать эффективность этого класса обслуживания во время выполнения, и мне было интересно, каковы различия в производительности/памяти/и т. д. между следующими методами:
private foo() {}
private final foo() {}
private static foo() {}
private final static foo() {}
Я читал эта статья и этот пост разработки программного обеспечения стека, чтобы понять, но до сих пор не понял.
На отличия не стоит обращать внимания. Я совершенно и совершенно серьезно. Любые «оптимизации», которые вы могли бы сделать, будут сделаны автоматически, поэтому просто напишите наиболее понятный код.
Если методу не требуется доступ к полям экземпляра и/или методам экземпляра, создайте метод static, чтобы задокументировать тот факт, что он не использует значения экземпляра. Нет веской причины для создания приватных методов final.




Если вы хотите оптимизировать код, чтобы сделать его более эффективным, вам нужно сначала выяснить, где самые большие узкие места. Улучшения в этих выявленных областях будут иметь наибольшую отдачу.
Не поддавайтесь искушению обсуждать оптимизацию еще не написанного кода.
При прочих равных нет.