Здравствуйте. Что происходит с объектами созданными в методе. Вот пример:
public void example() {
Integer i = new Integer(4);
}
Здесь нам приспичило создать объект типа Integer, ок, но вот мы выполнили этот метод и что произойдёт после с этим объектом? Он просто удалится из stack'a и если на его нет больше ссылок кроме этой то и из heap'a?
public class Variables {
public static Variables variables = new Variables();
private ArrayList<String> arrList = new ArrayList<>();
private Variables() {}
public ArrayList getArrList() {
return arrList;
}
}
public class Human {
private String name;
public Human(String name) {
this.name = name;
Variables.variables.getArrList().add(name);
}
public void setName(String name) {this.name = name;}
}
public class Main() {
public static void main(String[] args) {
Human human = new Human("Josh");
//Теперь у нас переменная стринг "Josh" хранится и в коллекции и в поле объекта human и нам чтобы удалить этого Джоша надо удалить этот объект из коллекции Variables.variables.getArrList().remove(0); и присвоить Null human.setName(null);
}
}
После выполнения метода объект удалится сборщиком мусора, поскольку на него нет ссылок, вот только когда именно это произойдет неизвестно. Вы не можете влиять на это процесс, но можете рекомендовать сборщику мусора удалить ненужные объекты, вместе с тем, он сам решит какие. Делается это просто - System.gc(). Но повторюсь, что это лишь рекомендация и гарантий, что этот объект удалится именно после вызова метода нет.
Если напишите вот так, то будет другой смысл:
public void example() {
Integer i = 4;
}
Потому что в этом случае будет создан не новый объект, а i будет присвоена ссылка на уже существующий объект из пула целых чисел. И сборщику мусора меньше работы
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я начинающий в программировании, и мне с одноклассником (оба из 11 класса) нужно сделать проект, который будет чем-то напоминать демонстрацию...
Здравствуйте, недавно столкнулся с проблемой: написал сервер tomcat, но работает он только на локалкеВ этом деле я новичок и хотел спросить,...
Есть задача отображения объекта внешнему классу, например массиваНо без возможности редактирования во внешнем классе Пример геттера