• ↓
  • ↑
  • ⇑
 
18:00 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.

17:54 

Маленькие хитрости Java

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
Я уже достаточно много лет занимаюсь разработкой на java и повидал довольно много чужого кода. Как это не странно, но постоянно от одного проекта к другому я вижу одни и те же проблемы. Этот топик — попытка ликбеза в наиболее часто используемых конструкциях языка. Часть описанного — это довольно банальные вещи, тем не менее, как показывает мой опыт, все эти банальности до сих пор актуальны. Надеюсь, статья пригодится многим java программистам. Итак, поехали:

new vs valueOf







Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах оболочках примитивных типов, кроме случаев, когда вам нужно конкретно выделить память под новое значение. Это связано с тем, что все они, кроме чисел с плавающей точкой, от Byte до Long имеют кеш. По умолчанию этот кеш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кеша. Значение из кеша достается в 3.5 раза быстрее чем при использовании конструктора + экономия памяти. Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной. В случае, если ваше приложение очень часто использует целые типы, можно увеличить кеш для Integer через системное свойство «java.lang.Integer.IntegerCache.high», а так же через параметр виртуальной машины -XX:AutoBoxCacheMax=.

+ vs append







Никогда не используйте операции конкатенации (оператор +) строки в цикле, особенно если таких операций у вас много, это может очень существенно снизить производительность. Все это происходит потому, что в приведенном выше примере «s = s + fileds[i]» выполняется целых 3 операции: создается StringBuilder на основе строки s, вызывается метод конкатенации append, после конкатенации вызывается метод toString (выглядит так: s = new StringBuilder(s).append(fields[i]).toString();). Целых 3 операции вместо одной! Помимо этого каждый результат s + fileds[i] будет занимать память в куче, как отдельная строка.

StringBuilder vs StringBuffer



Всегда ипользуйте StringBuilder, кроме случаев, когда вам необходимо использовать конкретно StringBuffer, так как в StringBuilder нету синхронизированных методов в отличие от StringBuffer и следовательно производительность будет выше, хоть и не значительно.

instanceOf



Старайтесь как можно реже использовать оператор instanceOf. Это один из самых медленных java операторов и подходить к его использованию нужно осторожно. Имейте в виду — чаще всего наличие этого оператора в коде означает непонимание принципов ООП, нежели попытка реализовать некий паттерн. Почти всегда полиморфизм способен помочь избавится от этого оператора.
P. S. Многие в комментариях аппелируют к «Это один из самых медленных java операторов». Это действительно так. Конечно, не совсем корректно сравнивать операторы языка по производительности, так как они выполняют абсолютно разные задачи, но, тем не менее, механизм работы instanceOf гораздо сложнее, например, оператора '*'.

Generics






Всегда старайтесь типизировать ваши коллекции, методы и классы. Это избавляет сразу от 2-х потенциальных проблем: приведение типов и ошибок выполнения. Также назначение таких коллекций легче воспринимать. Особенно часто этим пренебрегают мои американо-индусские коллеги. Если же ваша коллекция должна содержать обьекты разных типов — используйте <?>, а еще лучше <? extends someType> тогда зная общий класс/интерфейс для всех обьектов вам не прийдется делать приведение типов и применять оператор instanceOf.

Interface for Consts






Очень часто встречаются интерфейсы для описания констант. Это не правильно с точки зрения ООП. Интерфейс должен описывать поведение, не больше не меньше. Этот пункт не очень принципиален, тем более что результат компиляции будет один и тот же, но все же java это ООП язык и было бы хорошо придерживаться его принципов.

Override



Старайтесь использовать Override аннотацию для методов, которые переопределяют методы супер классов. Это позволяет сразу избежать опечаток и повышает читаемость кода (позволяет сразу понять, что у супер класса есть такой же метод не открывая родительский класс).

null vs empty



Всегда старайтесь в методах вашей бизнес логики возвращать пустые коллекции вместо null значений, это избавляет от лишних null-проверок и делает код чище. Для этого в классе Collections есть несколько замечательных методов:




