ar
Feedback
Java Geek

Java Geek

الذهاب إلى القناة على Telegram

Практичные советы, лайфхаки и код для Java-разработчиков. Каждый пост — реальная польза. Учим Java на примерах. По всем вопросам @evgenycarter

إظهار المزيد
2 449
المشتركون
لا توجد بيانات24 ساعات
+27 أيام
+530 أيام
أرشيف المشاركات
Каким образом из вложенного класса получить доступ к полю внешнего класса? Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса. Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field. @java_geek

Чем похожи класс и интерфейс? ☕️ Интерфейс может содержать любое количество методов; ☕️ Интерфейс записан в файле с расширением .java, и имя интерфейса совпадает с именем файла; ☕️ Байт-код интерфейса находится в .class файле; ☕️ Интерфейсы появляются в пакетах, и их соответствующий файл байт-кода должен быть в структуре каталогов, которая совпадает с именем пакета. @java_geek

Генерируем код и пароль Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новы
Генерируем код и пароль Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новый пароль на наш зарегистрированный адрес электронной почты или номер телефона для входа в нашу учетную запись. Иногда мы получаем доступ к нашим банковским счетам во время покупок в интернет-магазине и чтобы подтвердить наш переход с банковского счета, нам отправляют нам OTP (одноразовый пароль) на наш зарегистрированный номер телефона или адрес электронной почты. Следующий код объясняет, как быстро генерировать такие пароли и OTP. @java_geek

Встроенные исключения Java определяет несколько классов исключений внутри стандартного пакета java.lang. Наиболее общие из эт
Встроенные исключения Java определяет несколько классов исключений внутри стандартного пакета java.lang. Наиболее общие из этих исключений являются подклассами стандартного типа RuntimeException. Поскольку java.lang неявно импортируется во все java-программы, то большинство исключений, полученных из RuntimeException, автоматические. Java определяет несколько других типов исключений, которые относятся к его различным библиотекам класса. Ниже приведен список неконтролируемых исключений на этапе выполнения (Unchecked RuntimeException). @java_geek

Получение координат курсора Чтобы фиксировать события мыши, вам необходимо реализовать интерфейс MouseMotionListener. Когда к
Получение координат курсора Чтобы фиксировать события мыши, вам необходимо реализовать интерфейс MouseMotionListener. Когда курсор попадает в определенную область, срабатывает обработчик события mouseMoved, из которого вы можете получить точные координаты (используя Swing для UI). @java_geek

Какое начальное количество корзин в HashMap? В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин. @java_geek

Воспроизведение звуков Звук — важный компонент многих десктопных приложений и игр. Язык программирования Java предоставляет с
Воспроизведение звуков Звук — важный компонент многих десктопных приложений и игр. Язык программирования Java предоставляет средства для работы с ним. @java_geek

Класс FileWriter Наследуется от класса OutputStreamWriter, используется для записи потоков символов. Код на картинке создает
Класс FileWriter Наследуется от класса OutputStreamWriter, используется для записи потоков символов. Код на картинке создает файл с разрешением .txt и записывает в него текст, а после с помощью FileReader читает его из файла. Класс имеет несколько конструкторов, а также список вспомогательных методов, которые можно использовать для управления файлами. @java_geek

Выполнение консольных команд Java позволяет выполнять консольные команды прямо из кода, используя класс Runtime. Очень важно
Выполнение консольных команд Java позволяет выполнять консольные команды прямо из кода, используя класс Runtime. Очень важно не забывать об обработке исключений. Например, давайте попробуем открыть файл PDF через терминал Java (на Linux’e). @java_geek

Float vs Double Программисты часто не могут выбрать необходимую им точность для чисел с плавающей точкой. Float требует всего 4 байта, но и значащих цифр у него только 7, в то время как Double в два раза точнее (15 цифр), но и в два раза расточительнее. На самом деле большинство процессоров способны работать с Float и Double одинаково эффективно, поэтому воспользуйтесь рекомендацией Бьёрна Страуструпа (создателя языка С++): "Выбор нужной точности в реальных задачах требует хорошего понимания природы машинных вычислений. Если у вас его нет, либо проконсультируйтесь с кем-нибудь, либо изучите проблему сами, либо используйте double и надейтесь на лучшее." @java_geek

Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними? • Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным. • Для создания объекта статического вложенного класса объект внешнего класса не требуется. • Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса. • Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут. • В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this. @java_geek

Комбинирование хеш-таблиц Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение эт
Комбинирование хеш-таблиц Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится. @java_geek

Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами? У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса). @java_geek

Одинарные и двойные кавычки Что ожидается в результате выполнения кода с картинки? Казалось бы, строка должна возвращать «HaH
Одинарные и двойные кавычки Что ожидается в результате выполнения кода с картинки? Казалось бы, строка должна возвращать «HaHa», но на самом деле это будет «Ha169». Двойные кавычки обрабатывают символы как строки, но одинарные кавычки ведут себя иначе. Они преобразуют символьные операнды ('H' и 'a') в целые значения посредством расширения примитивных типов — получается 169. @java_geek

Метод lastIndexOf() Метод lastIndexOf() в Java имеет следующие варианты: int lastIndexOf(int ch) — возвращает индекс в данной
Метод lastIndexOf() Метод lastIndexOf() в Java имеет следующие варианты: int lastIndexOf(int ch) — возвращает индекс в данной строке последнего вхождения указанного символа или -1, если символ не встречается. public int lastIndexOf(int ch, int fromIndex) — возвращает индекс последнего вхождения символа в символьной последовательности, представленной данным объектом, который меньше или равен fromIndex, или -1, если символ не встречается до этой точки. public int lastIndexOf(String str) — если аргумент строки встречается один или несколько раз в подстроке в этом объекте, то он возвращает индекс первого символа последней такой подстроки. public int lastIndexOf(String str, int fromIndex) — возвращает индекс внутри данной строки последнего вхождения указанной подстроки, поиск осуществляется назад, начиная с указанного индекса. Параметры: ch — символ; fromIndex — индекс, чтобы начать поиск (от); str — строка. @java_geek

Метод startsWith() Метод startsWith() в Java имеет два варианта и проверяет, начинается ли строка с указанного префикса, начи
Метод startsWith() Метод startsWith() в Java имеет два варианта и проверяет, начинается ли строка с указанного префикса, начиная с указанного индекса или с начала (по умолчанию). @java_geek

Зубчатый массив в Java Зубчатый массив — это массив массивов, в котором массивы элементов могут быть разных размеров, т. е. м
Зубчатый массив в Java Зубчатый массив — это массив массивов, в котором массивы элементов могут быть разных размеров, т. е. мы можем создать двумерный массив, но с переменным числом столбцов в каждой строке. Эти типы массивов также известны как зубчатые массивы. @java_geek

Клонирование массивов Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массиво
Клонирование массивов Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки. Подробнее с методом clone() можно ознакомиться здесь. @java_geek

Форматирование строк Класс String предоставляет возможность создания форматированных строк. За это отвечает статический метод
Форматирование строк Класс String предоставляет возможность создания форматированных строк. За это отвечает статический метод format. @java_geek

Метод compareTo() В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строк
Метод compareTo() В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки. @java_geek