bin
директорию в переменную окружения PATH
. Об этом можно почитать тут. Bin
содержит скрипты, необходимые для сборки и запуска кода на Windows, OS X и Linux.Другой вариант установки компилятора: для OS X, Linux, Cygwin, FreeBSD или Solaris (возможно, и другие UNIX-системы), то можно использовать SDKMAN https://sdkman.io/.
Запускаем в терминале:
$ curl -s https://get.sdkman.io | bash
Затем следуем инструкциям. Потом потребуется открыть новое окно терминала и установить Kotlin с помощью команды:
$ sdk install kotlin
fun main(args: Array<String>) {
println("Hello, World!")
}
$ kotlinc hello.kt -include-runtime -d hello.jar
Подробнее о флагах компиляции можно почитать в мане:
$ kotlinc -help
$ java -jar hello.jar
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Нельзя использовать локи или
synchonized
, при этом очередь должна корректно работать в многопоточной среде.В основе неблокирующих алгоритмов лежит использование атомарной CAS (Compare-and-Swap или Compare-and-Set) операции. В Java для этого можно использовать атомики, которые поддерживают эти атомарные операции.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
На собеседовании может всплыть вопрос в духе: "Что будет являться монитором для блока кода, помеченного сразу двумя аннотациями
@Synchronized
и @JvmStatic
в Котлин?". Держите полезную статью, в которой рассматривается, для чего используются данные аннотации и каким будет результат при их одновременном использовании.
А пока немного о
@Synchronized
и @JvmStatic
:@Synchronized
в Kotlin является аннотацией для методов и блоков кода, которая обеспечивает синхронизацию доступа к ним между потоками. Когда метод или блок кода помечены аннотацией @Synchronized
, только один поток может получить право их выполнения в определенный момент времени, остальные потоки будут ожидать освобождения монитора, прежде чем получить доступ. Это позволяет избежать состояния гонки и обеспечить правильное выполнение кода в многопоточной среде.@JvmStatic
в Kotlin указывает компилятору, что функция или свойство должны быть статическими в Java-коде после компиляции. Когда мы используем @JvmStatic
перед функцией или свойством в объекте- компаньоне или внутри объекта, компилятор Kotlin создает соответствующий статический элемент в Java-коде. Это позволяет вызывать этот элемент напрямую из Java-кода, без необходимости ссылаться на экземпляр класса или объекта.@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите хороший доклад о том, как использовать Java вместе с Docker-контейнерами.
В докладе освещены нюансы работы Linux, контейнеризации и JVM друг с другом.
Рассказывается про использование ресурсов системы и особенности работы лимитов, сетевые особенности контейнеров и диагностика JVM в контейнере.
План:
• Контейнеры и его особенности
• Настройка памяти и файловой системы в контейнерах
• Управление памятью в контейнерах
• Работа с памятью в контейнерах
• Работа с контейнерами
• Файловая система контейнеров
• Диагностика контейнеров
• Настройка и использование GVM
• Настройка и использование JMX
• Альтернативные решения
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь раскрыты самые основные темы + много примеров кода.
Самое то, чтобы освежить какие-то моменты перед собеседованием.
├╼
Типы данных├╼
Литералы├╼
Переменные и константы├╼
Операторы├╼
Управляющие последовательности├╼
Модификаторы├╼
Ввод с клавиатуры├╼
Особенности строк├╼
Коллекции├╼
Дата и время├╼
Исключения╰╼
Интерфейсы📚 Учебник
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Thread run = new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
//ДЕЛАЕМ
Thread.sleep(1000); //1000 - 1 сек
} catch (InterruptedException ex) {
}
}
}
});
run.start(); // заводим
С этим кодом можно делать что угодно, добавить
final boolean
(заменить им true
) и остановить thread
когда нужно, при остановке что-то сделать, если нужно.@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Среди улучшений JDK 8:
— обновление механизмов сборки мусора, включая поддержку суб‑миллисекундных пауз и терабайтной кучи во всех версиях;
— запуск на 10% быстрее;
— скорость сжатия на 85%;
— скорость распаковки на 113%.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Встречайте большую подборку вопросов и ответов по Spring для подготовки к собеседованию.
Есть и теоретические вопросы, и те, которые проверяют наличие реального опыта
В общем — самое то, чтобы освежить важные концепции
Вот несколько вопросов:
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите хорошее объяснение отличий между 2 этими понятиями.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM