К любителям Java? Никогда толком не любил выносить код в static методы, делал это обычно, если ну никак без этого. А тут задумался и никак не могу найти правильный ответ на, кажется мне, достаточно легкий вопрос.
Есть ли смысл (по ресурсам, быстродействию или ?) в преобразовании:public class A
{
private final int a;
private final Map map;
public A(int a)
{
this.a = a;
this.map = new HashMap();
}
public int calcSomthing()
{
int b = 0;
for (int i : map.values())
if (i == a)
b++;
return b;
}
}
вpublic class A
{
// ...
public int getA()
{
return a;
}
public Collection getValues()
{
return map.values();
}
public static int calcSomthing(A obj)
{
int b = 0;
for (int i : obj.getValues())
if (i == obj.getA())
b++;
return b;
}
}
Если учитывать, что объектов много, скажем тысяч 50.
Или смыл будет только, если, выносить в static те методы, которые изначально не обращается напрямую к переменным класса, а используют только другие методы класса?

21 Авг 2019 в 07:10
153 +1
0
Ответы
1

Да, в данном случае есть смысл выносить метод calcSomthing в static метод. При обращении к коллекции map и переменной a через методы getA() и getValues() происходит обращение к переменным класса через геттеры, что, в принципе, не является плохой практикой.

Однако, когда вы рассматриваете ситуацию, когда объектов класса A может быть много (50 тысяч), использование static метода calcSomthing() позволит избежать создания объектов A и их хранение в памяти на длительное время. Вместо этого, вы сможете передавать только необходимые параметры для вычислений и получать результат, не загружая память лишней информацией.

Таким образом, вынос статического метода имеет смысл, если он не требует доступа к переменным объекта напрямую и может быть использован для работы с большим количеством объектов без необходимости хранения их в памяти.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир