Разрешение конфликтов слияния Git в IntelliJ IDEA
https://foojay.io/today/resolving-git-merge-conflicts-in-intellij-idea/
👉@BookJava
https://foojay.io/today/resolving-git-merge-conflicts-in-intellij-idea/
👉@BookJava
👍1🔥1
Управление временем в Java приложениях
Сегодня я хочу поговорить об управлении временем в Java приложениях: зачем это нужно, и как это можно делать.
В реальном коде часто требуется сохранять дату и время в базу данных. Это может быть фиксация времени создания\последней модификации какого-либо объекта или указание срока действия документа, билета и т.п. Думаю, многие из вас решали эту задачу в своих проектах: сама по себе она несложная. Трудности возникают, когда мы хотим подобную систему протестировать и оценить, как она будет вести себя, скажем, через полгода или год. В будущем.
Конечно, можно накручивать системные часы на вашей машине, build-агенте, тестовом сервере, но это неудобно, а иногда физически невозможно (банальное отсутствие доступа или автоматическая синхронизация времени). А ещё это абсолютно не инженерный подход. Ниже я покажу несколько простых и изящных приёмов, которые позволят вам почувствовать себя доктором Стрэнджем…
https://habr.com/ru/post/681608/
👉@BookJava
Сегодня я хочу поговорить об управлении временем в Java приложениях: зачем это нужно, и как это можно делать.
В реальном коде часто требуется сохранять дату и время в базу данных. Это может быть фиксация времени создания\последней модификации какого-либо объекта или указание срока действия документа, билета и т.п. Думаю, многие из вас решали эту задачу в своих проектах: сама по себе она несложная. Трудности возникают, когда мы хотим подобную систему протестировать и оценить, как она будет вести себя, скажем, через полгода или год. В будущем.
Конечно, можно накручивать системные часы на вашей машине, build-агенте, тестовом сервере, но это неудобно, а иногда физически невозможно (банальное отсутствие доступа или автоматическая синхронизация времени). А ещё это абсолютно не инженерный подход. Ниже я покажу несколько простых и изящных приёмов, которые позволят вам почувствовать себя доктором Стрэнджем…
https://habr.com/ru/post/681608/
👉@BookJava
Хабр
Управление временем в Java приложениях
Привет, Хабр! Сегодня я хочу поговорить об управлении временем в Java приложениях: зачем это нужно, и как это можно делать. В реальном коде часто требуется сохранять дату и время в базу данных. Это...
👍3
Forwarded from Java Geek
Fields initialization
Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно уверены. Всё-таки для этих целей у Вас есть конструктор. В случае явного указания значений для полей класса — они будут проинициализированы до вызова конструктора, что влечет дополнительные расходы в тех случаях, когда у Вас нет необходимости пользоваться проинициализированными значениями, например, когда сразу после создания обьекта Вы устанавливаете другие значения для проинициализированных полей. Ну и не забывайте, что поля класса всегда инициализируются значениями по умолчанию.
@java_geek
Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно уверены. Всё-таки для этих целей у Вас есть конструктор. В случае явного указания значений для полей класса — они будут проинициализированы до вызова конструктора, что влечет дополнительные расходы в тех случаях, когда у Вас нет необходимости пользоваться проинициализированными значениями, например, когда сразу после создания обьекта Вы устанавливаете другие значения для проинициализированных полей. Ну и не забывайте, что поля класса всегда инициализируются значениями по умолчанию.
@java_geek
👍7👎5🔥1😁1
Forwarded from Java Geek
Object[] vs custom Class
Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас.
@java_geek
Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас.
@java_geek
👍4
Считаем уникальные 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