Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.09.29;
Скачать: [xml.tar.bz2];

Вниз

Учебник по java.   Найти похожие ветки 

 
Компромисс1   (2013-04-22 10:17) [40]


> Тогда переиначу: на кой хрен нужен сборщик мусора, избавляющий
> от очевидных проблем, но вносящий непредсказуемые?


Если для системы, то:
1. Надежность
2. Безопасность

Если для программиста, то:
1. Удобство разработки
2. Скорость разработки

Никогда не имел проблем со сборщиком мусора, наверное, мне повезло. Точнее, скорее не повезло тем, кто имел проблемы, я впервые о таком слышу.


 
Юрий Зотов ©   (2013-04-22 10:42) [41]


> Компромисс1   (22.04.13 10:17) [40]

Гм... а как сборщик мусора влияет на надежность и безопасность?

Все же серьезные программы, где действительно требуются надежность и безопасность, пишутся, надеюсь, не юными пионерами, которые забывают поставить finally Free.


 
знайка   (2013-04-22 10:43) [42]


> Никогда не имел проблем со сборщиком мусора, наверное, мне
> повезло. Точнее, скорее не повезло тем, кто имел проблемы,
>  я впервые о таком слышу.
аналогично.


 
картман ©   (2013-04-22 10:46) [43]


> Никогда не имел проблем со сборщиком мусора,

ну, а я не имел проблем с утечкой памяти


 
Компромисс1   (2013-04-22 10:57) [44]


> Гм... а как сборщик мусора влияет на надежность и безопасность?
>
>
> Все же серьезные программы, где действительно требуются
> надежность и безопасность, пишутся, надеюсь, не юными пионерами,
>  которые забывают поставить finally Free.


Вы сами ответили на свой вопрос. А если еще вспомнить, что объекты могут использоваться в разных потоках...


 
Компромисс1   (2013-04-22 10:58) [45]


> ну, а я не имел проблем с утечкой памяти


Прекрасно, когда человек рождается с безусловным рефлексом писать Free везде, где надо. Большинству не так повезло.


 
картман ©   (2013-04-22 11:51) [46]


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

боже упаси, но пропущенный Free находится моментально


 
Компромисс1   (2013-04-22 11:57) [47]


> боже упаси, но пропущенный Free находится моментально


Это и называется ненадежность: когда ошибки исправляются после их выявления, а не предотвращаются заранее. Еще в Java нет pointer и связанного с ним выделения памяти - когда от профессионализма программиста зависит, будет ли освобождено именно то,  что было запрошено у менеджера памяти. А ведь можно еще попытаться вернуть не всё и не сразу, тут еще больше простора для возможных ошибок.


 
картман ©   (2013-04-22 12:21) [48]


>  Еще в Java нет pointer

и это вот очень хреново! Может, есть возможность как-нибудь им попользоваться?


 
Компромисс1   (2013-04-22 12:25) [49]


> и это вот очень хреново! Может, есть возможность как-нибудь
> им попользоваться?


Зачем?


 
картман ©   (2013-04-22 12:28) [50]


> Зачем?

например, есть у меня дерево в дельфи:
TMyRec = record
 Next: Integer;
 Prev: Integer;
 SomeVal: Integer;
end;

TMyArray = TArray<TMyRec>;

в дельфи можно шустро сохранять/загружать этот массив с/на диск одной операцией.

а как сделать подобное на джаве?


 
картман ©   (2013-04-22 12:29) [51]


> картман ©   (22.04.13 12:28) [50]

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


 
Sha ©   (2013-04-22 12:34) [52]

> картман ©   (22.04.13 12:28) [50]
> например, есть у меня дерево в дельфи:


это массив вроде )


 
Компромисс1   (2013-04-22 12:38) [53]

Вот, нашел в инете

FileOutputStream fos = new FileOutputStream("c://list.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(treemap);
oos.close();


 
картман ©   (2013-04-22 12:42) [54]


> это массив вроде )

дерево в массиве


 
картман ©   (2013-04-22 12:43) [55]


> Компромисс1   (22.04.13 12:38) [53]
>
> Вот, нашел в инете

дык, дело не в принципиальной невозможности, а в том, как это будет происходить? Думаю, что в цикле и пообъектно - что есть зло и медленно


 
Компромисс1   (2013-04-22 12:46) [56]


> дык, дело не в принципиальной невозможности, а в том, как
> это будет происходить? Думаю, что в цикле и пообъектно -
>  что есть зло и медленно


Необязательно. Есть System.arraycopy, например.

