Telegram Web Link
🖥 Как написать на Java функцию, подобную sizeof в C

Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String  —  это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int  —  4 байта, char  —  2 байта, short  —  2 байта, long и float  —  8 байт и так далее.

Но если вам не хватает этого оператора, то почему бы не превратить это в вызов для себя как программиста? Если вы согласны с этим, то ваша следующая задача  —  написать метод на Java, который ведет себя как оператор/функция sizeOf() в C и возвращает размер в байтах для каждого числового примитивного типа, т.е. для всех примитивных типов, кроме Boolean.

Многие из вас, наверное, подумают: почему мы не включаем логическое значение? Разве ему не нужен всего 1 бит для представления истинных и ложных значений? Я не включаю Boolean в это упражнение, потому что размер Boolean строго не определен в спецификации Java и варьируется в зависимости от разных JVM.

➡️ Читать дальше

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Java-оболочка для неофициального API ChatGPT.

ChatGPT
- это новый чат-бот от компании OpenAI стал первым многозадачным ИИ, который доступен любому пользователю. Исследователи считают, что ChatGPT серьезно изменит многие сферы нашей жизни

Github
Что такое ChatGPT
Chatgpt пишет код
Видео

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Полезные библиотеки Java

Conductor — это платформа, созданная Netflix для организации процессов в микросервисах.

🖥 Github
📂 Документация

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 21 книга, которую следует прочитать Java-разработчикам в 2023 году

Приветствую всех! Если вы являетесь Java-разработчиком и задаетесь вопросом о том, что почитать в 2023 году, то вы обратились по адресу. В этой статье я собираюсь поделиться 21 книгой по Java, Spring и связанными с ними технологиями, которые стоит прочитать всем Java-разработчикам.

➡️ Читать

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Java решение практических задач с Codewars

Ваша задача — эмулировать выравнивание текста в моноширинном шрифте. Вам будет предоставлен однострочный текст и ожидаемая ширина выравнивания. Самое длинное слово никогда не должно быть больше этой ширины.

Вот правила:

* Каждая строка должна содержать как можно больше слов.
* Используйте '\n' для разделения строк.
* Расстояние между словами не может отличаться более чем на один пробел.
* Используйте пробелы, чтобы заполнить разделение между словами.
* Строки должны заканчиваться словом, а не пробелом.
* '\n' не включается в длину строки.
* Сначала идут большие пробелы, затем меньшие ("Lorem--ipsum--dolor--sit-amet" (2, 2, 2, 1 пробел)).
* Последняя строка не должна быть выравнена по ширине, используйте только один пробел между словами.
* Последняя строка не должна содержать '\n'
* В строках с одним словом пробелы не нужны ('somelongword\n').

Текст на тест

public class TextJustificatory {
public static String justify(String text, int width) {
final String[] source = text.split(" ");

StringBuilder result = new StringBuilder();
StringBuilder string = new StringBuilder();
for (String word : source) {
if (word.length() + string.length() + 1 > width) {
result.append(
addJustified(string, width)
)
.append("\n");
string
.delete(0, string.length());
}

if (string.length() != 0) string.append(" ");

string.append(word);
}

result.append(
string
);

return result.toString();
}

private static String addJustified(StringBuilder raw, int width) {
final String[] words = raw.toString().split(" ");
if (words.length == 0) return "";
if (words.length == 1) return words[0];

final int freeSpaces = width - raw.length();
final int additionalSpacesPerWord = freeSpaces / (words.length - 1);
final int additionalSpacesForFirstWords = freeSpaces % (words.length - 1);

StringBuilder result = new StringBuilder(words[0]);
for (int i = 1; i < words.length; i++) {
result.append(" ");
if (i <= additionalSpacesForFirstWords) result.append(" ");

for (int i1 = 0; i1 < additionalSpacesPerWord; i1++) {
result.append(" ");
}

if (i != words.length - 1) result.append(words[i]);
}

result.append(words[words.length - 1]);

return result.toString();
}
}


Пишите ваши варианты решений в комментариях 👇

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Специализация Java Programming and Software Engineering Fundamentals

Отличный бесплатный курс для Java программистов от Duke University.

Эта специализация, ориентированная на проекты, поможет вам создать расширить свое портфолио работ, чтобы продемонстрировать навыки программирования на Java. В завершающем этапе вы создадите рекомендательный механизм, аналогичный тем, которые используются в Netflix или Amazon.

Курс

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 15 советов, которые ускорят работу вашего Java-приложения

Ускоряем ваш код, написанный на Java за 15 простых шагов. Советы, которые реально помогут на практике.

✔️ Читать дальше

@javatg
⭐️ 100 проектов для разработчика, которые помогут в прокачке навыков.

Более 100 копий и альтернатив популярных сайтов с открытым исходным кодом, таких как Airbnb, Amazon, Instagram, Netflix, TikTok, Spotify, WhatsApp, YouTube и т. д. Настоящий кладез проектов для веб-разработчика. Список содержит исходный код, учебные пособия, демонстрационные ссылки, технический стек. Многие из проектов реализованы на Java.

✔️ Список
🖥 Clonewars

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Javacord

Простая в использовании многопоточная библиотека для создания ботов Discord на Java. Библиотека содержит Огромный набор функций и множество примеров.

🖥 Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Docker Java основные команды. Инструкция для начинающих.

В этом руководстве мы начнем работу с Docker. Для этого создали Spring проект с одной конечной точкой REST и соберем для него образ Docker. Запустим образ Docker внутри контейнера и протестируем конечную APi внутри этого образа.

➡️ Читать дальше
✔️ Примеры работы с Docker

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Полезные библиотеки Java

Codename One — это первая открытая мобильная кроссплатформенная среда для разработчиков Java и Kotlin, которая может компилировать байт-код Java в исполняемые файлы ОС (iOS, Android, UWP и т. д.). Это полноценная мобильная платформа с виртуальными машинами, симулятором, инструментами дизайна (визуальная тема/конструктор/CSS), интеграциями с IDE, портами для нескольких ОС и многим другим.

git clone https://github.com/codenameone/CodenameOne
cd CodenameOne/maven
mvn install


🖥 Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как создать приложение с помощью фреймворка Spring Java.

Давайте взглянем на основы фреймворка Spring. Эта статья содержит в себе все основные этапы того, как вы можете создать приложение с использованием фреймворка Spring.

✔️ Читать дальше

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 5️⃣0️⃣ лучших Java-проектов c GitHub

В данной статье я представлю вашему внимаю 50 Java-проектов на GitHub, с которыми не помешает познакомиться любому Java-разработчику.

➡️ Смотреть

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Создание функционала регистрации пользователя с проверкой электронной почты с помощью Java и Spring Boot

Сегодня, в этой статье, вы узнаете, как создать полноценную систему регистрации с проверкой электронной почты, используя язык программирования Java, фреймворк Spring Boot и MySQL в качестве базы данных. Ссылка на полный код будет доступна в конце.

➡️ Читать дальше
🖥 Код из статьи

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Java сериализация в JSON и обратно c Jackson

Работа с JSON состоит из процессов:
- cериализации — когда мы конвертируем наши данные в JSON.

- десериализации — когда из JSON строки получаем POJO объект.

Для удобной, быстрой и комфортной работы существует множество библиотек, таких как Gson, Jackson и т.д. В данном уроке мы рассмотрим работу с Jackson.

Читать дальше
Зеркало

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Java как избавиться от дублирования кода. Разбираемся на примере.

Представьте, что мы разрабатываем функцию размещения заказа для разных пользователей:

- Обычный пользователь должен оплатить стоимость доставки, которая составляет 10% от стоимости товаров; скидка не предоставляется
- VIP-пользователь также должен оплатить стоимость доставки в размере 10%, но скидка будет предоставлена на 3-й товар и далее.
- Внутреннему пользователю не нужно оплачивать стоимость доставки; скидка не предоставляется.

➡️ Читать дальше

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Алгоритмы сжатия данных Java

