Мне было интересно, какие коллекции сколько съедают дополнительной памяти при хранении объектов. Я провёл замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

Читать полностью »
Рубрика «java» - 286
Функциональное мышление: Переосмысление диспетчеризации
2012-12-04 в 0:00, admin, рубрики: clojure, functional programming, groovy, java, scala, функциональное программирование Нил Форд, Архитектор ПО, ThoughWorks Inc.
21 августа 2012
перевод статьи Functional thinking: Rethinking dispatch
В прошлой части, я исследовал использование Java дженериков для имитации поиска-по-образцу как в Scala, который позволяет писать понятные, читаемые условные выражения. Поиск-по-образцу в Scala один из примеров альтернативного механизма диспетчеризации, который я использую как термин в широком смысле для описания возможностей языка динамически определять поведение. Эта часть более подробно рассматривает механизмы диспетчеризации методов в различных функциональных JVM языках предоставляя больше понимания и гибкости в сравнении со средствами Java.
(прим. перевод.: dispatch method mechanism, перевод диспетчеризация методов очень часто используется, однако попадается литература по Java, которая переводит термин как назначение методов, однако я использую первый)
Простейшая триангуляция на Java
2012-12-03 в 16:16, admin, рубрики: java, Алгоритмы, Программирование, триангуляция, метки: c++, java, Алгоритмы, Программирование, триангуляция Все доброго времени суток!
Хочу рассказать об одной интересной проблеме и ее решении, которое я применил в одном из своих проектов.
Суть проблемы такова:
Есть несколько детекторов сигнала (допустим, базовые станции GSM). И эти детекторы присылают на сервер уровень сигнала для некоего источника. Необходимо вычислить и отобразить на карте координаты источника
Если вам интересно, как это сделать, добро пожаловать под кат.
Читать полностью »
Книги, которые должен прочитать Java программист: от новичка до профессионала
2012-12-03 в 12:55, admin, рубрики: java, junior, middle, век учись - дураком помрешь, вечный студент, образование, переводы, Программирование, программистКниги, которые должен прочитать Java программист: от новичка до профессионала
[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]
Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )Читать полностью »
О компонентах и интерфейсах. Java
2012-12-03 в 7:48, admin, рубрики: java, интерфейсы, компоненты, Программирование, Проектирование и рефакторинг, проектирование интерфейсов, метки: java, интерфейсы, компоненты, проектирование интерфейсовВступление
В предыдущей статье я написал о разных способах оформления интерфейсов к компонентам и сокрытия их реализации в C++.
В этой статье расскажу вкратце, как в Java отделить интерфейс от реализации, а реализацию скрыть.
Я не буду рассматривать компоненты разных там Java EE, я рассмотрю самые обычные jar-ники-библиотеки.
Итак.
Читать полностью »
Функциональное мышление: Either деревья и сопоставление-по-образцу
2012-12-02 в 19:01, admin, рубрики: functional programming, java, scala, функциональное программирование Нил Форд, Архитектор ПО, ThoughWorks Inc.
10 Июля 2012
перевод статьи Functional thinking: Either trees and pattern matching
В прошлой части я представил распространенную абстракцию в мире функционального программирования: Either. В этой части, я продолжу исследование Either, используя его для построения древовидных структур данных — которые в свою очередь, позволят мне имитировать сопоставление-по-образцу(pattern-matching), характерное в Scala, для построения методов обхода.
Читать полностью »
Фунциональное мышление: Функциональная обработка ошибок с помощью Either и Option
2012-12-01 в 19:00, admin, рубрики: functional java, functional programming, java, scala, функциональное программирование Нил Форд, Архитектор ПО, ThoughWorks Inc.
12 Июня 2012
перевод статьи Functional thinking: Functional error handling with Either and Option
Когда вы занимаетесь исследованием глубоких тем как функциональное программирование, появляются увлекательные ответвления. Я продолжаю свою мини серию переосмысления традиционных шаблонов проектирования банды четырех (GoF, Gang of Four) в функциональном стиле. Я продолжу исследование в следующей части, раскрыв поиск по образцу в Scala (pattern-matching), но для начала мне необходимо построить фундамент с помощью концепции Either. Одно из применений Either обработка ошибок в функциональном стиле, которое я разберу в этой части. После того как вы поймете магию, которую Either применяет к ошибками, я вернусь к поиску по образцу и деревьям в следующей части
В Java, ошибки традиционно обрабатываются исключениями, которые поддерживаются на уровне языка, и обеспечивающие всю необходимую работу. Однако, что делать если структурная обработка исключений не существует? Многие функциональные языки не поддерживают парадигму исключений, поэтому они должны искать способ описать состояние ошибки. В этой части, я покажу типобезопасные механизмы обработки ошибок в Java, которые обходят привычный механизм исключение-обработка (с помощью некоторых классов из фреймворка Functional Java)
Быстрый способ установки Java Oracle на Linux
2012-11-28 в 7:02, admin, рубрики: java, linux, системное администрирование, метки: java, linux Привет!
В сети есть достаточно информации по установке Java Oracle. Но, на мой взгляд, способ, описанный ниже, самый удобный. Причина удобства — не нужно заходить на сайт Oracle, регистрироваться и выкачивать установочный файл и в то же время нет необходимости хранить его где-нибудь у себя локально.
Процесс установки сводится к запуску одного скрипта.
Читать полностью »
Кастомизация Jira и Confluence с помощью плагинов
2012-11-27 в 8:27, admin, рубрики: atlassian, java, jira, Блог компании Mail.Ru Group, разработка, метки: atlassian, java, jiraПрактически все организации, где необходимо вести документацию и управлять бизнес-процессами, сталкиваются с необходимостью выбора и настройки софта, который облегчает эти процессы. Jira и Confluence от компании Atlassian Software достаточно популярны на российском рынке. Однако в своей дефолтной конфигурации они не могут решить все задачи, стоящие перед организацией – ведь у каждого своё видение процессов работы. Кроме того требования кастомизировать Jira растут по мере использования продукта.
Я работаю разработчиком Jira/Confluence в Mail.Ru Group, и хочу поделиться опытом написания плагинов Jira и Confluence: что можно сделать, как сделать и о чём нужно не забыть.
О чем я расскажу
Здесь будет опубликовано несколько постов, посвященных разработке различных компонентов. Плагины и исходный код можно найти здесь.
Описание плагинов будет включать:
- пользовательские поля (custom fields), обработчики событий (listeners);
- сервлеты (servlets) и REST, программирование workflow.
Java Native Interface. C++. Linux. Первые шаги
2012-11-26 в 13:49, admin, рубрики: c++, java, jni, linux, Песочница, метки: c++, java, jni, linux На хабре уже были подобные статьи, но для Windows и «ничего не понятно» для новичков вроде меня. В принципе ничего сложного нет, но есть где споткнуться и на долго засесть в поисковиках, как было со мной.
Читать полностью »
