es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Java Geek

Java Geek

Ir al canal en Telegram

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

Mostrar más
2 353
Suscriptores
-124 horas
Sin datos7 días
-1530 días
Archivo de publicaciones
Что такое immutable? Immutable называются объекты, состояния и переменные которых нельзя изменить после создания объекта. Чем
Что такое immutable? Immutable называются объекты, состояния и переменные которых нельзя изменить после создания объекта. Чем не отличный ключ для HashMap, да?) Например, String, Integer, Double и так далее. @java_geek

Что такое mutable? Mutable называются объекты, чьи состояния и переменные можно изменить после создания. Например такие класс
Что такое mutable? Mutable называются объекты, чьи состояния и переменные можно изменить после создания. Например такие классы, как StringBuilder, StringBuffer. @java_geek

FileOutputStream vs. FileWriter Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой им
FileOutputStream vs. FileWriter Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи. FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями. У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод. @java_geek

Выполнится ли блок finally, если блок try или catch выполняют инструкцию return? Да, блок finally выполнится, даже если return выполнился в блоке try или catch. Это один из самых популярных и сложных вопросов по Java. Запомните: единственный способ остановить выполнение блока finally — использовать System.exit(). @java_geek

Можно ли предопределить или перегрузить статический метод в Java? Перегрузить статический метод в Java можно, но вот предопределить его нельзя. Вы можете написать другой статистический метод с такой же сигнатурой в подклассе, но он не будет предопределять суперкласс. в Java это называется сокрытием методов. @java_geek

Что выведет эта программа? Ответ: Программа напечатает “String method”. Прежде всего стоит отметить, что null не является объ
Что выведет эта программа? Ответ: Программа напечатает “String method”. Прежде всего стоит отметить, что null не является объектом в Java. Но null можно присвоить любой ссылке. Java String является объектом класса java.lang.String. В этой программе компилятор Java выбирает вызов перегруженного метода с наиболее конкретными параметрами. Это будет String, потому что класс String более конкретен, чем класс Object. @java_geek

Ключевое слово abstract в Java abstract - это модификатор, применимый для классов, методов, но не для переменных. Он использу
Ключевое слово abstract в Java abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract: 1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены). 2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract. @java_geek

Сколько объектов типа String создает эта программа? Ответ: Программа создаст два string-объекта. Когда мы создаем строку, исп
Сколько объектов типа String создает эта программа? Ответ: Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String. @java_geek

Как сборка мусора (Garbage Collection) не допускает нехватку памяти в приложении на Java? Ответ: Сборщик мусора (Garbage Collector) в Java — не волшебная пилюля от нехватки памяти в приложениях. Он просто очищает неиспользуемую память, когда объект выходит из области видимости и в нём отпадает потребность. Так что никакой гарантии, что сборка мусора предотвратит ошибки, связанные с нехваткой памяти, нет. @java_geek

Java передает аргументы по значению или по ссылке? Java всегда передает аргументы по значению (pass-by-value). Тем не менее, когда мы передаем значение объекта, мы передаем ссылку на него, потому что переменные хранят ссылку на объект, а не сам объект. Но это не передача по ссылке (pass-by-reference). Такое положение дел может быть не совсем понятно новичкам. @java_geek

Object[] vs custom Class Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом м
Object[] vs custom Class Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас. @java_geek

Empty String Если вам нужно проверить, содержит ли строка пустое значение — используйте метод isEmpty(). Почему не equals()?
Empty String Если вам нужно проверить, содержит ли строка пустое значение — используйте метод isEmpty(). Почему не equals()? Он банально медленней. Если вы просмотрите его реализацию для строки, то сразу все поймете. Не удивляйтесь, многие разработчики до сих пор не знают про этот метод. @java_geek

Форматирование даты с помощью SimpleDateFormat SimpleDateFormat — это конкретный класс для парсинга и форматирования даты в J
Форматирование даты с помощью SimpleDateFormat SimpleDateFormat — это конкретный класс для парсинга и форматирования даты в Java. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени. @java_geek

Fields initialization Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно у
Fields initialization Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно уверены. Всё-таки для этих целей у Вас есть конструктор. В случае явного указания значений для полей класса — они будут проинициализированы до вызова конструктора, что влечет дополнительные расходы в тех случаях, когда у Вас нет необходимости пользоваться проинициализированными значениями, например, когда сразу после создания обьекта Вы устанавливаете другие значения для проинициализированных полей. Ну и не забывайте, что поля класса всегда инициализируются значениями по умолчанию. @java_geek

Log field Используете логированние в классе? Всегда определяйте переменную лога как static final. Во-первых: у вас никогда не
Log field Используете логированние в классе? Всегда определяйте переменную лога как static final. Во-первых: у вас никогда не возникнет проблем при попытках сериализации и десериализации обьекта. Во-вторых: инициализация происходит только 1 раз, вместо постоянной инициализации при создании обьектов класса. @java_geek

Data reading Что плохого в этих невинных строках? Да в общем-то ничего, кроме того факта, что мы не знаем размер файла которы
Data reading Что плохого в этих невинных строках? Да в общем-то ничего, кроме того факта, что мы не знаем размер файла который считываем. Вместо файла может быть что угодно — открытый сокет, который принимает данные, данные из post запроса, все… В общем случае старайтесь не считывать всё в массив байтов, у вас попросту может не хватить памяти. Поэтому будьте осторожны с размером любых данных. Старайтесь обрабатывать и пересылать данные по частям. И всегда следите за размером пользовательских данных и по возможности ограничивайте их. @java_geek

Преобразование строки в дату Класс SimpleDateFormat имеет некоторые дополнительные методы, в частности parse(), который в Jav
Преобразование строки в дату Класс SimpleDateFormat имеет некоторые дополнительные методы, в частности parse(), который в Java поможет нам перевести строку в дату соответствии с форматом, хранящимся в данном объекте SimpleDateFormat. Пример на картинке. @java_geek

Какой самый надежный способ проверить, равны ли два значения типа double? Наиболее надежный и точный способ проверить это — и
Какой самый надежный способ проверить, равны ли два значения типа double? Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем. @java_geek

Какая проблема возникнет с этим кодом? Ответ: Данный код не с компилируется. Этот вопрос на знание иерархии исключений, в дан
Какая проблема возникнет с этим кодом? Ответ: Данный код не с компилируется. Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано. @java_geek

Метод matches() Возвращает значение true, если, и только в том случае, если эта строка соответствует заданному регулярному вы
Метод matches() Возвращает значение true, если, и только в том случае, если эта строка соответствует заданному регулярному выражению. @java_geek