@jvmchat

Страница 793 из 2890
guga
09.12.2016
10:31:45
finalization queue в одном потоке обрабатывается, while (true) его повесит
никогда не писал finalize метод в боевых проектах, интересно, есть ли какие-то особые юзкейсы у этого метода.

Nikita
09.12.2016
10:32:21
давай конкретный код обсудим
Стоп. Ты говоришь, что закрывать ресурс в finally блоке плохо. У меня это вызывает определенные вопросы)

Митко Соловец?
09.12.2016
10:32:50
я в охере с таких набросов

Google
Nikita
09.12.2016
10:32:50
Может, я контекст обсуждения потерял?

guga
09.12.2016
10:33:48
я в охере с таких набросов
Не чувак прав, в джаве нету нормальных деструкторов. Но не вижу особых проблем.

Митко Соловец?
09.12.2016
10:34:02
меня подача сообщения удивляет

джава говно, кресты рулят, кокококо

Митко Соловец?
09.12.2016
10:34:23
дядя, ты в какой чат зашел, але?

guga
09.12.2016
10:34:35
но зачем они там?
Без понятия.

J
09.12.2016
10:35:19
Может, я контекст обсуждения потерял?
Stream stream; try{ stream = new Stream() (1) stream.read/write() (2) }catch(IOEx ex){ ex.print() // не закрыл стрим }finally{ stream.close() /// NULL POINTER EXCEPTION }

guga
09.12.2016
10:35:28
В целом, всегда находится человек, который говорит что хочет руками освобождать память, вот ему бы пригодился.

Nikita
09.12.2016
10:35:48
А, все ясно, ок. Говорят, что if бывает полезен

J
09.12.2016
10:36:20
А, все ясно, ок. Говорят, что if бывает полезен
напиши код с ифом, посмотрим, я думаю там будет тоже камень

guga
09.12.2016
10:36:25
Stream stream; try{ stream = new Stream() (1) stream.read/write() (2) }catch(IOEx ex){ ex.print() // не закрыл стрим }finally{ stream.close() /// NULL POINTER EXCEPTION }
ну тут ещё может быть проблема с закрытием, так что ещё и close нужно в трай завернуть и на null проверить

Google
Nikita
09.12.2016
10:37:39
код покеж
Нагугли классический код закрытия коннекшна к бд

guga
09.12.2016
10:37:40
finally{ try{ if (stream != null)stream.close() } catch(IOE e) }

что-то такое

J
09.12.2016
10:38:05
руками освобождать в джаве
всем кто любит писать деструкторы, рекомендую все создаваймые объекты хранить в статических полях и заботиться о них там в борьбе с утечками памяти

guga
09.12.2016
10:39:52
а остальное?
как у тебя

но ещё раз, проще взять try-with и не мучать себя

или не работать с io

J
09.12.2016
10:41:34
тоесть итого: Stream stream; try{ stream = new Stream() (1) stream.read/write() (2) }catch(IOEx ex){ ex.print() }finally{ try{ if (stream != null)stream.close() } catch(IOE e) } }

теперь внимание вопрос

а что если у тебя там три стрима матрёшкой: zip <- buffer <- file

всё пизда проекту?

там будет 500 try catch finally

на всё комбинации

guga
09.12.2016
10:43:23
Всё так

Anton
09.12.2016
10:44:05
try( Stream stream = new Stream() ) { }

J
09.12.2016
10:44:05
ну а чо насчёт .open .open .open .open try{}/catch{} .close .close .close .close

Anton
09.12.2016
10:44:08
а так не?

J
09.12.2016
10:44:37
try( Stream stream = new Stream() ) { }
тогда ты его на закроешь

Google
Anton
09.12.2016
10:44:46
ну он сам закроется

J
09.12.2016
10:45:01
ну он сам закроется
залокает файл, придётся ребутиться

J
09.12.2016
10:48:15
нужно найти того сишника которого Sun взял на работу чтоб тот написал работу со стримами и вырвать ему ноги

J
09.12.2016
10:50:13
но я не понял, как твой код тещает эти проблемы.
я имеюю ввиду что стримы в жаве работают через жопень потому, что конструктор стрима, open и close валят IOException если написать нормальный стрим где IO валит только read/write - то всё будет красиво и элегантно

открыл, отдал другому классу, тот поработал и вернул, закрыл

как там всё прошло - не важно

Vladislav
09.12.2016
10:51:57
джава говно, кресты рулят, кокококо
На не наброс, не будет бурной реакции же Олсо, не кресты а плюсы ?

Хотя кресты тоже рулят по сравнению с джавой, дискасс

Митко Соловец?
09.12.2016
10:53:04
чем они рулят? язык ни рыбо, ни мясо - овощ

Vladislav
09.12.2016
10:53:17
Джава очень медленно развивается, особенно огорчил анонс девятки

Митко Соловец?
09.12.2016
10:53:20
в прикладнухе он просрал джаве, сисярпу и другим языкам

в микроконтроллерах - сишка, ассемблер

и только в специфичных проектах он есть

но кресты до такой степени доразивались, что синтаксис стал похож на нечитаемое дерьмо

guga
09.12.2016
10:56:07
и только в специфичных проектах он есть
Ну куча же легаси есть, да и новых проектов хватает.

Митко Соловец?
09.12.2016
10:56:30
Vladislav
09.12.2016
10:56:38
мля, под крестами я подумал про шарп ?

J
09.12.2016
10:56:46
Нагугли классический код закрытия коннекшна к бд
загуглил: Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // Do stuff ... } catch (SQLException ex) { // Exception handling stuff ... } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { /* ignored */} } if (ps != null) { try { ps.close(); } catch (SQLException e) { /* ignored */} } if (conn != null) { try { conn.close(); } catch (SQLException e) { /* ignored */} } } какойто пиздец

Google
guga
09.12.2016
10:56:47
И не обязательно же всё из языка юзать.

Maksim
09.12.2016
10:58:04
мля, под крестами я подумал про шарп ?
То есть в шарпе не нужно закрывать потоки и там нету using, который, если не ошибаюсь, тот же try-with-resources?)

