Обновить
512K+

Java *

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

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

Баг Double.parseDouble() в Android

Время на прочтение2 мин
Охват и читатели27K
В поисках эпизодически вылезающей ошибки, наткнулся на неожиданное поведение метода Double.parseDouble(). Исполнение кода
Double.parseDouble("4cff9d79-a696-4dfc-89f9-a265ae117257");

не привело к выбрасыванию исключения NumberFormatException. Код вполне корректно отработал и выдал результат — Infinity.
Читать дальше →

Java и облако Microsoft — краткие очерки

Время на прочтение6 мин
Охват и читатели8.4K
Привет,

Что нужно для того, чтобы запустить свое приложение Java в облаке Microsoft? Сколько усилий надо затратить и человекочасов разработчика для того, чтобы хотя бы протестировать проект и решить, стоит ли вообще его мигрировать, или стоит подождать или вообще отложить переезд. Эта небольшая статья призван заполнить нишу размером в микрон и провести краткий экскурс в сегодняшнюю ситуацию с Java на Microsoft Azure.
 
Читать дальше →

Анонсированы новые функции Java 9

Время на прочтение2 мин
Охват и читатели58K
Компания Oracle серьёзно взялась за разработку JDK9 и опубликовала первый список «предложений на улучшение» (JEP), в которых описаны новые функции Java 9. Список невелик и консервативен, но его наверняка дополнят в предстоящие почти два года до выпуска Java 9.

Программные интерфейсы


Представлены три новых программных интерфейса.

  • Обновление Process API для лучшего взаимодействия с не-Java процессами операционной системы (сейчас разработчики часто вынуждены использовать нативный код).
  • Новый HTTP-клиент с поддержкой HTTP 2.0, веб-сокетов и заменой устаревшему HttpURLConnection.
  • Облегчённый JSON API для обработки и генерации JSON-документов и потоков данных.

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

Войти в IT: Долгая дорога в Java

Время на прочтение7 мин
Охват и читатели115K
Друзья, рады представить статью из цикла «Войти в IT», который уже давно публикуется в нашем корпоративном блоге. Это не «серьезные» технические статьи (такие тоже будут), а рассказы наших синьоров об их становлении в IT. Ведь иногда хочется просто взглянуть на индустрию глазами коллег и понять, как именно из молодых практикантов и «зеленых» джуниоров получаются эксперты мирового уровня. Что ж, дадим слово одному из наших героев.

image

Всем привет! Меня зовут Родион Горковенко, и я… нет, не то, о чем вы подумали. Я — Senior Java Developer в компании DataArt. Хочу поделиться историей, как я дошел до жизни такой и, возможно, немного подсказать молодым специалистам, как выжить в беспощадных джунглях Java и стать полноценным цифровым хищником.

Введение (красивая заставка)

Сначала я программировал на C. Были и другие языки, но большую часть времени (несколько лет) я писал именно на C. Поэтому и моя карьера в IT началась с этого языка. Однако область применения его ограничена сравнительно низкоуровневым софтом — я писал на нtv для микроконтроллеров, когда разрабатывал электронику, и позже — для POS-терминалов.

Ответ на вопрос «куда двигаться дальше?» был для меня не очень ясен. Можно, конечно, было углублять изучение C++, но небольшой опыт работы в команде на C/C++ оставил несколько негативное впечатление. Альтернативой была Java. О ней я не знал почти ничего, разве что, пару тестовых приложений для мобильников с JavaME написал еще в институте — конечно, не разбираясь подробно в нюансах языка.

Что ж, в течение года посвященного POS-терминалам, у меня было немного свободного времени до и после работы. Гугление подсказало, что нужно скачать Java Development Kit (JDK) с сайта Sun (теперь java.oracle.com) и, в общем, можно начинать.
Читать дальше →

BlueJ — java IDE для новичков

Время на прочтение3 мин
Охват и читатели51K
image
Пару лет назад я начал изучать программирование. Учился я в сфере, вообще не связаной с IT. Поэтому все учил сам. Статьи на хабре, различные туториалы и видеоуроки. После долгого гугления, я твердо решил, что хочу изучать Java. Причина такого выбора была банальна. Я нашел отличный онлайн курс, который был мне понятен.
Как в большинстве курсов, там использовался Eclipse IDE. Друзей-программистов, которые могли бы мне помочь, не было. И я с ужасом вспоминаю, как тяжело мне пришлось. Читая книгу и смотря уроки, я все понимал. Но почему-то, в эклипс это не запускалось. Те вещи, которые кажутся такими простыми для меня сейчас, на тот момент были непосильны. Иногда, изучая одну часть чего-либо, хочется полностью абстрагироваться от другой. На тот момент, моей задачей было понять, что такое переменная, научиться писать циклы, попробовать конструкцию if-else. А мне пришлось принимать решение, какой вид проекта я создаю. Запускать как программу или Апплет. Импортировать библиотеки и добавлять их в classpath. И тут часто встречаются моменты, которые на уроках пропускаются. А если ты совершишь маленькую ошибку, твое приложение может вообще не запуститься.

Вывод такой, что полному новичку нелегко разобраться в полноценном IDE, таком как Eclipse, NetBeans или IDEA. Я знаю много людей, которые отбросили идею программировать после первых попыток. Не из-за того, что не понимали концепций девелопмента, а именно из-за тяжелой настройки и разных конфигурационных моментов, с которыми они столкнулись в самом начале.
Так вот недавно, на сайте Oracle, я увидел рекламу: Bluej — Java IDE для новичков. Стало интересно, скачал, попробовал… И согласился с рекламой, что с таким IDE новичку будет, несомненно, проще изучать азы языка Java. Считайте эту статью небольшим введение в данный продукт.
Читать дальше →

Использование liquibase плагина для Maven

Время на прочтение2 мин
Охват и читатели23K
Привет хабр, много было уже на писано на тему liquibase и Maven, но я не смог найти ничего про liquibase-maven-plugin и его настройку, а ведь это очень удобный плагин. Вот я и решил написать о том, как его настроить.

Плагин liquibase-maven-plugin предназначен для управления liquibase из Maven. Вот пример команды mvn liquibase:update, для обновления базы данных.

Для начала предлагаю разобраться с тем, что такое Maven и liquibase.



Мавен — это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации. Более подробно о самом Maven можно прочитать в статье Apache Maven — основы



Liquibase — это система управления миграциями базы данных. Для ознакомления с liquiabase так же можно прочитать в статье Управление миграциями БД с Liquibase

После того, как мы разобрались с Maven и liquibase, можно перейти к созданию maven проекта и настройке liquibase плагина.
Читать дальше →

Сравнение скорости работы ArrayList и LinkedList на практике

Время на прочтение3 мин
Охват и читатели77K
Приветствую Вас!

ArrayList и LinkedList — знают все. В каких ситуациях работает быстро, а в какой ситуации работает медленной тот или другой список — знают тоже все, кто в теории, а кто на практике. Данный пост подходит для тех, кто только начинает изучать Java, или кто слышал, о том «что быстрее», но не видел на практике.
Читать дальше →

Еще раз о видеонаблюдении, камерах, RTSP, onvif. И «велосипед»!

Время на прочтение16 мин
Охват и читатели198K
Информация уже была на хабре: habrahabr.ru/post/115808 и habrahabr.ru/post/117735
Там описывается Motion-JPEG (MJPEG).
Мир не стоит на месте и видео наблюдение тоже. Всё чаще и чаще используются другие кодеки.
Тут описываю свой опыт в этом «мире».
Профессионалы ничего нового не узнают, другим может будет просто интересно.
Разрабатывалось всё в качестве обучения и тренировки.
Речь пойдет о RTP, RTSP, h264, mjpeg, onvif и всём вместе.
Перед прочтением обязательно прочитать статьи другого автора, указанные выше.
Читать дальше →

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

Время на прочтение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. Если вы хотите научиться использовать что-нибудь новенькое, здесь мы начнём с азов. Если вам нравятся истории и оригинальные фишки, которые есть в каждой команде, то читайте дальше.
Читать дальше →