Получи случайную криптовалюту за регистрацию!

Java библиотека

Логотип телеграм канала @javalib — Java библиотека J
Логотип телеграм канала @javalib — Java библиотека
Адрес канала: @javalib
Категории: Технологии
Язык: Русский
Количество подписчиков: 30.33K
Описание канала:

Книги, статьи, мемы и многое другое для Java программиста!
По сотрудничеству и рекламе: @NadikaKir
Мы на бирже: telega.in/channels/javalib/card?r=lcDuijdm
Сообщество VK https://vk.com/javatutorial

Рейтинги и Отзывы

3.67

3 отзыва

Оценить канал javalib и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

0


Последние сообщения 227

2021-04-28 14:15:28 Что такое Heap и Stack память в Java? Какая разница между ними?

Heap (куча)
используется Java Runtime для выделения памяти под объекты и классы. Создание нового объекта также происходит в куче. Это же является областью работы сборщика мусора. Любой объект, созданный в куче, имеет глобальный доступ и на него могут ссылаться из любой части приложения.

Stack (стек) это область хранения данных также находящееся в общей оперативной памяти (RAM). Всякий раз, когда вызывается метод, в памяти стека создается новый блок, который содержит примитивы и ссылки на другие объекты в методе. Как только метод заканчивает работу, блок также перестает использоваться, тем самым предоставляя доступ для следующего метода. Размер стековой памяти намного меньше объема памяти в куче. Стек в Java работает по схеме LIFO (Последний-зашел-Первый-вышел)

Различия между Heap и Stack памятью:
• Куча используется всеми частями приложения, в то время как стек используется только одним потоком исполнения программы.
• Всякий раз, когда создается объект, он всегда хранится в куче, а в памяти стека содержится лишь ссылка на него. Память стека содержит только локальные переменные примитивных типов и ссылки на объекты в куче.
• Объекты в куче доступны с любой точки программы, в то время как стековая память не может быть доступна для других потоков.
• Стековая память существует лишь какое-то время работы программы, а память в куче живет с самого начала до конца работы программы.
• Если память стека полностью занята, то Java Runtime бросает исключение java.lang.StackOverflowError. Если заполнена память кучи, то бросается исключение java.lang.OutOfMemoryError: Java Heap Space.
• Размер памяти стека намного меньше памяти в куче.
• Из-за простоты распределения памяти, стековая память работает намного быстрее кучи.

Для определения начального и максимального размера памяти в куче используются -Xms и -Xmx опции JVM. Для стека определить размер памяти можно с помощью опции -Xss.
2.1K views11:15
Открыть/Комментировать
2021-04-27 09:07:13
О. И. Гуськова | Объектно-ориентированное программирование в Java (2018) PDF

Учебное пособие посвящено объектно-ориентированному программированию на языке Java. Рассматриваются основные принципы объектно-ориентированного программирования, средства работы со структурами данных – коллекции и дженерики, принципы объектно-ориентированного дизайна.
2.2K views06:07
Открыть/Комментировать
2021-04-24 16:57:43 Для чего используется оператор assert?

Assert
(Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных.

Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка.

Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ.

Т.к. утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы.

В Java проверка утверждений реализована с помощью оператора assert, который имеет форму:

[Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];

Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).
2.8K views13:57
Открыть/Комментировать
2021-04-23 19:54:06
2.5K views16:54
Открыть/Комментировать
2021-04-22 12:41:40 Каким образом из вложенного класса получить доступ к полю внешнего класса?

Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
2.7K views09:41
Открыть/Комментировать
2021-04-22 12:16:23 Сколько зарабатывают Java-разработчики?

Средняя зарплата Java-разработчика в Москве составляет около 120 тыс. руб. в месяц (до вычета НДФЛ). Зарплаты таких специалистов растут каждый год на 5–10%.

Что касается мировых показателей, то, по данным Stack Overflow, средняя зарплата Java-программиста составляет 120 тыс. долларов в год.
2.5K views09:16
Открыть/Комментировать
2021-04-21 17:02:19
2.7K views14:02
Открыть/Комментировать
2021-04-20 17:30:01
Мир, труд, Spring!

Всем специалистам Java, претендующим на интересные проекты и зарплату 200 тыс. рублей, сообщается:
OTUS открывает набор в новую группу онлайн-курса «Spring Framework»!

За 5 месяцев вы погрузитесь в возможности самого популярного фреймворка Java и освоите технологии, необходимые для профессионального роста: MVC, Security, Boot, Reactive Stack и Spring 5 и т.д.

Вы научитесь быстро проходить путь от идеи до production-grade и пополните портфолио своим web-приложением на микросервисной архитектуре.
Пройдите вступительный тест и занимайте место, пока действует спец.цена: https://otus.pw/MxLY/
2.7K views14:30
Открыть/Комментировать
2021-04-20 14:25:00
Томаш Нуркевич, Бен Кристенсен | Реактивное программирование с использованием RxJava (2017) PDF

В наши дни, когда программы асинхронны, а быстрая реакция — важнейшее свойство, реактивное программирование поможет писать более надежный, лучше масштабируемый и быстрее работающий код. Благодаря этой книге программист на Java узнает о реактивном подходе к задачам и научится создавать программы, вобравшие в себя лучшие черты этой новой и весьма перспективной парадигмы.
2.3K views11:25
Открыть/Комментировать