Мы можем использовать все предопределенные имена классов Java и интерфейсов в качестве идентификаторов.
#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
✔️Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
Kotlin Cookbook: A Problem-Focused Approach (2019)
Используйте Kotlin для создания Android-приложений, веб-приложений и многого другого, изучая нюансы этого популярного языка. С помощью этой уникальной книги разработчики могут узнать, как применять этот язык в своих проектах. Как опытные программисты, так и новички в Kotlin получат пользу от практических рецептов из книги.
Скачать книгу
Используйте Kotlin для создания Android-приложений, веб-приложений и многого другого, изучая нюансы этого популярного языка. С помощью этой уникальной книги разработчики могут узнать, как применять этот язык в своих проектах. Как опытные программисты, так и новички в Kotlin получат пользу от практических рецептов из книги.
Скачать книгу
Telegram
Книги для программистов (reserved)
Kotlin Cookbook: A Problem-Focused Approach (2019)
Автор: Ken Kousen
Автор: Ken Kousen
Часть собеседования на позицию Junior Java разработчика. Тема - Collection API.
https://proglib.io/w/90539455
https://proglib.io/w/90539455
YouTube
Java Junior реальное собеседование | Collection API | Часть 3
В этом видео я покажу вам фрагмент из реального собеседования на позицию Java Junior Developer. В этой части мы покроем одну из самых наиболее популярных тем на собеседовании - Сollection API.
Друзья, задавайте в комментариях свои вопросы, обязательно всем…
Друзья, задавайте в комментариях свои вопросы, обязательно всем…
Troubleshooting Java Performance: Detecting Anti-Patterns with Open Source Tools (2017)
Автор: Erik Ostermueller
Это небольшая книга, посвященная некоторому количеству антипаттернов производительности. Читая книгу, вы обнаружите, что большинство проблем, с которыми вы сталкиваетесь, вписываются в какой-либо из этих анти-шаблонов. Автор приводит разнообразные способы нахождения и устранения проблем в ваших проектах.
Скачать книгу
Автор: Erik Ostermueller
Это небольшая книга, посвященная некоторому количеству антипаттернов производительности. Читая книгу, вы обнаружите, что большинство проблем, с которыми вы сталкиваетесь, вписываются в какой-либо из этих анти-шаблонов. Автор приводит разнообразные способы нахождения и устранения проблем в ваших проектах.
Скачать книгу
Telegram
Книги для программистов (reserved)
Troubleshooting Java Performance: Detecting Anti-Patterns with Open Source Tools (2017)
Автор: Erik Ostermueller
Автор: Erik Ostermueller
Object — это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследует его методы:
public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
Создавай цифровые решения будущего и получи приз!
Мы объявляем онлайн-хакатон VirusHack от Ростелекома, организованный в партнерстве с Агентством инноваций Москвы и РАЭК. В нем вы прокачаете свои навыки в разработке технологий, которые помогут людям, бизнесу и государству приспосабливаться к нестандартным условиям жизни.
Победитель реализует свой проект при поддержке крупнейших компаний страны!
Призовой фонд хакатона 2 500 000 рублей!
Онлайн-хакатон пройдет с 3 по 5 мая 2020 года — успейте зарегистрироваться на него до 30 апреля 2020-го: https://proglib.io/w/6cc9408c
Добавляйтесь в чат хакатона: https://bit.ly/2RAQgOx
Мы объявляем онлайн-хакатон VirusHack от Ростелекома, организованный в партнерстве с Агентством инноваций Москвы и РАЭК. В нем вы прокачаете свои навыки в разработке технологий, которые помогут людям, бизнесу и государству приспосабливаться к нестандартным условиям жизни.
Победитель реализует свой проект при поддержке крупнейших компаний страны!
Призовой фонд хакатона 2 500 000 рублей!
Онлайн-хакатон пройдет с 3 по 5 мая 2020 года — успейте зарегистрироваться на него до 30 апреля 2020-го: https://proglib.io/w/6cc9408c
Добавляйтесь в чат хакатона: https://bit.ly/2RAQgOx
#вопросы_с_собеседований
Что вы знаете об OutOfMemoryError?
Что вы знаете об OutOfMemoryError?
OutOfMemoryError выбрасывается, когда виртуальная машина Java не может создать (разместить) объект из-за нехватки памяти, а сборщик мусора не может высвободить достаточное её количество.
Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места:
🔵 java.lang.OutOfMemoryError: Java heap space: Не хватает места в куче, а именно, в области памяти в которую помещаются объекты, создаваемые в приложении программно. Обычно проблема кроется в утечке памяти. Размер задается параметрами -Xms и -Xmx.
🔵 java.lang.OutOfMemoryError: PermGen space: (до версии Java 8) Данная ошибка возникает при нехватке места в Permanent области, размер которой задается параметрами -XX:PermSize и -XX:MaxPermSize.
🔵 java.lang.OutOfMemoryError: GC overhead limit exceeded: Данная ошибка может возникнуть как при переполнении первой, так и второй областей. Связана она с тем, что памяти осталось мало и сборщик мусора постоянно работает, пытаясь высвободить немного места. Данную ошибку можно отключить с помощью параметра -XX:-UseGCOverheadLimit.
🔵 java.lang.OutOfMemoryError: unable to create new native thread: Выбрасывается, когда нет возможности создавать новые потоки.
Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места:
🔵 java.lang.OutOfMemoryError: Java heap space: Не хватает места в куче, а именно, в области памяти в которую помещаются объекты, создаваемые в приложении программно. Обычно проблема кроется в утечке памяти. Размер задается параметрами -Xms и -Xmx.
🔵 java.lang.OutOfMemoryError: PermGen space: (до версии Java 8) Данная ошибка возникает при нехватке места в Permanent области, размер которой задается параметрами -XX:PermSize и -XX:MaxPermSize.
🔵 java.lang.OutOfMemoryError: GC overhead limit exceeded: Данная ошибка может возникнуть как при переполнении первой, так и второй областей. Связана она с тем, что памяти осталось мало и сборщик мусора постоянно работает, пытаясь высвободить немного места. Данную ошибку можно отключить с помощью параметра -XX:-UseGCOverheadLimit.
🔵 java.lang.OutOfMemoryError: unable to create new native thread: Выбрасывается, когда нет возможности создавать новые потоки.
Пожалуйста, присылайте вопросы, которые вам задавали на собеседованиях, в бота @java_interviews_bot (желательно с ответами). Мы будем анонимно публиковать ваши вопросы с решениями в этом канале. Этим вы можете помочь развитию нашего сообщества программистов. Бот: @java_interviews_bot
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «Пожалуйста, присылайте вопросы, которые вам задавали на собеседованиях, в бота @java_interviews_bot (желательно с ответами). Мы будем анонимно публиковать ваши вопросы с решениями в этом канале. Этим вы можете помочь развитию нашего сообщества программистов.…»
В Java поля классов и объектов, которые не имеют явного инициализатора, автоматически инициализируются со значением по умолчанию для их типа (false для boolean, 0 для всех числовых типов, null для всех ссылочных типов). Локальные переменные в Java должны быть обязательно инициализированы до того, как к ним будет получен доступ, иначе будет ошибка компиляции.