Обновить
512K+

Java *

Объектно-ориентированный язык программирования

232,03
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Джокер поднимает ставки

Время на прочтение4 мин
Охват и читатели11K
Всем привет!

Итак, близится осень, а значит, вместе с ней близится и Java-конференция Joker 2014. Нынешний Джокер, второй по счёту, пройдёт в Питере 20-21 октября. На следующий день, 22 октября состоится традиционный Unconference, а 23 октября мы проведём JUG с кем-нибудь из наших спикеров.

Чем же интересен Joker образца 2014 года? Прежде всего тем, что подбирается очень и очень вкусный список тем, а от списка докладчиков некоторые особенно впечатлительные падают в обморок и спрашивают, возможно ли такое. Отвечаем: возможно!



Joker 2014 — это главное Java-событие года в России:
  • Более 30 докладов от экспертов мирового уровня. Если докладчик — не эксперт мирового уровня, то скорее всего, он не попадёт к нам в программу.
  • Возможность пообщаться с разработчиками самой технологии Java. Причём как из OpenJDK/OracleJDK, так и альтернативных реализаций: Azul, Excelsior, Red Hat
  • Огромная русскоязычная Java-тусовка. Ваши друзья, сокурсники, бывшие, нынешние и будущие коллеги.
  • Выступления по-настоящему больных на голову творческих людей, среди которых Влад Горелов со своим научно-техническим рэпом и невероятный супергерой Джигурдокер.


Интересно? Тогда добро пожаловать под кат!
Why so seriuos?

Реактивные акторы на java

Время на прочтение17 мин
Охват и читатели43K
Существует много технологий для организации параллельных вычислений, одна из наиболее перспективных и простых (да-да) — модель акторов. Она позволяет частично избавится от насущных проблем параллелизма, вроде состояния гонки, блокирующих ожиданий окончания операций, бесконечных мьютексов и синхронизаций и многого иного. Так же подобный подход существенно облегчает распараллеливание кода.

Знакомится будем на примере фреймворка akka используя язык java (сам akka написан на scala).
Читать дальше →

Вы находитесь в стране, на которую распространяется эмбарго. Загрузка Java невозможна

Время на прочтение1 мин
Охват и читатели154K


Привет, Хабр!

Чуть-чуть пост не дотянул до пятничного, а ведь тема достойная.

Невозможно загрузить Java(TM) на данный компьютер. Вы находитесь в стране, на которую распространяется эмбарго.

Именно такую надпись вы получите при попытке скачать JVM с java.com, находясь на территории России.

Не верите? Убедитесь сами: www.java.com/ru/download

На случай, если вам не повезло и вы не находитесь в России, то не стоит расстраиваться. Смотрите EDIT5.

P.S. Хабр — не для политики, поэтому прошу избежать её обсуждения в комментариях. Спасибо.
Читать дальше →

Взломать мобильную онлайн игру? Легко!.

Время на прочтение24 мин
Охват и читатели701K
Привет, хабр! Сегодня я расскажу вам о том, с чем вы можете столкнуться, если вдруг решите залезть в дебри чужого приложения на Android (в данном случае, онлайн игры). Приключения с просмотром Java-классов в .dex, изучение оп-кодов Dalvik и даже программирование в двоичном коде. Но обо всем по порядку.

Под катом трафик на ~800кб, 293 из которых – скриншоты кода (!)
Господи, кто же сохраняет код скриншотами

Состоялась вторая встреча сообщества JUG.EKB

Время на прочтение1 мин
Охват и читатели1.7K
29 июля представители Java сообщества собрались уже во второй раз, для того, чтобы пообщаться в неформальной обстановке и обменяться опытом. Площадкой для мероприятия стал уютный коворкинг «Соль», с настоящими домашними тапочками, пуфиками и угощениями. Партнером мероприятия выступила компания Naumen.

Напоминаем, JUG – это Java User Group, встречи JUG.EKB — это обсуждение различных технологий из мира Java, обмен опытом, а также просто интересное общение!

Вниманию слушателей были представлены два доклада:
Хитрин Андрей, компания Naumen, с докладом «Оковы тяжкие падут: как перевести сборку проекта с Ant на Gradle?»
Роман Елизаров, специально приглашенный гость из Санкт-Петербурга, компания Devexperts, с докладом «Миллионы котировок в секунду на чистой Java».
Доклады вызвали волну вопросов, так, что их обсуждение продолжилось даже на афтепати. Также с успехом прошла серия коротких докладов — lightning talks

Ознакомиться с докладами подробнее можно на сайте jugekb.ru, а фото с мероприятия в группе ВКонтакте vk.com/jugekb?z=album-61807294_199836894

Если у кого-то не получилось прийти, мы выложим видео на сайте или в группе ВК.
С нетерпением ждем Вас на следующей встрече JUG.EKB!

Читать дальше →

По следам Spring Pet Clinic. Maven/ Spring Context/ Spring Test/ Spring ORM/ Spring Data JPA

Время на прочтение8 мин
Охват и читатели49K

Здравствуйте!
Spring MVC, согласно обзору инструментов и технологий Java за 2014 г. от RevbelLabs, является самым популярным веб фреймворком.
Далее тот же обзор называет лидера ORM — Hibernate и лидера веб-контейнеров — Apache Tomcat. Добавим сюда самую используемую java script библиотеку jQuery, самый популярный css фреймворк Bootstrap, до сих пор самую популярную (несморя на наступление Gradle) инструмент сборки Maven, абсолютный лидер среди тестовый фреймворков JUnit и получим пример приложения на Spring от его создателей:
Spring Pet Clinic (демо приложение).
Кроме перечисленного, в этот достаточно несложный по функциональности проект влючены также Spring-Jdbc, Spring-ORM,
Spring Data JPA,
Hibernate Validator,
SLF4J,
Json Jackson,
JSP,
JSTL,
WebJars,
Dandelion DataTables,
HSQLDB,
Hamcrest,
Mockito и десятки других зависимостей.
Читать дальше →

Обучение программированию на Java с помощью автоматических тестов

Время на прочтение2 мин
Охват и читатели59K
Началось все с простого — один мой друг захотел писать проги на яве. Естественно, что просто выучив синтаксис языка, никакого опыта в программировании не наберешся, и потому нужно просто писать уже хоть что-нибудь. Вот я и обдумывал вопрос, что же лучше всего подойдет для этого. Я пришел к выводу, что самое лучше в начале пути, на мой взгляд, это создать простенький класс который бы описывал абстрактную «сущность», но при этом был прост в понимании. В итоге было решено выдать тренировочное задание по написанию самопального класса комплексного числа.
Конечно можно было бы просто написать на листочке все требования к этому классу, описать интерфейс всех его методов и тому подобное, однако потом это пришлось бы проверять, и при этом очень даже вероятно что проверять по нескольку раз, так как товарищ только обучается.
Но тут меня потянуло в сторону экспериментов, а так как я нетак давно заинтересовался TDD, то и эксперименты пошли в ту же степь.
Читать дальше →

Перетягивание «Верблюда» или интеграция средствами Camel. Часть 2

Время на прочтение14 мин
Охват и читатели27K

Сценарии интеграции с Apache Camel



Сколько вы знаете шаблонов интеграции приложений(EIP)? Сколько из них вы можете использовать?

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

Если вы знакомы с шаблонами, но решаете стоит ли связываться с «верблюдом», то наши примеры помогут разобраться. Если вам интересен путь от сценариев использования к реализации интеграции, то эта статья как раз об этом. Прошу под кат.
Читать дальше →

Gson или «Туда и Обратно»

Время на прочтение25 мин
Охват и читатели199K
Недавно мне пришлось поработать с библиотекой Google Gson, предназначенной для преобразования Java-объектов в текстовый формат JSON (сериализация) и обратного преобразования (десереализация). Часто при работе с Gson хватает стандартных настроек библиотеки, но бывают случаи (в том числе мой), когда необходимо кастомизировать процессы преобразований.

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

Для начала нужно выбрать какую-нибудь предметную область. Скажем, не знаю, почему-то приходят в голову мысль про отряд гномов. Собственно, почему бы и нет?


За синие горы, за белый туман...

