Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 11.10.2018
Сообщений: 13

Как будет менее ресурсозатратнее?

03.03.2019, 18:35. Показов 1077. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот так
Java
1
2
SomeClass sc = new SomeClass();
sc.doSomething();
или так
Java
1
new SomeClass().doSomething();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2019, 18:35
Ответы с готовыми решениями:

Вероятность того, что карпов будет не менее 78 и не более 96
В некотором водоеме карпы составляют 60%. Найти вероятность того, что из 150 выловленных из водоема рыб, карпов будет не менее 78 и не...

Вероятность, что из 500 деталей бракованных будет не менее 5
Вероятность производства бракованной детали равна 0,008.Найти вероятность того, что из 500 деталей бракованных будет не менее 5,но не более...

Какова вероятность того, что будет продано не менее 85 акций?
Помогите правильно решить задачу... Вероятность реализации одной акции некоторой компании равна 0,8. Брокерская контора предлагает 100...

15
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
03.03.2019, 18:41
одно и то же

Добавлено через 31 секунду
во втором варианте у тебя просто не останется ссылки на объект и ты не сможешь его переиспользовать
0
0 / 0 / 0
Регистрация: 11.10.2018
Сообщений: 13
03.03.2019, 18:42  [ТС]
Цитата Сообщение от ArtemFM Посмотреть сообщение
одно и то же

Добавлено через 31 секунду
во втором варианте у тебя просто не останется ссылки на объект и ты не сможешь его переиспользовать
спасибо.
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
03.03.2019, 18:43
ну если рассмотреть более глубоко, то new SomeClass().doSomething(); удалится из памяти при следующем запуске гарбидж коллектор, а вот

SomeClass sc = new SomeClass();
sc.doSomething();

только когда ссылку обнулишь (sc = null)
и тогдаеё гарбидж коллектор при обходе удалит
1
0 / 0 / 0
Регистрация: 11.10.2018
Сообщений: 13
03.03.2019, 18:47  [ТС]
спасибо
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.03.2019, 19:59
Цитата Сообщение от ArtemFM Посмотреть сообщение
только когда ссылку обнулишь (sc = null)
и тогдаеё гарбидж коллектор при обходе удалит
да ну? И часто ты в своих программах ссылки обнуляешь?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
03.03.2019, 20:16
KEKCoGEN, редко, но в теории это так...

пока переменная имеет ссылку, то объект из хипа не удалится.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.03.2019, 20:28
ArtemFM,
Java
1
2
3
public void foo() {
MyClass cl = new MyClass();
}
в этом коде объект никогда не соберется сборщиком?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
03.03.2019, 20:31
после того, как метод отработает, но если ссылка в main и допустим будет работать программа круглые сутки и необнулить ссылку, то не соберётся
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.03.2019, 21:03
ArtemFM,
Java
1
2
3
4
5
public static void main(String[] args) {
for(long i = 0; i<999999; i++) {
Long num = 1000 * 100;
}
}
тут тоже не обнуляется ссылка. Как думаешь сколько объектов тут будет создано и сколько уберет (или не уберет) сборщик мусора?
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
03.03.2019, 21:50
ArtemFM, По моему, GC "чекает" ссылки, то есть смотрит ссылается на них что либо. Если нет, например вы обнулите ссылку, или перепишете ее (например в цикле фор), или выйдете с области видимости (например выйдете из метода foo() и логично что больше никто ее не видит), то при проверке ее на "активность" GC почистит те на которые ничто не ссылается.
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
04.03.2019, 16:06
Друзья ))) Я прекрасно (хотя может и не прекрасно) понимаю суть работы gc. Для каждого метода в стеке, а он работает как очередь LIFO, отводится место. После отработки метода, все созданные в нём объекты обнуляются. Так же и циклы. То, что создана внутри их тела, после выхода из цикла обнуляется. Но всё же, пример в голове не придумать, возможность в проекте создать утечку памяти существует.

Человеку, кто создал тему, я всего лишь показал теорию. Обнулять насильно объект в его контексте не нужно.Я всего лишь хотел его навести на мысль, что теоретически могут быть объекты, которые не потеряют ссылок из стека и будут висеть объекты в хипе и gc будет их перекидывать из Eden, в Survivor и далее в Old heap
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
04.03.2019, 16:29
Цитата Сообщение от ArtemFM Посмотреть сообщение
Обнулять насильно объект в его контексте не нужно
насильно обнулять объект ненужно никогда.
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
04.03.2019, 16:35
создатели ArrayList, а именно в методе clear(), а так же LinkedList и так же clear(), с тобой не согласятся
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
04.03.2019, 18:58
ArtemFM, там это сделанно скорее из соображений быстродействия. Такого же эффекта можно было бы добится просто проинициализировав встроенный массив, однако выделение памяти заняло бы больше времени чем просто обнуление указателей.
В целом все же слово "никогда" действительно неверно. Бывают очень редкие случаи когда можно действительно получить выгоду обнулив указатель, однако % таких случаев настолько мал, что шанс того что тебе это дествительно надо очень быстро стремится к нулю. В остальных же 99.999999999(9)% это просто ничем не оправданное замусоривание кода
1
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
04.03.2019, 19:08
Я всё это прекрасно понимаю и огромное спасибо,что Вы тратите время, чтоб объяснить мне

Я никогда не обнуляю объекты и в сообщениях выше я как раз рассматривал теоретический смысл. Что теоретически такое возможно и может понадобится. Конечно, я, скорее всего, зря это написал человеку...достаточно было сказать, что время тратится большее на создание объектов и если он хочет переиспользовать ссылку на объект в дальнейшем, то лучше объявить переменную, если единожды, то достаточно варианта new Class().method(). Но в вопросе, который он задал, по времени будет одно и то же...

По поводу обнуления. Сам лично я не встречал ещё такого момента, где нужно "насильно" обнулить, но в теории (это главное слово в моих дебатах) может пригодится )))
Ещё раз спасибо )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.03.2019, 19:08
Помогаю со студенческими работами здесь

Найти вероятность, что нулей в сообщении будет не менее 4 и не более 8
Некоторое сообщение состоит из 12 символов: каждый символ представляет собой либо нуль, либо единицу. Вероятность появления нуля и единицы...

Определить, на какой N-й день рождения в банке будет не менее S долларов?
Папа Карло подарил Буратино 1 доллар в его первый день рождения, а экономный Буратино положил подарок в банку. Каждый следующий год папа...

Какова вероятность того, что при 6 выстрелах будет не менее 2 попаданий?
Доброго вечера! Помогите решить задачку о стрелке. Стрелок попадает в цель при одном выстреле с вероятностью 0,6. Какова вероятность...

Какая вероятность того, что при 5 выстрелах будет не менее 2 попаданий
Добрый день. Вот собственно задача. Вот мое решение. P=C(2,5)*0.2^2*0.8^3=0.2 И того вероятность у меня получилась 0.2 ...

Какова вероятность того, что за время 30 секунд, будет не менее одного вызова?
В течение часа коммутатор получает в среднем 40 вызовов. Какова вероятность того, что за время 30 секунд, будет не менее одного вызова?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru