char asciiCharacter = (char) 65; // ASCII-код 65 — это 'A'
Чтобы произвести конвертацию ASCII-кода в символ, достаточно явно привести значение целочисленного типа
int
к символьному типу char
.В Java символы ASCII представлены с использованием типа данных
char
, который способен представлять 16-битные символы Unicode. Поскольку ASCII является подмножеством Unicode, они корректно представлены в этой системе.Преобразование осуществляется без обращения к вспомогательным операциям, например, к таблицам преобразования или к добавочным методам; для этого Java просто производит преобразование числового значения в ASCII-код.
Важно учесть, что в ASCII кодировке есть управляющие символы (0-31, 127), а также буквы, цифры и символы пунктуации (32-126), входящие в стандартный набор ASCII.
Предварительная проверка диапазона числа спасёт от возможных проблем. Убедитесь, что число, которое вы собираетесь преобразовать, лежит в пределах от 0 до 255:
int asciiCode = 65;
if (asciiCode >= 0 && asciiCode <= 255) {
char character = (char) asciiCode;
// "Всегда подтверждай правильность диапазона перед преобразованием!" – золотое правило разработчика
}
Такой подход повышает надёжность вашего кода и помогает избежать ошибок.
Если вам необходим результат в виде строки, а не символа, используйте метод
Character.toString
или просто добавьте символ к пустой строке:String characterStr = Character.toString((char) asciiCode);
// или проще
String characterStr = "" + (char) asciiCode;
Теперь у вас есть как символ, так и строка.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3
Tink — это многоязычная, кроссплатформенная библиотека, предоставляющая криптографические API, которые безопасны, просты в правильном использовании и ими трудно злоупотреблять.
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.7.0</version>
</dependency>
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤8🔥4
Javalin — это очень легкий веб-фреймворк для Kotlin и Java, поддерживающий WebSockets, HTTP2 и async-запросы. Главные цели Javalin — простота, отличный опыт разработчика и первоклассная совместимость между Kotlin и Java.
Javalin — это скорее библиотека, чем фреймворк.
Пара ключевых моментов:
— Не нужно ничего расширять.
— Нет никаких
@Annotations
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤4🔥4
Фичи Coil (Coroutine Image Loader):
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥3
Особенности Quarkus:
curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4🔥3
Вообще, в мире Java разработки существует несколько простых правил, позволяющих практически полностью исключить возможности внедрения SQL:
— Не использовать конкатенацию строк в запросах к базам данных.
— Использовать
PreparedStatement/CallableStatement
вместо Statement
. Библиотеки spring-jdbc
, Hibernate
, MyBatis
, JOOQ
и прочие также внутри используют PreparedStatement
.— Передавать параметры запросов с помощью методов
setParameter
, а не в самом запросе.Этому и посвящена статья.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥2🥰1
О том, как устроена разработка в финтехе, как можно использовать GPT и не только.
Надеюсь, вы почерпнёте много полезного для себя.
Что внутри?
• 00:11:04 — Java и Kotlin в Яндекс.Банке
• 00:43:47 — Как строить надежные цепочки интеграций в облаке, чтобы пользователь мог изменить заказ на лету
• 01:13:15 — Взболтать, но не смешивать — пробуем GPT в быту разработчика
• 02:14:01 — Разработка на Scala — проще, чем кажется
• 02:46:12 — Отказоустойчивая архитектура Java сервисов для отправки пуш нотификаций в мобильные приложения Яндекса
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥6👍4
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Это называется «трассировка стека» или «stack trace». Что вообще такое трассировка? Какую полезную информацию об ошибке в разрабатываемой программе она содержит?
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Это пример очень простой трассировки. Если пойти по списку строк вида «at…» с самого начала, мы можем понять, где произошла ошибка. Мы смотрим на верхний вызов функции. В нашем случае, это:
at com.example.myproject.Book.getTitle(Book.java:16)
Для отладки этого фрагмента открываем
Book.java
и смотрим, что находится на строке 16
:public String getTitle() {
System.out.println(title.toString()); <-- line 16
return title;
}
Это означает то, что в приведенном фрагменте кода какая-то переменная (вероятно,
title
) имеет значение null
.try {
....
} catch (NullPointerException e) {
throw new IllegalStateException("A book has a null property", e)
}
Трассировка в этом случае может иметь следующий вид:
Exception in thread "main" java.lang.IllegalStateException: A book has a null property
at com.example.myproject.Author.getBookIds(Author.java:38)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Caused by: java.lang.NullPointerException
at com.example.myproject.Book.getId(Book.java:22)
at com.example.myproject.Author.getBookIds(Author.java:35)
... 1 more
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤3🔥1🥰1
Tomcat – это открытая реализация технологий Java Servlet и JavaServer Pages.
apt
:sudo apt update && sudo apt install default-jdk wget curl
После установки Java создайте специального пользователя tomcat для запуска сервиса Tomcat.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥3😁1
—
brew install semgrep
Semgrep — это быстрый open-source инструмент статического анализа для обнаружения ошибок и проверки соблюдения стандартов в процессе редактирования, коммита и т.д.
Semgrep — это семантический
grep
для кода: если grep "2"
будет искать только точную строку 2
, то Semgrep будет искать x = 1; y = x + 1
при поиске 2
. И он делает это на 30 с лишним языках! Правила Semgrep выглядят как код, который вы уже пишете; никаких абстрактных синтаксических деревьев, сложных regex или DSL.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6🔥3🤯1