Сжатие данных – очень распространенная тема. В интернете мы можем найти множество материалов о ней. Существуют разные тесты для всех видов алгоритмов сжатия. Тесты производительности для Java существуют, но, все они немного устарели, поскольку были написаны давным-давно.

Эффективность сжатия (как производительности, так и размера) зависит от фактических данных. Поэтому для меня имело смысл повторить тесты, чтобы определить, какой алгоритм (если таковой имеется) подойдёт больше всего. Также хотелось просто побольше узнать о сжатии данных в Java.

Читать дальше
Зеркало
Код из статьи

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Ключевое слово volatile в Java

Изменение переменной, сделанное в одном потоке, не сразу видно другому потоку. Исправить это можно с помощью volatile — ключевого слова, которое ставится перед переменной.

В отличие от слова synchronized, которое применимо для метода или для блока кода, слово volatile применимо только для переменной.

volatile — это более слабый вариант синхронизации, который иногда бывает достаточным.
Рассмотрим пример, показывающий, что изменение переменной в одном потоке действительно не сразу видно другому потоку (или даже никогда не видно).

volatile – этот модификатор вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной.

Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все же данные, содержащиеся в объекте, синхронизированы не будут!

Читать дальше
Зеркало
Код из статьи

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Ссылки на методы в Java

Лямбды в Java полезны во многих направлениях. Лямбда-выражения можно использовать для более простых задач, а лямбда-утверждения — для более сложных.

Лямбды могут вызывать другие методы для текущего объекта (this) и объектов, которые находятся в области видимости, таких как текущий элемент итерации и конечная локальная переменная за пределами лямбды. Лямбду всегда можно упростить, поместив код в другой метод.

Написание хороших лямбд требует дисциплины. Например, важно называть параметры понятным образом — так, чтобы названия раскрывали их назначение. Вот простой пример лямбды для фильтрации списка строк:

@Test
public void filterStringsLambda()
{
var list = Lists.mutable.with(
"Atlanta",
"Atlantic City",
"Boston",
"Boca Raton");

var actual = list.stream()
.filter(string -> string.startsWith("At"))
.collect(Collectors.toList());

var expected = List.of("Atlanta", "Atlantic City");

Assertions.assertEquals(expected, actual);
}


Читать дальше

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Топ-10 Java-фреймворков и библиотек для Fullstack веб-разработчиков на Java

Если вы хотите стать Fullstack Java-разработчиком, тем, кто способен создавать как frontend-, так и backend-приложения, используя язык программирования Java, и ищет лучшие ресурсы, такие как онлайн-курсы, тогда вы пришли по адресу.

Помимо стандартных фреймворков, таких как Swing для настольных графических приложений, JavaFX, JSP, EJB и JSF, существует гораздо больше фреймворков и библиотек с открытым исходным кодом, доступных для Java-программистов.

Эти фреймворки не только помогают и ускоряют разработку, но и заставляют использовать лучшие практики, необходимые для создания корпоративного и настольного Java-приложения.

Фреймворки, подобные Spring, которые дают столь необходимый импульс платформе Java, внедряют принцип зависимостей в ядро, что имеет решающее значение для построения слабосвязанной системы.

Аналогичным образом, Struts и Spring MVC значительно упростили веб-разработку. Java-программисты, как начинающие, так и опытные, должны знать об этих фреймворках, ведь они не только помогают им в их работе.
Благодаря ним люди получают новую работу, поскольку всё больше и больше компаний внедряют разработку на основе фреймворков.

Я видел так много резюме, которые не рассматриваются для собеседований, потому что в них нет упоминания о Spring, Struts или Maven. Хотя я не согласен с этой практикой, потому что, если вы хороши в программировании, ООП-дизайне и Java, вы можете быстро их освоить.

В этой статье я поделюсь 10 лучшими фреймворками для Java веб-разработчиков, которые включают в себя core Java framework, unit testing framework, Java web development framework и, конечно же, build framework.

Читать дальше
Зеркало

@javatg
2024/10/03 11:21:15
Back to Top
HTML Embed Code: