Java на habrahabr

Апрель 19, 2014

 

Организация вебсокетного взаимодействия с приложением Spring


Скажу сразу, что стандартная реализация такого взаимодействия — существует.

Однако, поскольку эта статья — продолжение темы "Простой вызов удалённых сервисных методов в одностраничных приложениях", здесь будет приведена альтернативная схема взаимодействия, необходимая для замены ajax на вебсокеты, в контексте подхода(jrspc), описанного в вышеупомянутой теме.

В первой статье — был описан механизм вызова сервисных методов, с использованием ajax.

В этой статье — описано, как можно реализовать данный механизм, с заменой ajax на вебсокеты,
не меняя код бизнес-логики приложения.

Такая замена даёт более быстрое соединение(тесты в конце), экономию серверной памяти, и добавляет возможность вызывать методы клиента с сервера.

Для демонстрации, написано небольшое чат-приложение, с исходным кодом на гитхабе.
на примере разбора которого, я попытаюсь объяснить, как реализованы клиентская и серверная части такого взаимодействия.
Приложение работает на сервере tomcat 7.042.
Поддерживает https и wss (сертификат неподтверждённый), и не ведёт логов на сервере.
разобраться

Java на habrahabr

Апрель 17, 2014

 

[Из песочницы] Создание standalone библиотеки под android


В этой статье я расскажу как создать библиотеку, которая использует другие библиотеки и при этом уместить всё в одном jar.

Допустим мы пишем библиотеку, она использует другие библиотеки и, в частности, для примера, support library. Если бы мы использовали maven, то в pom файле просто прописали зависимости и не парились. Но что если нашу библиотеку будут использовать люди, которые не пользуются системами сборок или пользуются ant' ом?

Мы можем положить зависимости рядом с нашим jar. Но тогда неизбежны конфликты библиотек разных версий, например, если мы используем одну версию support library, а в самом приложении другая. Тогда придется руками одну из них удалять.

Можно пойти другим путем, вспомним что jar это обычный zip файл. Мы распакуем все зависимости, добавим код нашей библиотеки и скомпилируем. На выходе получим цельный jar файл со всеми зависимостями. Но если в приложении используются те же библиотеки что и у нас, то получим ошибку что в проекте два одинаковых класса.
Читать дальше →

Java на habrahabr

Апрель 16, 2014

 

Полезные приёмы работы с Apache Camel


Если вам приходилось создавать интеграционные решения на Java, наверняка, вам знаком замечательный Java framework под названием Apache Camel. Он с лёгкостью осуществит связку между несколькими сервисами, импортирует данные из файлов, баз данных и прочих источников, оповестит вас о различных событиях в Jabber-клиент или по E-mail, станет основой для композитного приложения на базе большого числа других приложений.
Далее

Java на habrahabr

Апрель 16, 2014

 

Пара слов о числах с плавающей точкой в Java



Несколько дней назад мне на глаза попался занимательный такой вопрос, касающийся того, каков будет результат выполнения данного кода:
double a = 2.0 - 1.1;
или такого:
double f = 0.0; for (int i=1; i <= 10; i++) { f += 0.1; }
Вопреки всем моим ожиданиям, ответ: 0.89999999999999991 в первом случае и 0.99999999999999989 во втором.
Для тех, кто хочет узнать почему, а так же еще несколько занимательных фактов про этот тип данных, милости просим.

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

Java на habrahabr

Апрель 16, 2014

 

Песнь о Java


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

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


музыка Влад Горелов
производство — студия Лекториум

А теперь серьёзно

ru.java на livejournal

Апрель 15, 2014

 

Java-рэп

Всем привет! У нас тут 18 апреля в Москве конференция по Java, крупнейшая и сильнейшая в России, и мы по этому поводу давеча неплохо упоролись. Я понимаю, что нынче не пятница, но сорри, очень хочется похвастаться. Короче вот:



Трек записал Влад Горелов, он же снялся в роли Java-хипстера.
Монтаж и съёмка ролика — студия Лекториум.
Командовал парадом JUG.ru.

Java на habrahabr

Апрель 14, 2014

 

Изменения в String. Java 7


Всем привет. Последние события в Украине как-то отбросили меня от хабра, но вот, все, более менее, наладилось и я, вернувшись к привычному ритму работы, вспомнил о парочке своих постов в черновиках. В связи с выходом 8-й версии явы, пост, возможно, уже несколько устарел, но не пропадать же добру.
Итак, как-то вечером, оптимизируя очередной кусочек кода — случайно заглянул в String и обнаружил, что класс строки уже не тот. Так как строка, пожалуй, один из самых распространенных типов, думаю многим будет интересно узнать об изменениях.

Оптимизирован метод String.split()

Метод split строки стал быстрее работать для односимвольного параметра. Теперь в методе вообще не будет использоваться регексп и будет применен indexOf в цикле.
Было:
public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); }
Стало:
public String[] split(String regex, int limit) { if (((regex.value.length == 1 && ".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) || ...)) { ... while ((next = indexOf(ch, off)) != -1) { ... } ... return result; } return Pattern.compile(regex).split(this, limit); }

2 поля удалены

Начиная с 6-го апдейта 7-й явы из класса строки были удалены 2 поля:
private int offset; private int count;
Как вы, наверное, помните эти поля использовались при вызове метода substring. Назначение полей — уменьшение сложности метода и попытка избежать создания нового массива символов строки используя ссылку на уже существующий массив. Что, в свою очередь, в некоторых ситуациях могло порождать известную утечку памяти. Теперь же размер строки на 8 байт меньше и проблема утечки навсегда решена.

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

Java на habrahabr

Апрель 9, 2014

 

Программа курса «Java Core»


Я занимаюсь онлайн обучением Java и хотел бы вынести на обсуждение новую программу курса Java Core.

Программа курса


Курс состоит из 45 лекций разбитых на 9 модулей по темам
  • Модуль: Основы
    • Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
    • Лекция #1.2: массивы, java.lang.String, format
    • Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
    • Лекция #1.4: порядок выполнения операторов, построение internal DSL
  • Модуль: Процедурное программирование
    • Лекция #2.1: Циклы, итеративные алгоритмы
    • Лекция #2.2: Рекурсия I, основы
    • Лекция #2.3: Рекурсия II, проектирование рекурсивных алгоритмов
    • Лекция #2.4: Динамические структуры данных
    • Лекция #2.5: Память в Java: stack, heap, PermGen/Metaspace
  • Модуль: Исключения
    • Лекция #3.1: try-catch-finally
    • Лекция #3.2: checked/unchecked
    • Лекция #3.3: Internals and handling
    • Лекция #3.4: Java 7: try-with-resources
    • Лекция #3.5: Most popular exceptions in JDK

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

    Java на habrahabr

    Апрель 9, 2014

     

    DEV Labs 2014. ОНЛАЙН конференция для JAVA разработчиков


    Приглашаем принять участие во второй в этом году конференции серии DEV Labs. Мероприятие состоится 19 апреля и будет полностью посвящено разработке на языке Java. Формат конференции – один день, 4 – 6 докладов, от 45 минут до 1.5 часов на каждое выступление. После каждого доклада запланированы сессии для вопросов. Цель конференции остаётся неизменной – мы хотим поделиться собственным опытом решения нетривиальных задач и услышать мнение коллег по цеху.

    Утверждённые доклады конференции:

    • Модульное тестирование «нетестируемого» кода. Решение с помощью инструментов JMockit и PowerMock;
    • Новое в Java 8. Подробный разбор лямбда выражений и Stream API;
    • Как выбрать библиотеки для современного Web-приложения на Java. Поиск эффективных Java-компонент;
    • Весна идёт, весне — дорогу! Новое в Spring Framework.


    Начало первого доклада в 12:00 по московскому времени.
    Читать дальше →

    Java на habrahabr

    Апрель 9, 2014

     

    [Из песочницы] GWT, Java 8 и Future


    Добрый день.
    Думаю, многие из вас знают о выходе Java 8, и о том, какие нововведения она несет. К сожалению, последняя версия GWT(2.6.0) на данный момент до сих пор не поддерживает лямбды и default-методы в интерфейсах. Поскольку фреймворк GWT довольно востребован, многим приходится часто сталкиваться с разработкой именно на нем, мне не терпелось попробовать писать на GWT с использованием вновь добавленных в язык фич.
    Читать дальше →

     
    << < 1 из 161 > >>