В комментариях просят уточнить вариант применения. Типичный случай:





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

Преобразование чисел





      ©пизжено

@темы: Solution

17:43 

О наследовании в Java

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
Производный тип -- это всегда более конкретный вариант базового. Пускай вместо базового типа будет "Рыба", а вместо производного -- "Селёдка".

Тогда совершенно очевидно, что писать



можно: ваша `р` -- рыба, например, селёдка, почему бы и нет.

Но писать наоборот:



нельзя: рыба ведь не обязательно селёдка, правда?

Можно использовать преобразование типов:



Как проверить, рыба ли ваша селёдка? Этого не нужно: `Селёдка` наследник `Рыбы`, то есть каждая `Селёдка` обязательно `Рыба`.

Как проверить, селёдка ли ваша рыба? Очень просто:



      ©пизжено

@темы: Solution

22:24 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Ну вот, пособником террористов побывал, пехотинцем побывал, а теперь очередь артиллерии. На тренировочных занятиях и симуляторе получается нормально. При нормальных исходных данных 100% накрытие цели после первого же пристрелочного получается. Одно грусть навевает: пока укропитеки во всю утюжат наши передовые и гражданские объекты мы вынуждены сидеть в тылу и довольствоваться полигоном. А так бы объяснить им ошибочность их действий хочется.
      Процесс разработки автоматизированных средств подготовительных расчётов возобновился и перешел в скучную стадию подготовки данных для последующих расчётов. Благо исходники этих данных в виде Таблиц Стрельбы для равнинных и горных условий теперь есть в доступе. Да и варианты обеспечить полноценную кросс-платформенность данного решения так же появились. Жаль только опубликовать в общий доступ по очевидным причинам нельзя будет, во всяком случае до окончания этой войны.
      Может кто присоветует толковые часы по соотношению цена/качество со встроенными барометром и термометром окружающей среды, благо такие устройства в природе существуют? И варианты ими обзавестись, не имея возможности покинуть территорию конфликта.

@темы: Письма с войны

10:23 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
06.02.2016 в 03:11
Пишет Хромая Хельга:

Мимоходом
В три часа ночи в голову приходят самые разные мысли.. И знаете, я тут подумала.. Сейчас очень модно набивать себе штрихкоды. Так вот, я знаю парочку человек, которым пошло бы такое тату, со штрихкодом с пачки презервативов, например..)

URL записи

@темы: Юмор

18:08 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
Пишет Бледный:
05.02.2016 в 12:57


Ты завидуешь всё равно, неважно, сознательно или нет. Но во втором случае у тебя в наличии неконтролируемая эмоция, которая портит жизнь и может приводить к мудаческим поступкам (не именно тебя, а в принципе, людей), а в первом - понимание того, что и как происходит и в перспективе даже повод для личностного роста. Надо просто вытащить это чувство на поверхность. Само по себе оно вовсе не обязательно рационально, то есть ты вполне можешь понимать, что завидовать в принципе нечему и нахрен тебе не нужна такая морока - но всё равно испытывать его :) Так уж получилось в ходе эволюции, что наш мозг мы не полностью контролируем - отсюда и эта двойственность. Победить её нельзя, научиться толково с ней взаимодействовать - можно.

URL комментария

@темы: Словарь банальных истин

17:24 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Милгрэм доказал, что две трети цивилизованных людей будут пытать кого угодно, если некий социальный авторитет направит их на эту работу. Это важный факт для понимания устройства социума.
      © Розов А.А.

запись создана: 05.02.2016 в 16:55

@темы: The road so far..., Информация к размышлению, Перечитай...

17:16 

Спираль молчания

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Она развивается уже после просмотра заведомо-ложного TV-сообщения. Цивилизованные индивиды ушли от экранов и начали коммуникацию между собой, обсуждая данное событие. 75 процентов будут повторять мнение TV, а те индивиды, которые чуть более критичны и сомневаются в правоте TV, будут молчать, из страха получить от общества «желтую карточку» за выступление против большинства. И чем больше доля молчащих, тем сильнее тормоз страха, мешающий кому-либо высказаться против чучела общественного мнения. Лишь небольшое количество наиболее упрямых нонконформистов заявят иное мнение, но их будет окружать стена изоляции — если они каким-то чудом не прорвутся к mass-media в начале развития этой спирали молчания.
      — А где, — спросил Варлок, — граница абсурда, который можно внушить таким путем?
      — Абсурд, — ответил Метфорт, — граничит с зоной непосредственного восприятия. Так, например, TV не может внушить индивиду, что у всех людей стало три ноги. Индивид, наблюдая себя и своих близких, непосредственно видит две ноги. А вот внушить, что у жителей другого континента стало по три ноги — можно. Вне зоны непосредственного восприятия, степень абсурда очень мало влияет на долю поверивших, при условии, что нонконформисты не прорвались к mass-media. Если же они прорвались, пока спираль молчания еще не сформирована, то доля не верящих TV-мнению будет зависеть от того, насколько это мнение абсурдно. Это понятно, ведь индивиду придется выбирать между альтернативами, каждая из которых представлена в форме общественного мнения. Это известно политикам, и чем больший абсурд они хотят загрузить в мозги обывателя, тем жестче контроль лояльности для репортеров, допускаемых к освещению темы на TV.
      © Розов А.А.

запись создана: 05.02.2016 в 16:56

@темы: The road so far..., Информация к размышлению, Перечитай..., Спираль истории

17:12 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Технологии в развитых странах к концу XX века достигли уровня, при котором доля работников, занятых в производстве и транспортировке материальных благ, снизилась примерно до 10 процентов от общей численности людей трудоспособного возраста. И, соответственно, 90 процентов людей получили работу в сфере обслуживания Великого Сортирного Клапана, регулирующего круговорот виртуальных ценностей в обществе, периодически сливая избыток в унитаз, а затем открывая поток в бачок. В глобальной финансово-экономической теории это называют «цикличностью мировой экономики». Собственно, акты слива называют кризисами. Когда устаревший клапан, несмотря на усилия миллиардов служителей, начинает барахлить, происходит супер-кризис. Тогда приходится включать ремонтный героизм. Например, устраивать управляемую войну.
      © Розов А.А.

запись создана: 05.02.2016 в 16:51

@темы: The road so far..., Информация к размышлению, Перечитай..., Спираль истории

17:08 

Западные стандарты образования, говорите?!

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      В 2003 году доктор Кен Робинсон доказал: современная школа Первого мира превращает детей в примитивные и ненадежные механизмы, проще говоря — в дебилов-невротиков. Он исследовал результаты теста на изобретательность: сколько способов применения канцелярской скрепки вы можете предложить? Средний взрослый житель Первого мира изобретает дюжину способов, а житель с интеллектом около максимума, практически, гений способен на две сотни таких изобретений. Теперь парадокс: среди дошкольников оказалось 98 процентов гениев в смысле этого теста. Среди детей, уже окончивших младшую школу — 50 процентов. После окончания школы полного цикла, количество гениев упало до крайне малой величины. Может, для этого их и держали в государственной школе столько лет? Доктор Робинсон исследовал также массовое применение таблеток в школе. Врачи прописывают детям транквилизаторы в порядке лечения от «синдрома гиперактивности». Фактически, их лечат от нормальной детской неусидчивости, чтобы облегчить педагогам задачу преподавания скучных и ненужных предметов. Дети становятся усидчивыми, внимательными и послушными.
      © Розов А.А.

запись создана: 05.02.2016 в 16:54

@темы: Перечитай..., Концепт, Информация к размышлению, The road so far...

01:31 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
28.01.2016 в 01:07
Пишет skuratov-belsky:

Эта 10


URL записи

@темы: Юмор

17:55 

Шикарная подборка!

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
27.01.2016 в 01:56
Пишет Кэналлийский Воронёнок:

