Anonymous Inner Class
Anonymous Inner Class (Анонимный Внутренний Класс) — это специальный тип внутреннего класса, который определяется без имени и создается «на лету» внутри блока кода или выражения. Он является удобным способом создания классов, когда класс нужен только для реализации какого-то интерфейса или абстрактного класса, и нет необходимости создавать отдельный именованный класс.
Анонимные внутренние классы обычно используются для создания объектов, которые реализуют интерфейсы или наследуются от абстрактных классов. Они часто используются в событийном программировании и обработке событий в пользовательском интерфейсе, где нужно определить обратный вызов (callback) или обработчик (handler) на месте.
Anonymous Inner Class (Анонимный Внутренний Класс) — это специальный тип внутреннего класса, который определяется без имени и создается «на лету» внутри блока кода или выражения. Он является удобным способом создания классов, когда класс нужен только для реализации какого-то интерфейса или абстрактного класса, и нет необходимости создавать отдельный именованный класс.
Анонимные внутренние классы обычно используются для создания объектов, которые реализуют интерфейсы или наследуются от абстрактных классов. Они часто используются в событийном программировании и обработке событий в пользовательском интерфейсе, где нужно определить обратный вызов (callback) или обработчик (handler) на месте.
java.time.LocalDate
Это класс из пакета java.time, введенного в Java 8, который предоставляет удобные средства для работы с датами в формате «год-месяц-день». Этот класс представляет собой дату без времени и без учета часовых поясов. Он используется для выполнения операций, связанных только с датами, без учета времени суток.
Это класс из пакета java.time, введенного в Java 8, который предоставляет удобные средства для работы с датами в формате «год-месяц-день». Этот класс представляет собой дату без времени и без учета часовых поясов. Он используется для выполнения операций, связанных только с датами, без учета времени суток.
⚙️⚙️ Framework для автоматизации тестирования на Java
В качестве языка программирования была выбрана Java, сборщик проектов — Maven, среда тестирования — JUnit5.
Для работы с БД выбран Hibernate. Он широко известен как в кругу автоматизаторов, так и в кругу разработчиков. Hibernate — это фреймворк для Java, предназначен для работы с базой данных. Объекты в нем описываются на языке программирования с применением принципов ООП. Запросы в базу можно писать как в стандартном виде SQL, так и с помощью HQL. HQL — это Hibernate Query Language — объектно‑ориентированный язык запросов, который очень похож на SQL, но, в отличие от него, работает с объектами и полями, в то время как SQL работает с таблицами и столбцами в базе.
В статье будет пример работы с базой.
#туториал
В качестве языка программирования была выбрана Java, сборщик проектов — Maven, среда тестирования — JUnit5.
Для работы с БД выбран Hibernate. Он широко известен как в кругу автоматизаторов, так и в кругу разработчиков. Hibernate — это фреймворк для Java, предназначен для работы с базой данных. Объекты в нем описываются на языке программирования с применением принципов ООП. Запросы в базу можно писать как в стандартном виде SQL, так и с помощью HQL. HQL — это Hibernate Query Language — объектно‑ориентированный язык запросов, который очень похож на SQL, но, в отличие от него, работает с объектами и полями, в то время как SQL работает с таблицами и столбцами в базе.
В статье будет пример работы с базой.
#туториал
Чем отличаются checked и unchecked исключения?
Вопрос формулируют по-разному, суть вопроса — объяснение иерархии классов исключений. Подробно описано в документации.
Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе throws; перехватывать или добавлять в throws в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws.
♦️ Throwable — базовый класс для всего что может быть использовано с оператором throw и в конструкции try-catch
♦️ RuntimeException — «нормальные» unchecked-исключения
♦️ Error — unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий
♦️ Exception (кроме RuntimeException) — checked исключения
Вопрос формулируют по-разному, суть вопроса — объяснение иерархии классов исключений. Подробно описано в документации.
Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе throws; перехватывать или добавлять в throws в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws.
♦️ Throwable — базовый класс для всего что может быть использовано с оператором throw и в конструкции try-catch
♦️ RuntimeException — «нормальные» unchecked-исключения
♦️ Error — unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий
♦️ Exception (кроме RuntimeException) — checked исключения
🤔 Очередной #дайджет для джавистов
🟤 Принципы и шаблоны чистого кода — руководство для специалиста по программному обеспечению
🟤 Рыночные данные в кармане — как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi
🟤 Подкаст Javaswag — о нагруженных сервисах и нестандартных практиках в процессах
🟤 Задача на миллиард строк — интересная задача и варианты ее решения
🟤 Разбираемся с MavenGate — новая атака на цепочку поставок для Java и Android-приложений
🟤 Принципы и шаблоны чистого кода — руководство для специалиста по программному обеспечению
🟤 Рыночные данные в кармане — как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi
🟤 Подкаст Javaswag — о нагруженных сервисах и нестандартных практиках в процессах
🟤 Задача на миллиард строк — интересная задача и варианты ее решения
🟤 Разбираемся с MavenGate — новая атака на цепочку поставок для Java и Android-приложений
Класс Hashtable
Представляет собой структуру данных, которая используется для хранения и управления коллекциями пар «ключ-значение». Hashtable является одной из структур данных, предоставляемых Java Collections Framework, и работает по принципу хеш-таблицы. Он был представлен в ранних версиях Java и является устаревшим начиная с Java 5, так как более современные альтернативы, такие как HashMap, предпочтительнее.
Представляет собой структуру данных, которая используется для хранения и управления коллекциями пар «ключ-значение». Hashtable является одной из структур данных, предоставляемых Java Collections Framework, и работает по принципу хеш-таблицы. Он был представлен в ранних версиях Java и является устаревшим начиная с Java 5, так как более современные альтернативы, такие как HashMap, предпочтительнее.
📍📍 Tinkoff Java Meetup в Рязани
Доклады:
👉 как использование различных технологий для написания параллельного кода влияет на читаемость и производительность;
👉 почему команда Тинькофф выбрала Micronaut, а не Camunda
👉 что скрывается под маркетинговыми фразами о надежности, бесконечности и универсальности в object storage.
📆 13 февраля, пространство Svoboda
Регистрация тут
Доклады:
👉 как использование различных технологий для написания параллельного кода влияет на читаемость и производительность;
👉 почему команда Тинькофф выбрала Micronaut, а не Camunda
👉 что скрывается под маркетинговыми фразами о надежности, бесконечности и универсальности в object storage.
📆 13 февраля, пространство Svoboda
Регистрация тут
new vs valueOf
Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
😈 Даркнет: как устроен теневой рынок труда
Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.
🔗 Читать статью
🔗 Зеркало
Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.
🔗 Читать статью
🔗 Зеркало
🤔❓ Где бесплатно учить Java в 2024 году
Изучения Java в 2024 году остается актуальным по нескольким причинам:
Популярность: Java является одним из самых популярных языков программирования в мире и сохранит свою популярность и в 2024 году. Множество компаний и организаций используют Java для разработки приложений и веб-сервисов, поэтому знание этого языка будет востребовано.
Карьерные возможности: Знание Java открывает широкий спектр карьерных возможностей. Работа с Java может предоставить вам возможность работать в таких областях, как разработка мобильных приложений, веб-разработка, разработка игр, аналитика данных и многое другое.
Android-разработка: Java является популярным языком программирования для разработки приложений под платформу Android. С учетом того, что Android продолжает быть одной из самых популярных мобильных операционных систем в мире, знание Java будет необходимым для разработки приложений для этой платформы.
Устоявшийся экосистема: Java имеет богатую экосистему инструментов и фреймворков, которые помогают разработчикам ускорить процесс разработки и повысить производительность. Знание Java позволит вам использовать все преимущества этой экосистемы и упростить свою работу.
Надежность и безопасность: Java известен своей надежностью и безопасностью. Это язык, который широко используется в критически важных системах, таких как финансовые институты и государственные организации, где надежность и безопасность являются приоритетными.
Продолжение здесь
#почитать
Изучения Java в 2024 году остается актуальным по нескольким причинам:
Популярность: Java является одним из самых популярных языков программирования в мире и сохранит свою популярность и в 2024 году. Множество компаний и организаций используют Java для разработки приложений и веб-сервисов, поэтому знание этого языка будет востребовано.
Карьерные возможности: Знание Java открывает широкий спектр карьерных возможностей. Работа с Java может предоставить вам возможность работать в таких областях, как разработка мобильных приложений, веб-разработка, разработка игр, аналитика данных и многое другое.
Android-разработка: Java является популярным языком программирования для разработки приложений под платформу Android. С учетом того, что Android продолжает быть одной из самых популярных мобильных операционных систем в мире, знание Java будет необходимым для разработки приложений для этой платформы.
Устоявшийся экосистема: Java имеет богатую экосистему инструментов и фреймворков, которые помогают разработчикам ускорить процесс разработки и повысить производительность. Знание Java позволит вам использовать все преимущества этой экосистемы и упростить свою работу.
Надежность и безопасность: Java известен своей надежностью и безопасностью. Это язык, который широко используется в критически важных системах, таких как финансовые институты и государственные организации, где надежность и безопасность являются приоритетными.
Продолжение здесь
#почитать
Forwarded from Библиотека собеса по Java | вопросы с собеседований
EventListener
EventListener (слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.
EventListener (слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.
🤔 Очередной #дайджет для джавистов
🚩 DSL и конфигураторы контекста безопасности — Spring Security в деталях
🚩 Мероприятие — пишем качественный код
🚩 Framework для автоматизации тестирования на Java — путь к стабильности и качеству системы
🚩 Путеводитель в мире Java — бесплатные уроки для начинающих по Java
🚩 Mobile PeerLab — митап для мобильных разработчиков по трем трекам: iOS, Android, Flutter
🚩 DSL и конфигураторы контекста безопасности — Spring Security в деталях
🚩 Мероприятие — пишем качественный код
🚩 Framework для автоматизации тестирования на Java — путь к стабильности и качеству системы
🚩 Путеводитель в мире Java — бесплатные уроки для начинающих по Java
🚩 Mobile PeerLab — митап для мобильных разработчиков по трем трекам: iOS, Android, Flutter
🧑🎓🧑🎓 Анализ и оценка перспективы использования LSMW для автоматизации подготовки тестовых данных в SAP
При внедрении ERP-системы SAP одним из наиважнейших вопросов является вопрос загрузки данных исторических систем (например, тех, что функционировали на предприятии до внедрения SAP) в новую ERP. В случае истории автора, одним из важнейших вопросов является создание данных, которые можно использовать для тестирования системы.
Миграция данных является неотъемлемой частью жизнедеятельности любой ИС. Объектами миграции данных являются:
👉 все необходимые справочные данные (НСИ), имеющиеся в исторических системах;
👉 все необходимые персональные данные, имеющиеся в исторических системах.
Продолжение тут
#почитать
При внедрении ERP-системы SAP одним из наиважнейших вопросов является вопрос загрузки данных исторических систем (например, тех, что функционировали на предприятии до внедрения SAP) в новую ERP. В случае истории автора, одним из важнейших вопросов является создание данных, которые можно использовать для тестирования системы.
Миграция данных является неотъемлемой частью жизнедеятельности любой ИС. Объектами миграции данных являются:
👉 все необходимые справочные данные (НСИ), имеющиеся в исторических системах;
👉 все необходимые персональные данные, имеющиеся в исторических системах.
Продолжение тут
#почитать
Хабр
Анализ и оценка перспективы использования LSMW для автоматизации подготовки тестовых данных в SAP
Привет, Хабр! Меня зовут Василь Хамидуллин, я работаю в ЦК тестирования АСУ ФХД в компании РСХБ-Интех. В прошлый раз я делился опытом тестирования бизнес процессов, внедряемых модулей SAP, в банке....
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Интерфейс Supplier
Интерфейс Supplier — это функциональный интерфейс в языке программирования Java, определенный в пакете java.util.function. Он представляет собой интерфейс, который может использоваться для предоставления значений, но не принимает аргументов. В этом интерфейсе есть один метод, который не принимает аргументов и возвращает значение.
Метод Supplier:
T get();
Где T — это тип возвращаемого значения.
Supplier может быть полезным, когда вам нужно получить значение, но не требуется передавать какие-либо аргументы для его получения. Этот интерфейс часто используется, например, в лямбда-выражениях и стримах для предоставления значений.
Интерфейс Supplier — это функциональный интерфейс в языке программирования Java, определенный в пакете java.util.function. Он представляет собой интерфейс, который может использоваться для предоставления значений, но не принимает аргументов. В этом интерфейсе есть один метод, который не принимает аргументов и возвращает значение.
Метод Supplier:
T get();
Где T — это тип возвращаемого значения.
Supplier может быть полезным, когда вам нужно получить значение, но не требуется передавать какие-либо аргументы для его получения. Этот интерфейс часто используется, например, в лямбда-выражениях и стримах для предоставления значений.
Метод compareTo()
Используется для сравнения двух объектов. Обычно он применяется к объектам, реализующим интерфейс Comparable, чтобы определить их относительный порядок. Вот как обычно выглядит сигнатура метода compareTo():
int compareTo(T obj)
где T — это тип объектов, с которыми сравнивается текущий объект. Метод возвращает отрицательное целое число, ноль или положительное целое число в зависимости от того, как текущий объект сравнивается с переданным объектом obj.
➖ Отрицательное число указывает на то, что текущий объект меньше, чем объект obj.
➖ Ноль указывает на то, что текущий объект равен объекту obj.
➖ Положительное число указывает на то, что текущий объект больше, чем объект obj.
Используется для сравнения двух объектов. Обычно он применяется к объектам, реализующим интерфейс Comparable, чтобы определить их относительный порядок. Вот как обычно выглядит сигнатура метода compareTo():
int compareTo(T obj)
где T — это тип объектов, с которыми сравнивается текущий объект. Метод возвращает отрицательное целое число, ноль или положительное целое число в зависимости от того, как текущий объект сравнивается с переданным объектом obj.
➖ Отрицательное число указывает на то, что текущий объект меньше, чем объект obj.
➖ Ноль указывает на то, что текущий объект равен объекту obj.
➖ Положительное число указывает на то, что текущий объект больше, чем объект obj.
🏔 Эпикфейл: карьера катится к чертям
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей