ru
Feedback
Java Geek

Java Geek

Открыть в Telegram

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

Больше
2 449
Подписчики
Нет данных24 часа
+27 дней
+530 день
Архив постов
Как преобразовать цветное изображение в черно-белое Иногда может потребоваться преобразовать изображение в двоичное. Другими
Как преобразовать цветное изображение в черно-белое Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение. @java_geek

Что вы знаете о OutOfMemoryError? OutOfMemoryError выбрасывается, когда виртуальная машина Java не может создать (разместить) объект из-за нехватки памяти, а сборщик мусора не может высвободить достаточное её количество. Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места: • java.lang.OutOfMemoryError: Java heap space: Не хватает места в куче, а именно, в области памяти в которую помещаются объекты, создаваемые в приложении программно. Обычно проблема кроется в утечке памяти. Размер задается параметрами -Xms и -Xmx. • java.lang.OutOfMemoryError: PermGen space: (до версии Java 😍 Данная ошибка возникает при нехватке места в Permanent области, размер которой задается параметрами -XX:PermSize и -XX:MaxPermSize. • java.lang.OutOfMemoryError: GC overhead limit exceeded: Данная ошибка может возникнуть как при переполнении первой, так и второй областей. Связана она с тем, что памяти осталось мало и сборщик мусора постоянно работает, пытаясь высвободить немного места. Данную ошибку можно отключить с помощью параметра -XX:-UseGCOverheadLimit. • java.lang.OutOfMemoryError: unable to create new native thread: Выбрасывается, когда нет возможности создавать новые потоки. @java_geek

Метод rotate() Метод java.util.Collections.rotate() присутствует в классе java.util.Collections. Используется для поворота эл
Метод rotate() Метод java.util.Collections.rotate() присутствует в классе java.util.Collections. Используется для поворота элементов, присутствующих в указанном списке Коллекции, на заданное расстояние. @java_geek

Метод trimToSize() Метод trimToSize() класса ArrayList в Java обрезает емкость экземпляра ArrayList до текущего размера списк
Метод trimToSize() Метод trimToSize() класса ArrayList в Java обрезает емкость экземпляра ArrayList до текущего размера списка. Этот метод используется для обрезки экземпляра ArrayList по числу содержащихся в нем элементов. @java_geek

Что такое литералы? Литералы — это явно заданные значения в коде программы, константы определенного типа, которые находятся в
Что такое литералы? Литералы — это явно заданные значения в коде программы, константы определенного типа, которые находятся в коде в момент запуска. В классе на картинке “Hello world!” — литерал, переменная a — тоже. Литералы бывают разных типов, которые определяются их назначением и способом написания. @java_geek

Сравнение Iterator и ListIterator • ListIterator расширяет интерфейс Iterator • ListIterator может быть использован только для перебора элементов коллекции List; • Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous(); • ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next(). • При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала. @java_geek

Популярные ошибки начинающих Java программистов Часто начинающие Java программисты ошибаются в попытке удалить элемент во вре
Популярные ошибки начинающих Java программистов Часто начинающие Java программисты ошибаются в попытке удалить элемент во время обхода списка. Рассмотрим пример кода, в котором происходит попытка удалить элемент во время обхода элементов списка(#неверно на картинке). В ходе выполнения этого кода будет выброшено ConcurrentModificationException, так как нельзя удалять элементы во время итерирования по списку. Такая же ситуация будет и с for-each циклом. Удалять элементы безопасно можно только при использовании интерфейса Iterator(см #верно на картинке). @java_geek

К каким конструкциям Java применим модификатор static? • полям; • методам; • вложенным классам; • членам секции import. @java_geek

Метод Character.isWhitespace() Метод определяет в Java, является ли указанное значение типа char пустым пространством, которо
Метод Character.isWhitespace() Метод определяет в Java, является ли указанное значение типа char пустым пространством, которое включает в себя пробел, табуляцию или новую строку. @java_geek

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

Получение обратного массива Используем библиотеку Apache Commons Lang. Библиотека Apache Commons Lang представляет собой набо
Получение обратного массива Используем библиотеку Apache Commons Lang. Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета java.lang.*. @java_geek

Метод Math.ceil() Метод дает целое число с нулевой дробной частью, ближайшее к числу аргумента справа, другими словами — окру
Метод Math.ceil() Метод дает целое число с нулевой дробной частью, ближайшее к числу аргумента справа, другими словами — округляет дробь в большую сторону. Возвращается переменная типа double. @java_geek

Валидация даты из строки Если необходимо достать объект Date из обычной строки в Java, можете использовать небольшой утилитны
Валидация даты из строки Если необходимо достать объект Date из обычной строки в Java, можете использовать небольшой утилитный класс, который приведен выше. Он позаботится обо всех сложностях валидации и преобразовании строки в объект Date. @java_geek

Почему в некоторых интерфейсах вообще не определяют методов? Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу. Примером может послужить интерфейс Clonable, который указывает на то, что класс поддерживает механизм клонирования. @java_geek

Переопределение (overriding) В терминах ООП переопределение значит перезапись функционала существующего метода. Если класс на
Переопределение (overriding) В терминах ООП переопределение значит перезапись функционала существующего метода. Если класс наследует метод из своего суперкласса, тогда есть шанс переопределить взятый метод, если он не помечен final. Преимущество в Java переопределения заключается в том, что оно позволяет определять (описывать) поведение, характерное для типа подкласса, значит подкласс может реализовать метод родительского класса на основе своих требований. В примере вы можете заметить, что b хоть и является типом Animal, оно запускает метод move в классе Dog. Причина тому такая, что во время компиляции проходит проверка ссылочного типа. Но во время выполнения JVM определяет тип объекта и запускает метод, который принадлежит этому конкретному объекту. Следовательно, программа запустится правильно, так как класс Animal имеет метод move. Затем, во время выполнения, он запускает метод, принадлежащий этому объекту. @java_geek

Метод valueOf() Метод valueOf() возвращает соответствующий числовой объект, содержащий значение переданного аргумента, просты
Метод valueOf() Метод valueOf() возвращает соответствующий числовой объект, содержащий значение переданного аргумента, простыми словами — преобразует в нужный тип данных. Аргумент можно преобразовать в int, double, float и другие типы данных, например, можно преобразовать строку в число. Метод valueOf() в Java является статическим. Он может принимать два аргумента, где один является строкой и другой является системой счисления. @java_geek

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

Удаление элемента массива Использовать этот метод действительно просто. Мы просто предоставляем ему массив, из которого мы хо
Удаление элемента массива Использовать этот метод действительно просто. Мы просто предоставляем ему массив, из которого мы хотели бы удалить элемент, и его индекс. @java_geek

Отправка email Отправить электронную почту на Java очень просто. Вам просто нужно установить Java Mail и указать путь к нему
Отправка email Отправить электронную почту на Java очень просто. Вам просто нужно установить Java Mail и указать путь к нему в пути к классам проекта. @java_geek

Содержимое директории Java позволяет вам получать имена всех подкаталогов и файлов в папке в виде массива, который затем можн
Содержимое директории Java позволяет вам получать имена всех подкаталогов и файлов в папке в виде массива, который затем можно последовательно прочитать. @java_geek