Как стать автором
Обновить
30
0
Олег Анонимыч @relgames

Java Developer

Отправить сообщение
Да, Вы правы про charAt.

И все же, почему String? Почему не char[] или не Reader? Ведь, по сути, вы свели весь функционал String-а к хранению массива символов.

В целом, «правильным» было бы реализовать подкласс FilterReader и фильтровать символы в нем. Оно будет медленнее C-style решения, но универсальней. Понятно, что все зависит от задачи и выбранной архитектуры.
Возможно, будет еще немного быстрее, если не копировать массив символов (getChars на самом деле вызвает System.arraycopy), а использовать String.charAt()

Еще быстрее нужно — меняйте архитектуру. Почему у вас передаются строки, а не массивы символов? Или хотя бы Stream-ы.
А можно ли включить режим отображения, как в Google Notebook? Что-то типа текущего «Фрагменты», но на всю ширину?
То, что s1==s2, это последствия оптимизации при компиляции. Компилятор не обязан это делать. Может быть, другой компилятор так делать не будет.

То, что == сравнивает ссылки на объект — это азы. Строки — это объекты. Сравнивать строки через == нельзя. Вот и вся логика.
Ну вот этот вот «вызов API» — это, по моему мнению, лишний код. Если объект просто «вызывает API», то этот самый вызов лучше из объекта вынести в специальный сервис.

Это бывает полезно, если данные передаются между разными уровнями. Например, на веб-уровне элемент можно отрендерить, а на db-уровне его можно сохранить. Альтернативой будет написание всех методов типа render(), save(), load() и т.д. у каждого объекта, либо использование разных объектов на разных уровнях.

ну хотя бы потому, что вариантов реализации метода print() может быть несколько. например, понадобилось сделать печать не на экран, а на принтер — и что, теперь у всех классов переписывать print()?
test.getClass().getMethod(«call», b.getClass()).invoke(test, b) не будет работать?
Сравнивать возможные варианты реализации кода — можно и нужно. Знания об абстрактной сложности пузырьковой сортировки — избыточные знания. Гораздо лучше знать, например, что для одних случаев нужно выбрать один метод, в других случаях — другой, и будет ли данный алгоритм эффективен на текущей платформе с текущими данными, можно ли его легко расширить на кластер из 1000 машин, ну и так далее.

Само по себе знание O() бесполезно без практического опыта.
А сколько же на самом деле занимет 1 cloudlet? Деплою простенькое приложение на Tomcat 6, показывает Cloudlets 2/1, при наведении мышкой пишет «129 Mb». Почему занято 2 cloudlet-а, вы же писали, что 1 cloudlet = 256Mb?
лично я сабмитил баг-репорты в различные проекты, поднимал на форумах вопросы и таки добивался фикса багов. очевидно, что «поднимать шум» можно по-разному, можно на хабре излить душу, а можно аргументированно доказать свою точку зрения разработчикам.

согласен в одном — в некоторых случаях менее затратно самому все сделать, чем день за днем писать на форумы/багтрекеры.
нет, неверно. если молчать и ничего не говорить, именно это и провоцирует на подобные «нововведения».
первым делом начинал твикать всё, что «сломали» разработчики

Кстати да, вот это очень бесит, у меня за последние 3 года пользования убунтой уже накопился приличный список, типа — вернуть иконки на заголовках окон вправо, удалить gwibber, emphaty и evolution (и поставить hotot, pidgin и thunderbird), хорошо что в 11.04 можно вернуться на классический гном. Предвижу, что для следующих версий придется добавить в список «заменить Gnome 3 на 2».

Единственная надежда на то, что через пару лет Gnome 3 все же допилят и им станет можно пользоваться в работе. Вспоминаю, на убунтах 8 и 9 всегда удалял PulseAudio из-за постоянных глюков и пропаданий звука. Сейчас же он практически незаметен, даже скайп стал нормально с PulseAudio работать.
Значит ли это, что те, кто молча удаляет все эти Unity/Gnome Shell и прочие «иконки слева» при каждом обновлении дистра, не лемминги? :)

С нуля ставить — это как раз понятно, при обновлении иногда что-то отваливается.

Вот и приходится выбирать — либо, матерясь, выпиливать все эти «мега-решения» при выходе нового дистра, либо, так же (если не хуже) матерясь, заниматься глюками, возникшими при обновлении.

На работе у меня до сих пор 9 версия убунты стоит, ибо нет пары дней на «допиливание» новых версий. Дома можно экспериментировать, но лично я лучше займусь Java, чем потрачу 2-3 дня на приведение в порядок нового Гнома.
То же самое — удалил .Skype, все заработало
ДНК API — это что? В оригинале DNA (Digital Network Architecture, цифровая сетевая архитектура).
Не проходит авторизацию.
изображение ступни на картинке в посте как-бэ намекает
Перечитал текст несколько раз, все равно не понял, как вычисляется Z-функция за линейное время и почему именно так.
В википедии есть через рекуррентное соотношение, но не ясно, почему именно так.

Если не трудно, можно пару примеров?

От себя добавлю, есть еще вариант поиска через сдвигающееся окно. Это когда для строки, которую нужно найти, вычисляется некая функция (пусть для примера это будет сумма всех символов), далее вычисляется эта же функция для начала строки такой же длины. Если функции совпали, проводится посимвольное сравнение. Если нет совпадения, то «окно» сдвигается на 1 позицию: из суммы вычитается значение символа, оставшегося за границей окна, и прибавляется значение нового символа.

Правда, не знаю, зачем это может понадобится, если сложность других алгоритмов линейна :)
Правильно ответил на 2 вопроса. Еще раз убедился, что нужно писать код максимально просто и понятно, а за подобные извращения жестко бить по рукам. :-)

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность