👍16😱9
Узнаем IP-адрес своего компьютера
Подробнее объяснение кода можно найти здесь.
InetAddress.getLocalHost()
используется для поиска частных IP - адресов, используемых в локальной сети или любой другой локальной сети.Подробнее объяснение кода можно найти здесь.
👍25😱3
#Вопросы_с_собеседования
❓Что будет, если добавлять элементы в TreeSet по возрастанию?
В основе
❓Что будет, если добавлять элементы в TreeSet по возрастанию?
В основе
TreeSet
лежит красно-черное дерево, которое умеет само себя балансировать. В итоге, TreeSet все равно в каком порядке вы добавляете в него элементы, преимущества этой структуры данных будут сохраняться.👍19
Vector API в Java: краткий обзор и тестирование
Vector API в Java сейчас — это модуль, который предоставляет возможность выполнять векторные вычисления, ускоряемые аппаратно.
Смотреть статью
Vector API в Java сейчас — это модуль, который предоставляет возможность выполнять векторные вычисления, ускоряемые аппаратно.
Смотреть статью
Хабр
Vector API в Java: краткий обзор и тестирование
Некоторое время назад попалась на глаза статья про Vector API в Java. Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает. Результаты немного...
👍11
Замер времени с помощью Instant и Duration
В Java 8 добавили новый java.time API. В частности, ля измерения времени подойдут два новых класса – Instant и Duration. Оба эти класса иммутабельны.
Instant обозначает момент времени с начала эпохи Unix (1970-01-01T00:00:00Z). Для создания момента мы используем метод Instant.nоw(). После того, как мы создали два момент, вычислим разницу в миллисекундах.
Рекомендуется использовать именно этот подход в Java 8 и выше.
В Java 8 добавили новый java.time API. В частности, ля измерения времени подойдут два новых класса – Instant и Duration. Оба эти класса иммутабельны.
Instant обозначает момент времени с начала эпохи Unix (1970-01-01T00:00:00Z). Для создания момента мы используем метод Instant.nоw(). После того, как мы создали два момент, вычислим разницу в миллисекундах.
Рекомендуется использовать именно этот подход в Java 8 и выше.
👍28😱1
Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции
В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте.
Смотреть статью
В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте.
Смотреть статью
Хабр
Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции
В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте. Вторая часть...
👍12
#Вопросы_с_собеседования
❓Сравните Iterator и ListIterator
•
•
•
• При помощи
❓Сравните Iterator и ListIterator
•
ListIterator
расширяет интерфейс Iterator
• ListIterator
может быть использован только для перебора элементов коллекции List
;•
Iterator
позволяет перебирать элементы только в одном направлении, при помощи метода next()
. Тогда как ListIterator
позволяет перебирать список в обоих направлениях, при помощи методов next()
и previous()
;•
ListIterator
не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous()
и next()
.• При помощи
ListIterator
вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add()
и remove()
. Iterator
не поддерживает данного функционала.👍23
#Вопросы_с_собеседования
Какой самый надежный способ проверить, равны ли два значения типа double?
Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем.
Какой самый надежный способ проверить, равны ли два значения типа double?
Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем.
👍39
Проверка нечетности
Можно ли использовать первый код для точного определения нечетности числа?
Надеюсь, вы заметили подвох. Если мы решим проверить таким образом отрицательное нечетное число (-5, к примеру), остаток от деления не будет равен единице (а чему он равен?). Поэтому используйте более точный второй метод.
Он не только решает проблему отрицательных чисел, но и работает более продуктивно, чем его предшественник. Арифметические и логические операции выполняются гораздо быстрее умножения и деления.
Можно ли использовать первый код для точного определения нечетности числа?
Надеюсь, вы заметили подвох. Если мы решим проверить таким образом отрицательное нечетное число (-5, к примеру), остаток от деления не будет равен единице (а чему он равен?). Поэтому используйте более точный второй метод.
Он не только решает проблему отрицательных чисел, но и работает более продуктивно, чем его предшественник. Арифметические и логические операции выполняются гораздо быстрее умножения и деления.
👍34👎4
#Вопросы_с_собеседования
❓Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после
Стоит заметить, что блоки
❓Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после
try
, а компилятор уже сам неявно создаёт секцию finally
, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable
.Стоит заметить, что блоки
catch
и явный finally
выполняются уже после того, как закрываются ресурсы в неявном finally
.👍23
#Вопросы_с_собеседования
❓В каких пакетах расположены классы потоков ввода/вывода?
❓В каких пакетах расположены классы потоков ввода/вывода?
java.io
, java.nio
. Для работы с потоками компрессированных данных используются классы из пакета java.util.zip
.👍21
👍45😱7👎3
#Вопросы_с_собеседования
❓Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?
Метод
❓Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?
Метод
clone()
объявлен в классе Object
с указанием модификатора native
, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов. Одновременно он объявлен и как protected
, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable
является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone()
у не Cloneable
объекта вызовет выбрасывание CloneNotSupportedException
.👍27
#Вопросы_с_собеседования
Сколько элементов будет пропущено, если Iterator.nеxt() будет вызван после 10-ти вызовов Iterator.hasNext()?
Ответ:
Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
Сколько элементов будет пропущено, если Iterator.nеxt() будет вызван после 10-ти вызовов Iterator.hasNext()?
Ответ:
Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
👍21👎2
Play Framework
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
GitHub
GitHub - playframework/playframework: The Community Maintained High Velocity Web Framework For Java and Scala.
The Community Maintained High Velocity Web Framework For Java and Scala. - playframework/playframework
👍16