Программа и материалы курса «Multicore programming in Java»

Время на прочтение5 мин
Охват и читатели34K
Добрый день.
Меня зовут Головач Иван, я буду уже второй раз вести спецкурс-вебинар «Multicore programming in Java». В этой статье предлагаю на рассмотрение программу курса и наиболее полезные ссылки по вопросам многопоточности в Java.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Кратко о курсе: стартует 1 сентября, ведется в режиме вебинаров дважды в неделю (понедельник + четверг) в 19.00-22.00 (по московскому времени), состоит из 16 лекций по 2.5 часа (=40 лекционных часов), рассчитан на Java Middle.

1. Модуль #1: Между hardware и New JMM
1.1 Программа модуля
1.2 Литература к модулю
2. Модуль #2: java.util.concurrent
2.1 Программа модуля
2.2 Литература к модулю
3. Модуль #3: Fork/Join Framework + Parallel Streams
3.1 Программа модуля
3.2 Литература к модулю
4. Модуль #4: “Неклассические архитектуры”
4.1 Программа модуля
4.2 Литература к модулю
Читать дальше →

Собеседование на должность Automation QA Engineer

Время на прочтение4 мин
Охват и читатели216K
image

Вот и у меня нашлась тема, которой я могу поделиться с Хабр сообществом. Надеюсь, данная статья получится не только познавательной, но и интересной.

Входные данные:
Локейшн: Днепропетровск.
Позиция: Junior Automation QA Engineer.
Технологии: C#, Selenium, MSTest, TeamCity, Hibernate.


Так получилось, что пару месяцев назад я оказался на лавке запасных в одной большой компании. Клиент решил поделить нашу команду автотестеров на 2 (хорошо, что не на ноль) и так как у меня на этом проекте срок работы был невелик, то я попал в резерв. Внутренних проектов не ожидалось, а в резерве обычно сидеть скучно и невыгодно в денежном плане. Так я начал ходить на интервью.
Читать дальше →

Перетягивание «Верблюда» или интеграция средствами Camel. Часть 1

Время на прочтение11 мин
Охват и читатели31K

История одного проекта.



Вам когда-нибудь снились верблюды? Вот и мне тоже нет. Но, когда работаешь с Camel-ом уже третий год, начинают сниться не только верблюды.
В общем, буду делиться опытом, писать о верблюдах и учить вас их готовить. Это серия статей в трёх частях: первая часть будет для тех, кому интересны истории и муки творчества; вторая — больше техническая, о паттернах интеграции, их применении и третья часть — об ошибках и отладке.
Если вам нужно объединить ваши сервисы, здесь вы узнаете, чем хорош Camel. Если вы хотите научиться использовать что-нибудь новенькое, здесь мы начнём с азов. Если вам нравятся истории и оригинальные фишки, которые есть в каждой команде, то читайте дальше.
Читать дальше →

Java Garbage Collection на облачном хостинге Infobox Jelastic

Время на прочтение7 мин
Охват и читатели6K
Производительность и цена – это два основных, наиболее значимых фактора в хостинге приложений. Мы часто спрашиваем себя, как тратить меньше, не ухудшая производительности приложений. В данной статье мы рассмотрим автоматическое управление памятью для Java-приложений, размещенных на облачном хостинге Infobox Jelastic с использованием сборки мусора и Jelastic GC Agent. В конце статьи небольшой сюрприз.

Infobox Jelastic reduce costs

Для начала определим, что такое сборка мусора и что она делает для нашего Java-приложения. Затем поговорим подробнее от процессах сборки мусора в Jelastic.
Читать дальше →

Ближайшие события

Время против памяти на примере хеш-таблиц на Java

Время на прочтение3 мин
Охват и читатели18K
Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

Читать дальше →

Java Agent на службе JVM

Время на прочтение5 мин
Охват и читатели68K

Наверное многие слышали или сталкивались с таким параметром JVM как -javaagent, увидеть этот параметр вы могли используя Jrebel или Plumbr это могло выглядеть например так JAVA_OPTS=-javaagent:[path/to/]jrebel.jar или так -javaagent:/path-to/plumbr.jar
Хотя javaagent появился еще в версии java 1.5, многие разработчики так никогда и не использовали возможности агентов и имеют смутное представление что это такое.
Что же это за агент? Зачем он может нам понадобиться и как написать свой?
Читать дальше →

Анонс второй встречи Java User Group Екатеринбург

Время на прочтение2 мин
Охват и читатели2.2K
Привет, Хабр!

JUG — Java User Group, встречи JUG.EKB — это обсуждение различных технологий из мира Java, обмен опытом, а также просто интересное общение!
Мы регулярно проводим встречи JUG.EKB с лекциями Java экспертов на самые интересные темы.
Наш сайт jugekb.ru, сообщество в ВК — vk.com/jugekb.

Приглашаем всех java разработчиков на вторую встречу JUG.EKB.
Читать дальше →

Меняем Java на Scala. Базовое приложение

Время на прочтение16 мин
Охват и читатели33K
Здравствуй, Хабр.

Лето на дворе, скоро отпуск и появилось немного свободного времени поделиться наработками, каким-то опытом по написанию Web приложений на Java платформе. Как основной язык я буду использовать Scala. Это будет похоже на небольшой гайд, как человеку с опытом Java постепенно начать использовать Scala и не отказываться от уже имеющихся у него наработок.

Это первая часть из серии статей, в которой мы уделим внимание базовой структуре приложения. Ориентирована на людей знающих Java, работавших со Spring, Hibernate, JPA, JSP и другими 3-4ех буквенными сокращениями. Я попытаюсь рассказать как максимально быстро и безболезненно начать использовать Scala в ваших проектах и по-другому проектировать ваше новое приложение. Все это будет вокруг проекта, который должен выполнять ряд требований:
1. Приложение полностью закрыто, работаем только после авторизации
2. Наличие удобного API (REST мы забудем (он уже история) и напишем что-то вроде Google AdWords API, со своим SQL like запросником)
3. Возможность запуска на сервере приложений так и без него
4. i18n
5. Миграция БД
6. Среда для разработки должна разворачиваться через Vagrant
7. И, по мелочи, логирование, развертывание…

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

Читать дальше →

Боитесь ли вы Gradle так как боюсь его я?

Время на прочтение2 мин
Охват и читатели17K
Скажу сразу — в Gradle я совсем новичок.
Пол рабочего дня, вместо того, чтоб писать код содержащий мою семью, я потратил на то, чтобы узнать что из 150-ти строк конфига, надо было исправить одну, поменяв classpath 'com.jakewharton.sdkmanager:gradle-plugin:+ на com.jakewharton.sdkmanager:gradle-plugin:0.10.1.
Программа вчера запускалась а сегодня перестала. А знаете что я сегодня сделал не так? А ничего. Абсолютно тот же код и те же конфиги. Ни одного файла не менял.
Смышленый или опытный программист уже догадался что знак "+" — значит что надо загрузить самую последнюю версию библиотеки и загрузилось что то не то. Да это часть проблемы, но не вся. Сама библиотека ничего не портила. Она просто имела зависимость от другой — которая портила.
Да и вообще, что за мода выкладывать не оттестированные библиотеки в общий репозиторий? При Мавене такого не было!
Читать дальше →

SSO используя Jasig CAS Server 4.0.0. Часть 2

Время на прочтение4 мин
Охват и читатели5.5K
Мы уже подняли сервер Jasig CAS теперь пора немного его кастомизировать. Зачем это нужно? Сейчас ми авторизируемся используя статического пользователя, но мы это исправим и сделаем возможность получать пользователя из внешних систем или БД.
Читать дальше →

Spring и @Autowired для ENUM-типов. Факультатив

Время на прочтение4 мин
Охват и читатели22K
Как известно, в Spring нельзя сделать бины для перечисляемых типов без «костылей» — у этого типа «нет» конструктора.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoEnum0' defined in file [...\DemoEnum0.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ru.itbasis.demo.spring.enums.DemoEnum0]: No default constructor found; nested exception is java.lang.NoSuchMethodException: ru.itbasis.demo.spring.enums.DemoEnum0.<init>()

(коммит)

В данном посте я попробую обойти это ограничение.
Читать дальше →