Как написать на Java функцию, подобную sizeof в C
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
https://nuancesprog.ru/p/16592/
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
https://nuancesprog.ru/p/16592/
NOP::Nuances of programming
Как написать на Java функцию, подобную sizeof в C
В качестве упражнения реализуем функцию sizeOf() на Java, чтобы без проблем получать размеры разных типов данных, как в C.
💫 Новогодний розыгрыш от Proglib academy!
Друзья, Новый год начинается с подарков, а лучший подарок себе – новые знания или даже профессия. И поэтому мы объявляем розыгрыш среди наших любимых подписчиков.
Подарки под елкой:
🥇 Apple AirPods Pro 2
🥈 Курс «Математика для Data Science
🥉 Курс: «Алгоритмы и структуры данных»
Подробнее об условиях участия, читайте тут: https://proglib.io/w/e72668b2
Друзья, Новый год начинается с подарков, а лучший подарок себе – новые знания или даже профессия. И поэтому мы объявляем розыгрыш среди наших любимых подписчиков.
Подарки под елкой:
🥇 Apple AirPods Pro 2
🥈 Курс «Математика для Data Science
🥉 Курс: «Алгоритмы и структуры данных»
Подробнее об условиях участия, читайте тут: https://proglib.io/w/e72668b2
#вопросы_с_собеседований
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
15 советов для развития экспертизы в Java
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
https://dev.to/weder96/15-tips-to-become-a-java-expert-1acj
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
https://dev.to/weder96/15-tips-to-become-a-java-expert-1acj
DEV Community
15 Tips to Become a Java Expert!
Content Introduction 1. Study the basic concepts until you understand the whole basis...
Введение в сериализацию
Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
YouTube
Урок по Java 46: Сериализация
Cкидки до 22-го января на все курсы всего за 9.99:
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
Вашему вниманию предлагается новая подборка Java-новостей от InfoQ: 😃
✔️ Стал доступен билд № 29 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 3 для JDK 21 (ранний доступ)
✔️ Вышли релизы Spring Boot 3.0.1 и Spring Boot 2.7.7
и д.р.
Приятного чтения!
Читать статью
✔️ Стал доступен билд № 29 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 3 для JDK 21 (ранний доступ)
✔️ Вышли релизы Spring Boot 3.0.1 и Spring Boot 2.7.7
и д.р.
Приятного чтения!
Читать статью
Какие существуют операторы SQL?
операторы определения данных (Data Definition Language, DDL):
•
•
•
операторы манипуляции данными (Data Manipulation Language, DML):
•
•
•
•
операторы определения доступа к данным (Data Control Language, DCL):
•
•
•
операторы управления транзакциями (Transaction Control Language, TCL):
•
•
•
операторы определения данных (Data Definition Language, DDL):
•
CREATE
создает объект БД (базу, таблицу, представление, пользователя и т. д.),•
ALTER
изменяет объект,•
DROP
удаляет объект;операторы манипуляции данными (Data Manipulation Language, DML):
•
SELECT
выбирает данные, удовлетворяющие заданным условиям,•
INSERT
добавляет новые данные,•
UPDATE
изменяет существующие данные,•
DELETE
удаляет данные;операторы определения доступа к данным (Data Control Language, DCL):
•
GRANT
предоставляет пользователю (группе) разрешения на определенные операции с объектом,•
REVOKE
отзывает ранее выданные разрешения,•
DENY
задает запрет, имеющий приоритет над разрешением;операторы управления транзакциями (Transaction Control Language, TCL):
•
COMMIT
применяет транзакцию,•
ROLLBACK
откатывает все изменения, сделанные в контексте текущей транзакции,•
SAVEPOINT
разбивает транзакцию на более мелкие.Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования.
https://habr.com/ru/company/rtlabs/blog/708052/
https://habr.com/ru/company/rtlabs/blog/708052/
Хабр
Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования. Часть 1
Однажды у нас появилась идея отправлять отчёты о выполнении автотестов в мессенджер Telegram. Постепенно эта идея переросла в сервис, который позволяет запускать тесты, оповещать об ошибках и получать...
🕓 Сколько часов в день может работать программист — [4:03]
Разные программисты из Яндекса с разным стажем работы рассказывают, сколько часов в день, по их мнению, может работать программист.
Примечательно, что более молодые и менее опытные сотрудники отмечают, что готовы работать чуть ли не 24/7, в то время как бывалые разработчики гораздо более адекватно оценивают свои силы.
Перейти к просмотру
Разные программисты из Яндекса с разным стажем работы рассказывают, сколько часов в день, по их мнению, может работать программист.
Примечательно, что более молодые и менее опытные сотрудники отмечают, что готовы работать чуть ли не 24/7, в то время как бывалые разработчики гораздо более адекватно оценивают свои силы.
Перейти к просмотру
YouTube
Сколько часов в день может работать программист?
Хотя программистов и называют технарями, а не гуманитариями, их работа —очень творческая. Сколько времени в день можно писать код? Сколько времени нужно, чтобы о нем подумать? Применим ли к программистам восьмичасовой рабочий день? На этот вопрос отвечают…
#вопросы_с_собеседований
Сравните Iterator и ListIterator.
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
Сравните Iterator и ListIterator.
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
#вопросы_с_собеседований
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
public static void main(String[] args) {
List<Integer> list = Collections.emptyList();
list.add(0);
}
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
List<Integer> list = Collections.emptyList();
list.add(0);
}
#вопросы_с_собеседований
Чем различаются Enumeration и Iterator?
Хотя оба интерфейса и предназначены для обхода коллекций, между ними имеются существенные различия:
☕️ с помощью Enumeration нельзя добавлять/удалять элементы;
☕️ в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator. next() и т.д);
☕️ Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.
Чем различаются Enumeration и Iterator?
Хотя оба интерфейса и предназначены для обхода коллекций, между ними имеются существенные различия:
☕️ с помощью Enumeration нельзя добавлять/удалять элементы;
☕️ в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator. next() и т.д);
☕️ Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.
Что выведет программа?
Anonymous Quiz
15%
%X%x%x%x%x%x%x10101010101010
36%
Aaaaaaa
13%
%X%x%x%x%x%x%x10101010101010
9%
%X%x%x%x%x%x%x
1%
%X%X%X%X%X%X%X
26%
Ничего
#вопросы_с_собеседований
Назовите основные свойства транзакции.
Атомарность (atomicity) гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.
Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.
Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.
Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.
Назовите основные свойства транзакции.
Атомарность (atomicity) гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.
Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.
Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.
Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.
dbeaver — бесплатный универсальный инструмент для работы с базами данных и SQL-клиент.
https://github.com/dbeaver/dbeaver
https://github.com/dbeaver/dbeaver
GitHub
GitHub - dbeaver/dbeaver: Free universal database tool and SQL client
Free universal database tool and SQL client. Contribute to dbeaver/dbeaver development by creating an account on GitHub.
#вопросы_с_собеседований
В чем заключается особенность работы метода clone () с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
В чем заключается особенность работы метода clone () с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
#вопросы_с_собеседований
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?
При следующем вызове методов итератора будет выброшено
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?
При следующем вызове методов итератора будет выброшено
ConcurrentModificationException
.