Считаем уникальные IPv4 адреса
Эта задача была предложена мне на одном из курсов по Java. В статье излагаю своё решение, а также анализ его эффективности. Обработка IP адресов необходима для многих проектов, и я надеюсь, что алгоритмы, описанные в этой статье, могут быть полезны.
Задача
В текстовом файле содержится список IPv4 адресов в десятичной записи.
https://habr.com/ru/post/679008/
👉@BookJava
Эта задача была предложена мне на одном из курсов по Java. В статье излагаю своё решение, а также анализ его эффективности. Обработка IP адресов необходима для многих проектов, и я надеюсь, что алгоритмы, описанные в этой статье, могут быть полезны.
Задача
В текстовом файле содержится список IPv4 адресов в десятичной записи.
https://habr.com/ru/post/679008/
👉@BookJava
👍7
Hibernate Best Practices для начинающих
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Дисклеймер: я не претендую на полноту необходимых действий, ни на их уникальность, если я что-то упустил или исказил, комментарии приветствуются.
👉@BookJava
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Дисклеймер: я не претендую на полноту необходимых действий, ни на их уникальность, если я что-то упустил или исказил, комментарии приветствуются.
👉@BookJava
👍3
Метод compareTo()
В Java метод
👉@BookJava
В Java метод
compareTo()
получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.👉@BookJava
👍11
Какие значения возвращают мутаторы Map?
Давайте разберемся с этой путаницей раз и навсегда.
• Методы put (
• Методы работы с множеством элементов (
•
• Методы с коллбэками (
👉@BookJava
Давайте разберемся с этой путаницей раз и навсегда.
• Методы put (
put
, putIfAbsent
) возвращают старое значение.• Методы работы с множеством элементов (
putAll
, replaceAll
, clear
) не возвращают ничего.•
remove
и replace
с указанием не только ключа, но и старого значения, возвращают boolean
; без указания – это самое старое значение.• Методы с коллбэками (
computeIfPresent
, computeIfAbsent
, compute, merge
) возвращают актуальное значение после вызова, оставшееся или новое.👉@BookJava
👍5
Forwarded from ITmozg
Beginning Programming with Java For Dummies
Автор: Barry Burd (2021)
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Что внутри:
✔️Описание базовых особенностей Java;
✔️Циклы и массивы;
✔️Объекты и классы;
✔️Методы и переменные;
✔️Ссылки на дополнительные источники.
Скачать книгу
@itmozg
Автор: Barry Burd (2021)
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Что внутри:
✔️Описание базовых особенностей Java;
✔️Циклы и массивы;
✔️Объекты и классы;
✔️Методы и переменные;
✔️Ссылки на дополнительные источники.
Скачать книгу
@itmozg
👍2
Разработка Telegram-бота на JAVA для генерации и считывания QR-кодов
С недавнего времени QR-коды всерьез, и похоже, надолго вошли в нашу жизнь. QR-код – это простой по своей сути, но при этом чрезвычайно полезный в прикладном плане механизм графического кодирования информации. Мать-прародительница (компания DENSO) внедрила использование QR-кодов с целью оптимизации временных издержек в производственных процессах. К сожалению, на сегодняшний день с введением ограничений со стороны властей на посещение общественных заведений, понятие «QR-код» приобрело негативный окрас, заставляя многих вздрагивать при его упоминании, от чего даже становится немного грустно, ведь не для ограничений были созданы эти черно-белые квадраты.
https://habr.com/ru/post/591391/
👉@BookJava
С недавнего времени QR-коды всерьез, и похоже, надолго вошли в нашу жизнь. QR-код – это простой по своей сути, но при этом чрезвычайно полезный в прикладном плане механизм графического кодирования информации. Мать-прародительница (компания DENSO) внедрила использование QR-кодов с целью оптимизации временных издержек в производственных процессах. К сожалению, на сегодняшний день с введением ограничений со стороны властей на посещение общественных заведений, понятие «QR-код» приобрело негативный окрас, заставляя многих вздрагивать при его упоминании, от чего даже становится немного грустно, ведь не для ограничений были созданы эти черно-белые квадраты.
https://habr.com/ru/post/591391/
👉@BookJava
👍5
Зачем нужно ключевое слово assert?
Этот оператор ничего не возвращает, а принимает проверяемое утверждение типа
В Java до версии 4 слово assert не было ключевым. Поэтому для обратной совместимости механизм проверки утверждений выключен по умолчанию – логика программы никогда не должна полагаться на
Включается флагом -ea или -
Assertion-ы используются в основном для дополнительной проверки инвариантов состояния объекта и для подстраховки в коде, который не должен никогда вызываться. Выброшенный
Дополнительно у оператора assert есть синтаксис передачи параметра
assert 2*2==5 : "two times two is not five!";
👉@BookJava
assert
– не то же самое, что методы вроде assertTrue()
из тестовых библиотек. Это зарезервированное ключевое слово, унарный оператор.Этот оператор ничего не возвращает, а принимает проверяемое утверждение типа
boolean
. Если значение оказывается false
, проверка утверждения считается проваленной и выбрасывается AssertionError
. Это похоже на сокращенную запись пары if и throw, с фиксированным типом исключения.В Java до версии 4 слово assert не было ключевым. Поэтому для обратной совместимости механизм проверки утверждений выключен по умолчанию – логика программы никогда не должна полагаться на
assert
!Включается флагом -ea или -
enableassertions
команды java. Можно указывать конкретные классы и пакеты в которых включить. Есть противоположный флаг -da
(-disableassertions
), эти флаги можно использовать в комбинации.Assertion-ы используются в основном для дополнительной проверки инвариантов состояния объекта и для подстраховки в коде, который не должен никогда вызываться. Выброшенный
AssertionError
обычно означает ошибку программиста.Дополнительно у оператора assert есть синтаксис передачи параметра
detailMessage
в конструктор AssertionError
:assert 2*2==5 : "two times two is not five!";
👉@BookJava
👍3
7 Practical Java Enhancements from Java 11 to Java 17
https://engineering.getmidas.com/7-practical-java-enhancements-since-java-11-up-to-java-17-5f8827e909bc
Java 17: что нового по сравнению с Java 11
https://nuancesprog.ru/p/16355/
👉@BookJava
https://engineering.getmidas.com/7-practical-java-enhancements-since-java-11-up-to-java-17-5f8827e909bc
Java 17: что нового по сравнению с Java 11
https://nuancesprog.ru/p/16355/
👉@BookJava
👍3
Как обеспечить работу современного кода JavaScript во всех браузерах
https://javascript.plainenglish.io/how-to-ensure-that-the-modern-javascript-code-which-we-write-run-on-all-browsers-dd3c6d2a88b9
👉@BookJava
https://javascript.plainenglish.io/how-to-ensure-that-the-modern-javascript-code-which-we-write-run-on-all-browsers-dd3c6d2a88b9
👉@BookJava
👍1
Что такое метки и как их использовать?
Наверняка вам приходилось писать неуклюжий код выхода из циклов нескольких уровней вложенности:
В Java существует полезный синтаксис, который упрощает код в таких ситуациях – метки (label).
Метка используется как пункт назначения для операторов
Обязательное условие компилятора – метка должна использоваться только внутри помеченного блока. Перейти в соседний цикл не выйдет.
👉@BookJava
Наверняка вам приходилось писать неуклюжий код выхода из циклов нескольких уровней вложенности:
boolean flag = false;
for (...) {
for (...) {
if (...) { x = true; break; }
}
if (flag == true) break;
}
В Java существует полезный синтаксис, который упрощает код в таких ситуациях – метки (label).
Метка используется как пункт назначения для операторов
break
и continue
. Помечать можно любой блок – цикл for
, while
, даже простой блок и операторы switch
и if
. Метки делают возможным использование оператора break
вне цикла, хотя пользы в этом обычно немного.Обязательное условие компилятора – метка должна использоваться только внутри помеченного блока. Перейти в соседний цикл не выйдет.
👉@BookJava
👍8👎8
Сколько стоит джун, мидл или сеньор?
Часто молодые специалисты не чувствуют момент, когда их уровень вырос и можно брать более сложные задачи и просить повышения зарплаты. По каким признакам это понять? Какие цифры называть переходя на новое место или какого повышения можно ждать на старом?
На эти вопросы отвечает skillmaps.ru — открытая база знаний для развития IT-специалистов. Навыки разбиты по классическим грейдам: Junior, Middle, Senior и привязаны к реальным зарплатам. По каждому навыку есть подборка ссылок-материалов, необходимых для освоения.
На skillmaps.ru буквально в несколько кликов можно узнать сколько стоят твои навыки и смело выставлять кост руководству 😉
Часто молодые специалисты не чувствуют момент, когда их уровень вырос и можно брать более сложные задачи и просить повышения зарплаты. По каким признакам это понять? Какие цифры называть переходя на новое место или какого повышения можно ждать на старом?
На эти вопросы отвечает skillmaps.ru — открытая база знаний для развития IT-специалистов. Навыки разбиты по классическим грейдам: Junior, Middle, Senior и привязаны к реальным зарплатам. По каждому навыку есть подборка ссылок-материалов, необходимых для освоения.
На skillmaps.ru буквально в несколько кликов можно узнать сколько стоят твои навыки и смело выставлять кост руководству 😉
👍3💩1
Как использовать шаблон команды в Java
Узнайте, как использовать шаблон Command для инкапсуляции запросов в виде объектов, которые вы можете выполнять по отдельности или последовательно в своих программах Java.
https://www.infoworld.com/article/3667498/how-to-use-the-command-pattern-in-java.html
👉@BookJava
Узнайте, как использовать шаблон Command для инкапсуляции запросов в виде объектов, которые вы можете выполнять по отдельности или последовательно в своих программах Java.
https://www.infoworld.com/article/3667498/how-to-use-the-command-pattern-in-java.html
👉@BookJava
👍3
Что можно делать с классом Connection?
Итак, в результате соединения JDBC драйвера создается объект Connection – сессия работы с базой данных. Это главный класс при работе с JDBC. Основная роль этого класса – исполнение SQL-выражений (Statement) и получение их результатов в виде ResultSet.
Connection предоставляет в виде класса DatabaseMetaData мета-информацию о базе данных в целом: таблицы, поддерживаемая грамматика SQL, хранимые процедуры, возможности этого соединения, и т.д..
В коннекшне задается множество настройки самого соединения. Это уровень изоляции транзакций, режим авто-коммита, ключи шардирования, и многое другое. Маппинг типов данных SQL в Java-типы задается здесь же, свойством typeMap.
Помимо выполнения выражений, Connection предоставляет средства для управления транзакциями. Его методами можно создать Savepoint, откатиться к нему, закоммитить транзакцию когда авто-коммит отключен.
#SQL
👉@BookJava
Итак, в результате соединения JDBC драйвера создается объект Connection – сессия работы с базой данных. Это главный класс при работе с JDBC. Основная роль этого класса – исполнение SQL-выражений (Statement) и получение их результатов в виде ResultSet.
Connection предоставляет в виде класса DatabaseMetaData мета-информацию о базе данных в целом: таблицы, поддерживаемая грамматика SQL, хранимые процедуры, возможности этого соединения, и т.д..
В коннекшне задается множество настройки самого соединения. Это уровень изоляции транзакций, режим авто-коммита, ключи шардирования, и многое другое. Маппинг типов данных SQL в Java-типы задается здесь же, свойством typeMap.
Помимо выполнения выражений, Connection предоставляет средства для управления транзакциями. Его методами можно создать Savepoint, откатиться к нему, закоммитить транзакцию когда авто-коммит отключен.
#SQL
👉@BookJava
👍8
Нужны ли в Java «инлайн»-типы?
Типы-значения — это главная часть экспериментального проекта Valhalla, которая должна наделить язык Java новыми способностями. Это история не только о производительности, но и о безопасности, абстракции, выразительности, легкости сопровождения и т. д. Но этот доклад посвящен производительности, тому, какие преимущества типы-значения принесут Java в этом плане и как ими воспользоваться.
https://www.youtube.com/watch?v=snrbobBVjyc
👉@BookJava
Типы-значения — это главная часть экспериментального проекта Valhalla, которая должна наделить язык Java новыми способностями. Это история не только о производительности, но и о безопасности, абстракции, выразительности, легкости сопровождения и т. д. Но этот доклад посвящен производительности, тому, какие преимущества типы-значения принесут Java в этом плане и как ими воспользоваться.
https://www.youtube.com/watch?v=snrbobBVjyc
👉@BookJava
YouTube
Сергей Куксенко — Нужны ли в Java «инлайн»-типы? Узкий взгляд инженера по производительности на п
Подробнее о Java-конференциях:
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
. . . . Типы-значения — это главная часть экспериментального проекта Valhalla, которая должна наделить язык Java новыми способностями. Это…
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
. . . . Типы-значения — это главная часть экспериментального проекта Valhalla, которая должна наделить язык Java новыми способностями. Это…
👍2
Top Core Java Interview Questions for Freshers and Experienced in 2022
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
Edureka
160+ Java Interview Questions and Answers (2025)
Our expert-curated Java Interview questions and answers for freshers & experienced will help to crack Core Java, coding, and programming interviews.
👍8
Криптография в Java
Для желающих освоить основы криптографии в Java.
https://jenkov.com/tutorials/java-cryptography/index.html
👉@BookJava
Для желающих освоить основы криптографии в Java.
https://jenkov.com/tutorials/java-cryptography/index.html
👉@BookJava
👍9😱1
Media is too big
VIEW IN TELEGRAM
Многопоточность в Java
00:53 What is a Java Thread?
02:00 Thread Lifecycle
06:01Creating a Thread
23:55 Main Thread
27:29 Multi-Threading
41:15 Thread Pool
👉@BookJava
00:53 What is a Java Thread?
02:00 Thread Lifecycle
06:01Creating a Thread
23:55 Main Thread
27:29 Multi-Threading
41:15 Thread Pool
👉@BookJava
👍2
Подборка GitHub-репозиториев для Java-разработчиков
Java Design Patterns - то типовые и повторно используемые шаблоны для решения частых проблем в проектировании приложений.
https://github.com/iluwatar/java-design-patterns
Realworld – это GitHub-репозиторий, с которым нужно ознакомиться всем разработчикам, особенно Full-stack.
https://github.com/gothinkster/realworld
Algorithms - правильные алгоритмы позволяют улучшить производительность приложения.
https://github.com/TheAlgorithms/Java
Awesome Java - есть практически все по Java, а сам материал подается в форме справочника.
https://github.com/akullpp/awesome-java
RxJava Android Samples – это реализация Java ReactiveX, в которой реактивное программирование предлагается через наблюдаемые объекты (Observables).
https://github.com/kaushikgopal/RxJava-Android-Samples
👉@BookJava
Java Design Patterns - то типовые и повторно используемые шаблоны для решения частых проблем в проектировании приложений.
https://github.com/iluwatar/java-design-patterns
Realworld – это GitHub-репозиторий, с которым нужно ознакомиться всем разработчикам, особенно Full-stack.
https://github.com/gothinkster/realworld
Algorithms - правильные алгоритмы позволяют улучшить производительность приложения.
https://github.com/TheAlgorithms/Java
Awesome Java - есть практически все по Java, а сам материал подается в форме справочника.
https://github.com/akullpp/awesome-java
RxJava Android Samples – это реализация Java ReactiveX, в которой реактивное программирование предлагается через наблюдаемые объекты (Observables).
https://github.com/kaushikgopal/RxJava-Android-Samples
👉@BookJava
🔥7👍4❤1
Краткое руководство. Использование Java и JDBC с Базой данных Azure для MySQL
https://learn.microsoft.com/ru-ru/azure/mysql/single-server/connect-java?tabs=passwordless
👉@BookJava
https://learn.microsoft.com/ru-ru/azure/mysql/single-server/connect-java?tabs=passwordless
👉@BookJava
Docs
Краткое руководство. Использование Java и JDBC с База данных Azure для MySQL
Узнайте, как использовать Java и JDBC с Базой данных Azure для MySQL.
👍2