Что такое абстрактные классы?
Абстрактные классы — это классы, которые не могут быть инстанциированы напрямую, то есть нельзя создать объект абстрактного класса при помощи оператора new. Они предназначены для обеспечения базовой структуры и функциональности для других классов, которые наследуются от них. Абстрактные классы представляют собой в некотором роде «заготовки» для подклассов, указывая на общие атрибуты и методы, которые они должны реализовать.
Абстрактные классы — это классы, которые не могут быть инстанциированы напрямую, то есть нельзя создать объект абстрактного класса при помощи оператора new. Они предназначены для обеспечения базовой структуры и функциональности для других классов, которые наследуются от них. Абстрактные классы представляют собой в некотором роде «заготовки» для подклассов, указывая на общие атрибуты и методы, которые они должны реализовать.
August 23, 2024
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
💪🛠️ Прокачай свой бэкенд: 9 инструментов, которые стоит знать
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
От браузерной ИИ-песочницы PostgreSQL до суперскоростного валидатора email — обзор новейших инструментов, которые упростят вашу работу и повысят продуктивность.
Читать статью
August 24, 2024
Что делает метод Character.toString()?
Метод Character.toString() в Java используется для преобразования символа в строку. Он принимает в качестве аргумента символ типа char и возвращает строку, состоящую из одного символа.
Сигнатура метода:
public static String toString(char ch)
Аргумент:
ch — символ, который необходимо преобразовать в строку.
Возвращаемое значение:
Строка, состоящая из одного символа.
Метод Character.toString() в Java используется для преобразования символа в строку. Он принимает в качестве аргумента символ типа char и возвращает строку, состоящую из одного символа.
Сигнатура метода:
public static String toString(char ch)
Аргумент:
ch — символ, который необходимо преобразовать в строку.
Возвращаемое значение:
Строка, состоящая из одного символа.
August 25, 2024
Возведение в степень
Возвести число в степень можно двумя способами:
1) простое умножение;
2) используя метод Math.pow().
Использование библиотечной функции рекомендуется только в случае крайней необходимости, например, в случае дробной или отрицательной степени.
Простое умножение в Java работает в 300-600 раз эффективнее, кроме того, его можно дополнительно оптимизировать.
Возвести число в степень можно двумя способами:
1) простое умножение;
2) используя метод Math.pow().
Использование библиотечной функции рекомендуется только в случае крайней необходимости, например, в случае дробной или отрицательной степени.
Простое умножение в Java работает в 300-600 раз эффективнее, кроме того, его можно дополнительно оптимизировать.
August 26, 2024
Реализуйте в Java класс, представляющий стек (stack), который поддерживает операции push, pop и получение минимального элемента (getMin) — все операции должны выполняться за константное время (O(1)). Напишите код и объясните, как вы решите эту задачу.
Объяснение:
В этом коде используется два стека:
В методе
В методе
Методы
Сложность:
Временная сложность для всех операций: O(1). Все операции выполняются за константное время, так как мы используем два стека и не производим поиск по всему стеку для поиска минимального элемента.
Пространственная сложность: O(n). Где n — количество элементов в стеке. Мы используем два стека, но их размер ограничен размером стека.
Объяснение:
В этом коде используется два стека:
stack
для хранения элементов стека и minStack
для хранения минимальных элементов.В методе
push
, при добавлении нового элемента в стек проверяется, является ли он минимальным. Если да, то он также добавляется в minStack
.В методе
pop
, при извлечении элемента из стека проверяется, является ли этот элемент минимальным. Если да, то он также удаляется из minStack
.Методы
top
и getMin
просто возвращают верхний элемент стека и минимальный элемент соответственно.Сложность:
Временная сложность для всех операций: O(1). Все операции выполняются за константное время, так как мы используем два стека и не производим поиск по всему стеку для поиска минимального элемента.
Пространственная сложность: O(n). Где n — количество элементов в стеке. Мы используем два стека, но их размер ограничен размером стека.
August 27, 2024
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
August 27, 2024
Какие существуют unchecked exception?
Наиболее часто встречающиеся: ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.
Наиболее часто встречающиеся: ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.
August 28, 2024
Что такое RecursiveTask?
RecursiveTask является частью фреймворка Fork/Join в Java, введенного в Java 7. Этот фреймворк предоставляет удобный способ распараллеливания выполнения задач.
RecursiveTask является подклассом ForkJoinTask. Он предназначен для использования вместе с пулом Fork/Join (ForkJoinPool) и предоставляет специальные методы для разделения задачи на подзадачи и объединения результатов.
RecursiveTask является частью фреймворка Fork/Join в Java, введенного в Java 7. Этот фреймворк предоставляет удобный способ распараллеливания выполнения задач.
RecursiveTask является подклассом ForkJoinTask. Он предназначен для использования вместе с пулом Fork/Join (ForkJoinPool) и предоставляет специальные методы для разделения задачи на подзадачи и объединения результатов.
August 29, 2024
Как получить IP адрес клиента на сервере?
IP адрес клиента можно получить вызвав request.getRemoteAddr().
IP адрес клиента можно получить вызвав request.getRemoteAddr().
August 30, 2024
Можно ли перегрузить static метод?
Перегрузка методов позволяет создать несколько методов с одинаковым именем, но разными списками параметров. Это работает как для обычных, так и для статических методов класса.
Например, можно создать статический метод sum, который будет складывать числа. Метод можно перегрузить, создав одну версию для сложения целых чисел (int), а другую — для сложения чисел с плавающей точкой (double).
При вызове метода компилятор будет выбирать нужную версию на основе типа аргументов.
Это делает класс с перегруженными методами более гибким и удобным для использования.
Перегрузка методов позволяет создать несколько методов с одинаковым именем, но разными списками параметров. Это работает как для обычных, так и для статических методов класса.
Например, можно создать статический метод sum, который будет складывать числа. Метод можно перегрузить, создав одну версию для сложения целых чисел (int), а другую — для сложения чисел с плавающей точкой (double).
При вызове метода компилятор будет выбирать нужную версию на основе типа аргументов.
Это делает класс с перегруженными методами более гибким и удобным для использования.
August 31, 2024
👾 -35% на курс по алгоритмам
На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/52359172
23 390 рублей35 990 рублей
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🌚 Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/52359172
На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/52359172
23 390 рублей
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
Please open Telegram to view this post
VIEW IN TELEGRAM
September 1, 2024
Forwarded from Proglib.academy | IT-курсы
💀 Как гарантированно провалить собеседование: 10 верных способов
В интернете можно найти много статей с советами, как идеально пройти собеседование: что говорить, как говорить, как себя вести, с чем приходить, как готовиться, где готовиться, какую информацию предварительно изучить. В общем, инструкций — вагон. Но, если честно, не очень хочется повторяться. Поэтому мы подготовили шуточную статью, как точно провалить собеседование.
Чтобы не завалить собеседование — забирайте наш курс:
🔵 Базовые модели ML и приложения
🔗 Ссылка на статью
В интернете можно найти много статей с советами, как идеально пройти собеседование: что говорить, как говорить, как себя вести, с чем приходить, как готовиться, где готовиться, какую информацию предварительно изучить. В общем, инструкций — вагон. Но, если честно, не очень хочется повторяться. Поэтому мы подготовили шуточную статью, как точно провалить собеседование.
Чтобы не завалить собеседование — забирайте наш курс:
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
September 1, 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
September 2, 2024
Параллелизм и многопоточность — это два разных, но связанных понятия в программировании. Многопоточность означает
Параллелизм, с другой стороны, означает
Please open Telegram to view this post
VIEW IN TELEGRAM
September 3, 2024
Эти три термина часто путают, но они имеют принципиально разные значения:
🔹 final — это ключевое слово, используемое для
▪️ Переменная: значение не может быть изменено после инициализации.
▪️ Метод: не может быть переопределён в подклассе.
▪️ Класс: запрещает наследование.
🔹 finally — это блок кода, который
🔹 finalize() — это метод, который
Please open Telegram to view this post
VIEW IN TELEGRAM
September 4, 2024
— Лямбда-выражения имеют лаконичный синтаксис по сравнению с анонимными классами. Лямбды проще читать и писать, так как они не требуют явного объявления метода, тогда как анонимные классы содержат больше «лишнего» кода.
— Лямбды используются, когда интерфейс имеет один абстрактный метод (функциональные интерфейсы), тогда как анонимные классы могут реализовать несколько методов и применяться для интерфейсов с несколькими методами.
— Лямбды могут быть более эффективными, так как они компилируются в байт-код, который может быть оптимизирован. Анонимные классы обычно компилируются как отдельные классы, что может требовать больше ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
September 5, 2024
🔹 Heap (Куча):
Это область памяти, где хранятся
🔹 Stack (Стек):
Это область памяти, где хранятся
Please open Telegram to view this post
VIEW IN TELEGRAM
September 6, 2024
🔹 sleep():
🔹 wait():
Используйте sleep() для временной паузы, а wait() для синхронизации между потоками.
Please open Telegram to view this post
VIEW IN TELEGRAM
September 7, 2024
Какой уровень вопросов вам интересен (можно выбрать несколько):
Anonymous Poll
29%
Начинающий (Java core, базовые задачки)
47%
Продолжающий (Работа с библиотеками, API, простые алгоритмы)
57%
Продвинутый (Продвинутые алгоритмы, оптимизация кода, паттерны)
57%
Сложный (Фреймворки, реальные кейсы)
September 8, 2024
🔹 Порядок хранения элементов:
🔹 Время доступа к элементам:
🔹 Использование в различных задачах:
Please open Telegram to view this post
VIEW IN TELEGRAM
September 9, 2024