Обложка канала

Библиотека джависта. Страница 15

20804 @javaproglib

Полезные материалы по всему, что может быть полезно разработчику на Java.

  • Библиотека джависта

    Проблема квадрата/прямоугольника, объяснение и решение В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение. https://youtu.be/AILeiAJY_78
    Проблема квадрата/прямоугольника, объяснение и решение

    В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение. #solid #lsp

    YouTube
  • Библиотека джависта

    🤔Как написать игру «Game Of Life» на Clojure? Узнайте на бесплатном вебинаре в OTUS: https://otus.pw/qRx0/ ✅Занятие приурочено к старту онлайн-курса «Clojure Developer». На вебинаре мы: — Узнаем, как реализовать на Clojure классическую задачу Computer Science — Game of Life. — Обсудим разные способы визуализации работы алгоритма. — Рассмотрим, как представить состояние игры с помощью персистентных структур данных и вести разработку интерактивно через REPL. 👍Продолжить обучение на курсе возможно в рассрочку. Курс ориентирован на разработчиков с опытом работы от года. Пройдите тест на сайте, узнайте, осилите ли вы обучение! 👉ПРОЙТИ ПОЛНЫЙ ТЕСТ ПО CLOJURE: https://otus.pw/oqvh/ Нативная интеграция. Информация о продукте www.otus.ru
  • Библиотека джависта

    Проверяем наличие дубликатов в массиве в Java Мы можем работать лучше, используя Хеширование. Идея состоит в том, чтобы пройти по заданному массиву и вставить каждый встреченный элемент в HashSet. Теперь, если встреченный элемент уже присутствовал в наборе, он является дубликатом. Временная сложность этого решения O(n) но вспомогательное пространство используется O(n). Мы знаем это HashSet не допускает дублирования значений в нем. Мы можем использовать это свойство для проверки дубликатов в массиве. Идея состоит в том, чтобы вставить все элементы массива в HashSet. Теперь массив содержит дубликат, если длина массива не равна размеру набора. Другие способы проверить массив на дубликаты можно найти здесь.
  • Реклама

  • Библиотека джависта

    Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer? ☕️ InputStream и его наследники нужны для получения байтовых данных из разных источников ☕️ OutputStream и его наследники — набор классов, определяющих потоковый байтовый вывод ☕️ Writer и его наследники определяют потоковый вывод символов в юникоде ☕️ Reader и его наследники определяют потоковый ввод символов в юникоде
  • Библиотека джависта

    Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице? • ключ равен null: 1 - выполняется единственный метод getForNullKey(). • любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
  • Библиотека джависта

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

    #вопросы_с_собеседований Что выведет эта программа? Ответ: Программа напечатает “num1 == num2”. Если мы сравниваем две ссылки на объекты с помощью ==, значение всегда будет «false». Но в этом примере переменные num1 и num2 автоупаковываются (autoboxing) из-за Integer-кэширования. Вот почему num1 == num2 возвращает значение «true». Не забудьте, что Integer-кэширование актуально только для значений от -128 до 127.
  • Библиотека джависта

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

    #вопросы_с_собеседований Объясните разницу между Linkedlist и Arraylist. ArrayList — это реализация интерфейса List, основанная на массиве. ArrayList внутренне обрабатывает изменение размера этого массива при добавлении или удалении элементов. Вы можете получить доступ к его элементам за константное время по их индексу в массиве. Однако вставка или удаление элемента подразумевает сдвиг всех последующих элементов, что может быть медленным, если массив огромен, а вставленный или удаленный элемент находится близко к началу списка. LinkedList — это двусвязный список: отдельные элементы помещаются в объекты Node (узел), которые имеют ссылки на предыдущий и следующий Node. Эта реализация может оказаться более эффективной, чем ArrayList, если у вас много вставок или удалений в разных частях списка, особенно если список большой. Однако в большинстве случаев ArrayList превосходит LinkedList. Даже перемещение элементов в ArrayList, хотя и является операцией O(n), реализовано в виде очень быстрого вызова System.arraycopy(). Это может даже оказаться быстрее, чем O(1) вставка в LinkedList, которая требует создания экземпляра объекта Node и обновления нескольких ссылок под капотом. LinkedList также может иметь большие накладные расходы памяти из-за создания нескольких небольших Node объектов.
  • Библиотека джависта

    #вопросы_с_собеседований Предположим, у нас есть циклическая ссылка — два объекта, которые ссылаются друг на друга. Может ли такая пара объектов стать подходящей для сборки мусора и почему? Да, пара объектов с циклической ссылкой может стать подходящей для сборки мусора. Это связано с тем, как сборщик мусора Java обрабатывает циклические ссылки. Он считает объекты живыми не тогда, когда на них есть какая-либо ссылка, а когда они достижимы при навигации по графу объектов, начиная с некоторого корня сборки мусора (локальная переменная живого потока или статическое поле). Если пара объектов с циклической ссылкой недоступна ни из одного корня, считается, что она подходит для сборки мусора.
  • Библиотека джависта

    #вопросы_с_собеседований Что такое JSON схема? JSON Schema — один из языков описания структуры JSON-документа, используя синтаксис JSON. Это самоописательный язык: при его использовании для обработки данных и описания их допустимости могут использоваться одни и те же инструменты сериализации/десериализации.
  • Библиотека джависта

    Пустая коллекция вместо Null Если ваша программа может вернуть коллекцию, которая не содержит никаких значений, убедитесь, что возвращается пустая коллекция, а не Null. Это сэкономит вам время на различные проверки и избавит от многих ошибок.
  • Библиотека джависта

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

    Как присоединиться к одной из команд ВКонтакте за одни выходные? Принять участие в Weekend Offer для фронтенд- и бэкенд-разработчиков 15-16 апреля и получить возможность влиться в направления B2C и B2B — ВКонтакте и ВКонтакте для бизнеса. Отправляйте отклик до 13 апреля.
  • Библиотека джависта

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

  • Библиотека джависта

    #вопросы_с_собеседований Как исключить поля из сериализации? Для управления сериализацией при определении полей можно использовать ключевое слово transient, таким образом исключив поля из общего процесса сериализации.
  • Библиотека джависта

    SOLID в деталях: Принцип открытости/закрытости В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение. Второй ролик посвящён принципу открытости/закрытости. https://youtu.be/Okwn-50NY9I
    SOLID в деталях: Принцип открытости/закрытости

    В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение. Второй ролик посвящён принципу открытости/закрытости. #java #solid #ocp #softwarearchitecture

    YouTube
  • Библиотека джависта

    🤖 Пройди тест по Java 👩‍💻 Проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене. За 6 месяцев обучения вы: - Научитесь создавать современные java-приложения - Поймете основы функционирования JVM (сборка мусора, byteCode) - Освоите приемы применения многопоточности - Напишите выпускной проект на любую тему под наставничеством преподавателя 🎫Курс можно приобрести в рассрочку 👉 ПРОЙТИ ТЕСТ: https://otus.pw/BKin/ Реклама. Информация о рекламодателе на сайте otus.ru