Vladislav
09.12.2016
10:58:33
но есть много чего хорошего, чего в яве пока нет

J
09.12.2016
10:58:57
пишите хотябы finally { forceClose(rs); forceClose(ps); forceClose(conn); }

Maksim
09.12.2016
10:59:29
но есть много чего хорошего, чего в яве пока нет
А ты за что топишь, а то я до сих пор не понял: плюсы, шарп или что-то третье?

Митко Соловец?
09.12.2016
10:59:46
пишите хотябы finally { forceClose(rs); forceClose(ps); forceClose(conn); }
есть либы, которые это все решили

J
09.12.2016
10:59:46
void forceClose(Closable c)

Admin
ERROR: S client not available

Митко Соловец?
09.12.2016
10:59:55
Митко Соловец?
09.12.2016
11:00:08
какие?
spring jdbc template

автоматически менеджит твой коннекшен

J
09.12.2016
11:00:23
spring jdbc template
а если я не с бд работаю?

мы тут стримы обсуждаем из стандартного пакета

Митко Соловец?
09.12.2016
11:00:49
а если я не с бд работаю?
тут я не могу сказать, но наверняка и такие решения за 20 лет были написаны

Vladislav
09.12.2016
11:01:31
А ты за что топишь, а то я до сих пор не понял: плюсы, шарп или что-то третье?
К сожалению ни за что, нет счастья ни в одном языке.

Ivan
09.12.2016
11:02:39
Try with как раз придуманы чтобы стрииы закрывать разве нет?

Vladislav
09.12.2016
11:03:58
не только стримы - всё что должно закрываться

Google
Nikita
09.12.2016
11:04:05
J
09.12.2016
11:04:36
Человек побугуртить просто хочет
наверное просто тока пришёл, а тут какая-то ересь )

тока в обратную сторону

засовывают требования в жопу джуну

Ivan
09.12.2016
11:05:50
Враппер закрывает все стримы внутри себя что не так?

J
09.12.2016
11:06:04
уже обсудили выше

крути до этой пикчи

Anton
09.12.2016
11:14:36
Ivan
09.12.2016
11:15:22
А есть вест код

?

J
09.12.2016
11:15:34
с чего бы ему локаться?
- открыаешь файл - пишешь/читаешь туда немного - заваливаешь приложение - пытаешься удалить файл, он залокан

Anton
09.12.2016
11:16:08
в доке оракла помойму написано, что он в любом случае его закроет

J
09.12.2016
11:16:12
в винде

Vladislav
09.12.2016
11:16:17
ого

может приложение недозаваливается?

J
09.12.2016
11:18:19
я хз, но проблема реальная

Igor
09.12.2016
11:19:57
кто-нибудь реактор трогал? как там логгер свой подсунуть?

Страница 793 из 2890