Рубрика «JDK» - 3

Добрый день, господа!
Спешу сообщить, что настают последние дни.
Кажется, мир Java развился до такой степени, что то ли мы теперь можем спокойно использовать Rust вместо Java, то ли Java вместо Rust.
Кровавые подробности ждут вас под катом.
Читать полностью »

В последнее время со сборкой JDK в Windows всё стало хорошо и приятно, поэтому поделюсь радостью и распишу, как это делается.
Читать полностью »

[Питер] Дмитрий Чуйко — JEP 295: Ahead-of-Time компиляция для HotSpot - 1

В четверг 22 декабря в 20:00 в петербургском офисе компании Oracle состоится встреча JUG.ru c Дмитрием Чуйко, инженером Oracle из Java SE Performance Team. Тема встречи — Ahead-of-Time компиляция для HotSpot JVM.

Существуют различные реализации платформы Java. В некоторых из них есть Ahead-of-Time (AOT) компиляторы, причём подход к решению различный, да и постановка задачи разная. В данный момент в HotSpot есть JIT‑компиляция, но нет стандартного AOT. Не обязательно, что так будет всегда.
Читать полностью »

Пишем, собираем и запускаем HelloWorld для Android в блокноте. Java 8 и Android N - 1

Два с половиной года назад я опубликовал статью Пишем, собираем и запускаем HelloWorld для Android в блокноте. Она стала пользоваться огромной популярностью и набрала около 80 000 просмотров. С появлением новых инструментов, таких как Jack ToolChain, возникла необходимость переиздания и обновления статьи.

Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
Читать полностью »

Это заметка о проблеме, с которой я столкнулся в процессе перевода проекта с Java 7 на Java 8. Случилось это уже около полугода назад, но написать решил сейчас, потому что неожиданно про нее(проблему) вспомнил.

Итак, с места в карьер.
Читать полностью »

Ахаха, HotSpot, что ты делаешь, прекрати!

Как вы наверняка уже знаете, скоро в Питере пройдёт очередная конференция Joker. Я собираюсь сделать на ней доклад о том, как расследовать поведение JVM, кажущееся поначалу таинственным и загадочным. Этот пост — тизер, предназначенный для того, чтобы дать вам возможность понять, чего ждать от доклада.

Предположим, что к вам вдруг приходит информация о проблеме: при сборке мусора отображаются причины «Last Ditch Collection» и «No GC», и поиск в интернете не даёт ничего вразумительного. К счастью, HotSpot практически полностью собирается из OpenJDK, и потому, как минимум в теории, мы можем найти ответы на все интересующие нас вопросы прямо в исходниках. Чем мы и займёмся!

Читать полностью »

image

Microsoft Open Technologies анонсировали выпуск февральского обновления инструментов Windows Azure Toolkit for Eclipse, которые представляют собой набор инструментов с интеграцией в Eclipse для разработки Java-приложений для размещения их в облачном окружении Windows Azure.

В этом выпуске представлены следующие нововведения и обновления: поддержка SSL и SSL offloading, расширенная поддержка последних версий GlasFish и пакета Azul Zulu OpenJDK, новая опция для выбора экземпляров ролей A5, выбор Windows Server 2012 R2, улучшения в меню и новые опции. Ниже вы найдете описание этих новинок.

Поддержка SSL

Вместо требования к пользователю вручную конфигурировать каждый экземпляр Java-сервера для обработки SSL-сертификатов в Windows Azure, команда MS Open Tech разработала и предложила механизм SSL Offloading, который предлагает переложить работу с SSL на облачное окружение и компоненты виртуальной машины (IIS и ARR). Таким образом, после расшифровки запроса к вашему Java-серверу придет обычный HTTP-запрос, который после отправки будет зашифрован автоматически. Этот подход работает и со sticky-сессиями и с аутентификацией через ACS.
Читать полностью »

Здравствуйте.
Где-то полгода-год назад я помогал человеку с проблемой: он хотел автоматически удалить всё, что относится к Java, с компьютера под управлением Windows.
Для начала я поискал, есть ли у установщика какой-то ключ, который поможет это сделать.
Уже не помню точно, кажется я таки отыскал его, но функционал был сломан, инсталлятор не выполнял нужной функции.
Дополнительными вариантами я нагуглил всяческие VB-решения, или требующие .NET, как JavaRa.
В конце концов я наткнулся на обсуждение, в котором нашёл одну заветную строчку с полезной командой wmic, и в итоге решение проблемы выродилось в очень небольшой батник, который использует только средства системы, чтобы выполнить то, для чего написаны длиннющие скрипты.
Команда является частью WMI, и присутствует в Windows 2000 и выше.
Читать полностью »

Инструкция применима также для 2.4+ версии OpenCV и JavaCV

Я искал библиотеки для обработки изображений в Java. Мои поиски остановились на JavaCV.
JavaCV предоставляет оболочки для OpenCV, так что вы можете напрямую использовать OpenCV функции в Java.
Определим пару шагов, которые следует выполнить чтобы установить JavaCV в Windows 7.
Читать полностью »

Да, это целая статья по самому обычному switch в JDK 7. Бывает так, что накопленный материал кажется интересным и малоизвестным, а потом оказывается, что любая бабка у подъезда уже 50 лет знает об особенностях реализации switch. Но я попробую. Для затравки, предлагаю 3 вопроса:

  1. (Простой) Каков результат работы этого кода?
    switch(5){
    default: System.out.print(0);
    case 1: System.out.print(1); break;
    case 4: System.out.print(4);
    case 2: System.out.print(2);
    }

  2. Следующие 2 варианта практически одинаковы. Немного отличаются литералами.
    //Вариант 1
    switch("BBBBBB"){
    case "AaAaAa": break; 
    case "AaAaBB": break;
    case "AaBBAa": break;
    case "AaBBBB": break;
    case "BBAaAa": break;
    case "BBAaBB": break;
    case "BBBBAa": break;
    case "BBBBBB": break;
    }
    //Вариант 2
    switch("BBBBBB_8"){
    case "AaAaAa_1": break;
    case "AaAaBB_2": break;
    case "AaBBAa_3": break;
    case "AaBBBB_4": break;
    case "BBAaAa_5": break;
    case "BBAaBB_6": break;
    case "BBBBAa_7": break;
    case "BBBBBB_8": break;
    }

    Почему первый switch выполняется в несколько раз медленнее, по крайней мере, с отключенным JIT (-Djava.compiler=NONE)? Сами проверьте в цикле! JIT таким кодом не проведешь, но если немного пошаманить, то небольшая разница будет заметна.

  3. Какова вычислительная сложность алгоритма нахождения совпадающего значения среди n case-ов (по крайней мере, в JDK 7)?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js