Обновить
512K+

Java *

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

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

Хабр шелл: встраиваем кросплатформенный ssh server в java приложение

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


Расскажу как внедрить в существующее java приложение ssh сервер, который может выводить в терминал данные о лучших статьях с habrahabr. Это лишь пример, но на его основе вы сможете получить дополнительное средство для администрирования вашей программы и расширить поведение любыми командами, без изменения исходного кода и пересборки приложения.
Подробности

[ libGDX ] Опыт разработки игры с использованием Box2D

Время на прочтение5 мин
Охват и читатели21K
Здравствуй, Хабр! Ух! Давно же я не писал здесь. Итак, начну пожалуй с небольшой предыстории и заодно приведу скриншот получившейся игры.

TOTAL100
Скриншот игрового процесса
Читать дальше →

Кодировки и веб-страницы

Время на прочтение4 мин
Охват и читатели33K
Возвращаясь к избитой проблеме с кодировками русских букв, хотелось бы иметь под рукой некий единый справочник или руководство, в котором можно найти решения различных сходных ситуаций. В своё время сам перелопатил множество статей и публикаций, чтобы находить причины ошибок. Задача этой публикации — сэкономить время и нервы читателя и собрать воедино различные причины ошибок с кодировками в разработке на Java и JSP и способы их устранения.

Варианты решения могут быть не единственными, охотно добавлю предложенные читателем, если они будут рабочими.

Итак, поехали.
Читать дальше →

Fuga Framework — Маленький веб фреймворк для Java

Время на прочтение5 мин
Охват и читатели14K
В этой статье я бы хотел рассказать о своем фреймворке, который я нескромно назвал Fuga Framework



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

Деплой Java Spring приложения в PaaS-платформу Heroku за 14 минут

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

Как подружить JavaFX и Spring Boot

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

Не так давно появился такой замечательный фреймворк как Spring Boot, без которого я уже не представляю себе разработку на Java. Освещая неосвещенное, хочу рассмотреть интеграцию Spring Boot и всех его «плюшек» с JavaFX 2.

Всех заинтересованных приглашаю под кат.
Принять приглашение

Обработка столкновений с алгоритмом и реализацией

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

Недавно видел статью об обработке столкновений. И там не было самого главного — алгоритма и реализации. Давайте заполним этот пробел и рассмотрим как находить и обрабатывать столкновения. Реализация будет на Java.
Предупреждаю, что в статье много кода.


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

Зри в корень: java.lang.Object

Время на прочтение8 мин
Охват и читатели92K
В Java в вершине иерархии классов лежит класс java.lang.Object. Лежит и лежит, долгое время я им совсем не интересовался.

На собеседованиях часто спрашивают, какие в нем есть методы, поэтому они как-то сами собой выучились. Пришло время посмотреть на этот класс более внимательно. Первый вопрос, который у меня возник, есть ли вообще в исходниках Java класс java.lang.Object. Он же ведь необычный, он вполне может быть жестко зашит в реализацию, как самый верхний.

Однако, такой класс есть и я приведу тут исходники java/lang/Object.java, опустив javadoc, и попытаюсь пролить свет на некоторые моменты связанные с реализацией jvm:
Читать дальше →

NDK c полпинка

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

Вместо пролога


Я, пожалуй, нарушу традицию всех подобных статей и не буду рассказывать, зачем нужен NDK. Если вы это читаете, значит вам он зачем-то понадобился. Но один из реальных кейсов использования мы, конечно же, рассмотрим.

Эта история началась с того, что на Google I/O 2015 была представлена поддержка нативной разработки прямо не выходя из студии, Android-студии. Естественно, Google, как всегда, наобещал и заставил ждать, пока они все это выкатят для обычных людей. И вот 9 июля это свершилось: на stable channel появился кусочек того пирога, который нам наобещали.
Что же было дальше?

Joker 2015: Новости 1-18 августа 2015 — новые спикеры и доклады

Время на прочтение3 мин
Охват и читатели5.9K
За три недели, прошедшие с момент предыдущей публикации про Joker, мы анонсировали несколько новых докладчиков и докладов, о которых я и расскажу в этом посте.



  • Андрей Солнцев aka asolntsev расскажет о плюcах и минусах Play Framework (речь пойдет о ветке 1.3);
  • Владимир Ситников aka vladimirsitnikov покажет, что делать, если у вас выскочила ошибка типа OutOfMemory;
  • Nicolas Frankel к рассказу о Spring Boot for DevOps добавит рассказ о мутационном тестировании;
  • Антон Кекс aka antonkeks и Андрей Солнцев aka asolntsev покажут нам технику Ping-pong Programming — гибрид парного програмирования и TDD;
  • наконец, наш дебютант Тагир Валеев aka lany покажет некоторые штуки, которые делает HotSpot на примере сравнения производительности Stream API и Collections API.


Подробности — как всегда под катом.
Новые анонсы

Open source сервер онлайн-чатов на Java

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


Онлайн-чаты (или онлайн-консультанты) сегодня есть на многих сайтах. Кто-то ими активно пользуется, кто-то терпеть не может, а кто-то иногда открывает шутки ради. Для желающих развернуть свой собственный сервер чатов расскажу об open source решении Live Chat Engine.
Читать дальше →

Java байткод «Hello world»

Время на прочтение7 мин
Охват и читатели52K
На хабре уже есть статья про java байткод. Я решил ее немного дополнить и в меру сил развить тему. Мне кажется довольно логичным разобрать простейшее приложение на Java. А что может быть проще «Hello world»?
Для своего эксперимента я создал директорию src, куда в папку hello положил файл App.java:

package hello;

public class App {

    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

}


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

Работа с архивами Zip и 7z

Время на прочтение4 мин
Охват и читатели25K
В мобильной разработке бывает потребность сделать приложение для работы без интернета. Например, словарь или справочник, который будет использоваться в суровых полевых условиях. Тогда для работы приложения нужно единожды выкачать архив с данными и сохранить его у себя. Сделать это можно посредством запроса в сеть, но так же можно зашить архив с данными внутрь приложения.

Согласно требованиям Google Play, apk-файл приложения должен быть не более 50 МБ, так же можно прикрепить два файла дополнения .obb по 2 гигабайта. Механизм простой, но сложный при эксплуатации, поэтому лучше всего уложиться в 50 МБ и возрадоваться. И в этом нам помогут целых два архивных формата Zip и 7z.
Читать дальше →

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

Docker в банке. Видео с лекции Александра Тарасова из Альфа-Банка

Время на прочтение1 мин
Охват и читатели40K
Docker — технология, вокруг которой нынче огромное количество хайпа. «Shitstorm» — именно таким словом окрестил в твиттере докеровые войны один из моих немецких знакомых. Ну и конечно, вместе с «Microservices» и «Reactive», слово «Docker» прочно вошло в тройку ведущих айтишных баззвордов последних двух лет.

Неделю назад на московской встрече CodeFreeze Александр aatarasoff Тарасов из Альфа-Лаборатории (подразделение Альфа-банка) рассказал от том, как они внедряли у себя Docker, какой получили профит, какую боль и т.п. Интрига в том, что, с одной стороны, Альфа-банк — это банк, то есть, «кровавый энтерпрайз». С другой стороны… внедрили же.



Под катом — короткое описание того, о чем рассказал нам Александр и видеозапись его выступления.
Читать дальше →

Spring Security 4 + CSRF (добавление в Spring проект защиты от межсайтовой подделки запроса)

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


Здравствуйте!
Современное веб приложение считается уязвимым, если в нем отсутствует защита от Межсайтовой подделки запроса (CSRF).
В Spring Security 4.x она включена по умолчанию, поэтому при миграции с Spring Security 3.x на 4.x ее надо либо отключить
<http>
	...
	<csrf disabled="true"/>
</http>
либо, правильнее и зачетнее, добавить в проект.

Собственно, сделал это в 10-минутном видео:

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

Внедрение веб консолей в jvm процесс на примере SonarQube

Время на прочтение5 мин
Охват и читатели12K
По аналогии с примером из этой статьи, вы сможете внедрить консоль hawtio в свое jvm приложение без его пересборки и перекомпиляции. А также в случае с DEV/QA хостами внедрить в java процесс SQL веб консоль из проекта H2


Скринкасты, описание процесса и краткий обзор компонент...

Управление версиями зависимостей в Maven проекте

Время на прочтение4 мин
Охват и читатели39K
Одним из преимуществ организации Java проекта с помощью Maven является удобное описание всех библиотек и их версий, которые для него требуются. Далее, по мере развития проекта, нам наверняка захочется иметь возможность обновлять версии этих библиотек. Такой функционал предоставляет расширение Versions Maven.
Читать дальше →

Облака на службе СМИ, или Как Amazon помогает обрабатывать большие объемы видеоконтента

Время на прочтение6 мин
Охват и читатели7.9K
Нашему заказчику, одному из крупнейших мировых издательств, потребовалось увеличить производительность приложения для публикации видео новостей в связи с возросшим объемом трафика. Пользователи приложения — редакторы media-ресурсов. В день через него проходит порядка 200 новостных роликов, средний размер каждого из них ~ 500 мб, итого около 100 Гб свежих новостей в сутки.

Сегодня мы поделимся опытом, как CloudFront и S3 помогли нам построить высоконагруженную и устойчивую систему обработки контента.



Надеемся, наш опыт заинтересует разработчиков/проектировщиков систем по хранению и обработке медиаконтента (видео, аудио, изображения) и технических специалистов, активно использующим сервисы AWS.

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

Передача опыта: Путь Джедая

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

Рано или поздно каждый из нас задумывается, имеет ли смысл передать свой опыт детям. На сегодняшний день можно сказать, что проект, который мы начали более двух лет назад, состоялся и выглядит удачным. Раз результат положительный, мы решили, почему бы не поделится с уважаемой публикой.

Пора!… Кони уже неслись над крышами… (с) Михаил Булгаков

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

Лямбда-выражения в Java, как и зачем их сериализировать?

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


Механизм лямбда-выражений, представленный в Java8, стал такой фичей, которая чётко разделила код до нее и после (кажется, такое же может случится с Java9 и модульной системой, но в плохом смысле). В Java8 стало больше функциональных трюков, разнообразная обработка больших массивов данных стала значительно проще и теперь занимает куда меньше места. Однако, касательно рационального использования лямбда-выражений существует много вопросов таких как: насколько рационально часто их использовать? существенна ли потеря производительности теряется при переходе от обычного цикла в `forEach()` с лямбда-выражением и так далее. Большинство курсов (даже курс Oracle) игнорируют эти вопросы. В этом посте будет описан как раз один из, наверное, наименее популярных вопросов, но не менее интересный чем остальные:
Как работать сериализация лямбда-выражений в Java и как её можно использовать?

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