Уволок ржачей - добро пропасть не должно:)!
26.01.2016 в 21:10
Пишет MirrinMinttu:

Посмеяться на ночь
Отсюда: jaerraeth.livejournal.com/549949.html

- Какая у вас странная шпага, сударь...
- Это арматура, мсье.

===

читать дальше

URL записи

URL записи

@темы: Юмор

10:04 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
14:11 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
22.01.2016 в 10:53
Пишет skuratov-belsky:

Валера, настало твоё время! ©


URL записи

@темы: Юмор

00:46 

Сюрреализм

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Зима, холод, затерянная на картах деревня, в которой хорошо, хоть электричество есть, полуразвалившееся здание администрации местного колхоза 1969 года постройки, самопальный ремонт, отопление дровяное(буржуйки), вода привозная(в том числе и техническая).
      Буржуйка, самопальные скамейка и лавочка, на лавочке на подставке планшет с подключенной внешней клавиатурой, на планшете открыт онлайн-курс обучения программированию на %program_language_name%.
      Подключение к сети интернет: wi-fi router Netis -> Micro-tik wi-fi transmiter -> provider_name_network -> ... -> internet.
      Так выгляди прямо в данный момент одно из расположений "террористов" Новороссии.

@музыка: Пикник - Мракобесие и джаз.

@темы: Дым и зеркала, Какая страна, такие и..., Письма с войны

04:32 

Тяжелая ночь...

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      ... с одной стороны отпраздновать новый год в своих традициях удалось; со второй у товарищей настроения не было, и потому не вышло именно в эту ночь отдохнуть; ну и с третье обоснованная готовность к разным сюрпризам, объявленная не только нашим мудаком-взводным из любви непонятно к чему, но и на уровне полка согласно донесениям разведки... Похоже грядущий год, минимум согласно приметам, расслабиться не даст.
      По итогам года имею что сказать, но единственное, что для общественности - ожидайте опен.сорс контента, на который здесь, по готовности оного, так же ссылка с описанием появятся.

@темы: Информбюро, Письма с войны, Такой вот праздник... (с), Путевые заметки

16:36 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
16.12.2015 в 14:35
Пишет Кэналлийский Воронёнок:

Блин, точно оно:)!
16.12.2015 в 03:52
Пишет Джудас:

Диагноз


URL записи

URL записи

@темы: Self-Досье

21:15 

Звездочка на борт.

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Сегодня один пьяный водятел попытался на семерке взять в лобовой таран наш мирно припаркованный на обочине "Урал". Водятлу повезло: отделался лёгким испугом и разбитой фарой на своём пепелаце.

@темы: Письма с войны, Юмор:Жизнь

23:05 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
      Те, кто оправдывают худшие формы понижения статуса других людей, часто рассматривают своих жертв как животных (причем не самых привлекательных); иногда о жертвах говорят как о неодушевленных, оскорбляющих наши чувства предметах, называя их отбросами или накипью. Возмущение или оскорбление могут также оправдывать кровопролитие или даже пытки.
      © Пол Экман

@темы: Перечитай...

16:26 

У нас нет места для надежды. Мы планируем и действуем. Надежда лишь для мечтателей и поэтов. У нас есть сила воли и оружие и мы сами будем вершить свою судьбу. © Корвус Коракс, Примарх Гвардии Ворона.
04.12.2015 в 03:44
Пишет Кэналлийский Воронёнок:

Мамо!!!:)))) Это прекрасно, ящетаю:)!
03.12.2015 в 23:45
Пишет Вук Задунайский:

Ётун тебя подери, это прекрасно!
03.12.2015 в 21:29
Пишет Эрл Грей:

БЕОВУЛЬФ (рождественская история)
...Где река выписывает крендель на пути в безбрежный океан, жил да поживал в трясине Грендель и его почтенная маман. читать дальше

the-mockturtle

URL записи

URL записи

URL записи

@темы: The road so far..., Юмор

Смутные телеги для перевозки тараканов

главная