Ты в курсе, что Java в принципе медленнее, чем native языки (Delphi тоже native)?


 
Компромисс1   (2013-04-22 12:49) [57]

Хотя вообще-то это стандартная сериализация (если ссылок нет). Так что никакого цикла быть не должно.


 
Дмитрий С ©   (2013-04-22 12:52) [58]

Удивительно как Java стала такой популярной.


 
Компромисс1   (2013-04-22 12:56) [59]


> Удивительно как Java стала такой популярной.


One of the main reasons Java is so popular is its platform independence, which means that Java programs can be run on many different types of computers.

http://www.dummies.com/how-to/content/what-is-java-and-why-is-it-so-great.html


 
Дмитрий С ©   (2013-04-22 12:58) [60]

И всё? Фрипаскаль что-то не такой популярный пока.


 
картман ©   (2013-04-22 13:00) [61]


> Удивительно как Java стала такой популярной.


задача: сделать А
решение: использовать объект для решения А


> Необязательно. Есть System.arraycopy, например.
Хотя вообще-то это стандартная сериализация

ну, надо смотреть, что за arraycopy и как там сериализация устроена


 
Компромисс1   (2013-04-22 13:03) [62]


> ну, надо смотреть, что за arraycopy и как там сериализация
> устроена


В любом случае это проблема класса, который сериализуется. Если есть способ избавиться от цикла, со временем он появится в реализации, а клиентский код не придется менять.


 
Компромисс1   (2013-04-22 13:07) [63]


> И всё? Фрипаскаль что-то не такой популярный пока.


Кто знает, что было бы с Фрипаскаль, если б он имел сборщик мусора :)


 
Компромисс1   (2013-04-22 13:09) [64]

Кстати, нашел подтверждение своей точки зрения, что не надо учить "Java как таковую", а только то, что надо.

The Java language has only 50 keywords, but the Java API has several thousand classes — with tens of thousands of methods you can use in your programs.

You don"t have to learn anywhere near all of the Java API. Most programmers are fluent with only a small portion of it. If you need to use some class from the API that you aren"t yet familiar with, you can look up what the class does in the Java API documentation.

http://www.dummies.com/how-to/content/what-is-java-and-why-is-it-so-great.html


 
Юрий Зотов ©   (2013-04-22 17:42) [65]

> Компромисс1   (22.04.13 10:57) [44]

Уверяю Вас (и жизнь это подтверждает), что если программист способен упустить из виду finally Free, то он непременно накосячит где-то еще, причем никакой сборщик мусора ему не поможет. Например, ResultSet не закроет, или закроет, но не в finally - и есть еще сто миллионов мест, где можно накосячить.

Доверять таким людям серьезные проекты просто нельзя. А те, кому доверять можно, finally Free уж точно не забудут.


 
Опытный   (2013-04-22 17:53) [66]

тому кто любит яву, нельзя доверять серьезные проекты.
ибо будут делать силами 5хN программистов в течение 5хM лет.

Где N и M - число программистов на нормальном языке и количество их лет на разработку такой же точно системы.

разница лишь в том, что у первых после 5хM лет будет первая глючная и тормозная пре-альфа, а у вторых - десятый стабильный релиз.


 
картман ©   (2013-04-22 18:00) [67]


> Опытный   (22.04.13 17:53) [66]

кстати, да, видел один такой проект, думал - исключение, ан нет...


 
компромисс1   (2013-04-22 20:07) [68]

Юрий Зотов ©   (22.04.13 17:42) [65]

Моя практика говорит об обратном - всегда есть место для ошибок и человеческий фактор никто не отменял. Unit tests не только новички используют. Или скорее, вовсе не новички


 
компромисс1   (2013-04-22 20:09) [69]

Опытный   (22.04.13 17:53) [66]

Доля истины в этом есть, только дело вовсе не Java, а в размере организации. Зачастую на Java реализуют enterprise level системы с сотнями разработчиков.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2013.09.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.005 c
2-1357991481
Теркин
2013-01-12 15:51
2013.09.29
модификация стандартных компонентов


15-1363017588
DevilDevil
2013-03-11 19:59
2013.09.29
Проект "CachedBuffers"


2-1358182960
McLotos
2013-01-14 21:02
2013.09.29
сохранение из TStringList в переменную типа string


15-1365930191
Y-
2013-04-14 13:03
2013.09.29
Задачка про кривые


8-1231067653
Lamer6666
2009-01-04 14:14
2013.09.29
Интерактивная карта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский