Вот, какие темы вы предложили к рассмотрению!
Давайте выберем, какую из них рассмотрим подробно?
Давайте выберем, какую из них рассмотрим подробно?
Anonymous Poll
23%
ORM, типы связей и проблемы n+1
37%
паттерны проектирования на java (наверно не все)
17%
хэширование в Java и вопросы с собеседований, связанные с ним
23%
Hashmap и как она работает
Как вам изменения на канале?
Снижение количества постов, изменение тем, новые темы?
Снижение количества постов, изменение тем, новые темы?
Anonymous Poll
88%
Отлично! Лучше чем было! 👍
12%
Да не заметно разницы... ☺️
0%
Все стало только хуже! Админ возвращай взад!😝
Есть мысль собраться завтра в 16:00 по МСК и разобрать написание идеального контроллера 🧑💻
Вы придете?
Вы придете?
Anonymous Poll
48%
Да, тема интересная, я буду! 🙂
29%
Я бы хотел, но занят ☹️
0%
Че там разбирать то? Нафига? 😠
23%
Что это за группа? Где я? 😱
Всем привет! ✌️
Приглашаю всех желающих сегодня собраться в Яндекс.Телемост в 16:00 по МСК!
В этот раз, дошла очередь рассказать о том, как написать контроллер в экосистеме Spring.
Рассмотрим:
- Зачем нам вообще нужны контроллеры
- Какие существуют основные принципы REST при написании контроллеров
- Основные аннотации Spring для написания контроллеров и их настройку
- Все это посмотрим на примере кода
Приходите, будет интересно🧑💻
Как всегда жду всех! 🫡
Приглашаю всех желающих сегодня собраться в Яндекс.Телемост в 16:00 по МСК!
В этот раз, дошла очередь рассказать о том, как написать контроллер в экосистеме Spring.
Рассмотрим:
- Зачем нам вообще нужны контроллеры
- Какие существуют основные принципы REST при написании контроллеров
- Основные аннотации Spring для написания контроллеров и их настройку
- Все это посмотрим на примере кода
Приходите, будет интересно
Как всегда жду всех! 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
Как заставить себя учиться 🤓
Особенно когда тебе за 30...
Казалось бы - что может быть проще? Бери источник информации и изучай что-то новое. Но оказалось, что не все так просто...
🤬 С чем придется столкнуться:
Постоянные дела и банальная усталость с основной работы (да и лень немножко, конечно🏝 ).
Это хорошо, когда ты молод и у тебя нет обязанностей перед семьей и окружающими. Ты волен посвятить обучению все свое свободное время...
А нам, 30+ -летним "вкатунам", которые вынуждены ежедневно бороться с окружающими проблемами, кажется сложным найти время, чтобы сесть и посмотреть (и воспринять!) видео с какой-то новой концепцией.
А постоянное обучение - вообще какая-то дикость.☠️
Кружащие заблуждения🤔
Не знаю как у Вам, но мне и моему окружению, мысль о том, что за нажимание клавиш, мне будут платить прилично денег - казалась дикой.
Все эти, улыбающиеся лица в ютубе, вещающие о молочном море и кисельных берегах в IT, казались, как минимум мошенниками, отчего учиться у них казалось неправильным...
Кроме того, обычное заблуждение моего круга - что после окончания школы/института, простой человек (а не какой-то там гений или вундеркинд) теряет способности к обучению, и с трудом воспринимает новую, в том числе и сложную информацию. (Не буду скрывать, и я относился к тем людям, кто распространял это заблуждение...☺️ )
Ощущение своей непроходимой тупости🤪
Не покидает и спустя несколько лет.🤣
А если серьезно, то чем больше ты погружаешься в программирование, тем глубже кажется кроличья нора. Новые фреймворки, библиотеки, технологии, нюансы, надстройки и костыли, кажутся дремучим лесом, в котором так легко потеряться.
А периодическое стуканье головы об что-то твердое и последующее (возможно не связанное с этим процессом), озарение, со словами "Ах, б🤬, так вот оно что!", преследует меня до сих пор (ведь обучение тут не заканчивается никогда!🤫 ).
Ниже дам несколько советов, которые помогли мне (и может помогут и Вам😎 )
1. Смог он, смогу и я.
Возможно Вы слышали выражение - "не боги горшки обжигают". Верьте в свои силы, даже если кажется, что это полный идиотизм.
Ведь, если смотря на человека который рассказывает об устройстве сложной системы, Вы задаетесь вопросом "Как он смог это понять?", задайте вопрос и себе "А чем я хуже?".
Бороться и не сдаваться несмотря на все возникающие препятствия сложно. И в обучении это имеет сокровенный смысл. Понимание того, что успешный программист с зп 500к+, не родился с клавиатурой во рту, а так же как и Вы возможно учился по тому же каналу в ютубе, только несколько раньше, максимально мотивирует достичь его успехов.
2. Выбрать время для обучения (и желательно много).
Скажем так, я не смог обучаться параллельно с работой. Ну никак. Поэтому воспользовавшись накоплениями, и освободившимся после увольнения временем, я все силы бросил на учебу.
И не значит, что это ваш рецепт, ведь мы все разные. Возможно вам комфортно вялотекущее обучение и устройство в IT у вас в далекой перспективе.🙃
3. Структурируйте процесс обучения.
Сейчас в интернете гигантское количество обучающего материала. В том числе и бесплатного (да-да, это я про наш канал☺️ ) .
Выберите какой Вам нравится и начинайте учить от простого к сложному. Вычлените в приоритет те части, которые являются основой выбранного Вами рабочего стека и бросьте все силы туда. Иначе можно увязнуть в объеме информации или начать учить то, что Вам никогда не пригодится.
4. Вознаграждайте свое подсознание за успехи
Звучит глупо и странно, знаю. Но мотивировать себя станет в разы легче. Небольшой бонус: чашка любимого кофе, эпизод сериала или пятнадцать минут в соцсетях. Мозг любит вознаграждения, и это ещё один повод не бросить начатое.
5. Чёткая цель и никаких «зачем» после начала.
Наверно моя основная мотивация в ежедневной учебе. А может я просто упрямый🐏 😄 .
Поставьте себе глобально - максимально - реально достижимую цель. Продумайте шаги и ступени до нее, разбив на мелкие подцели и достигая их, начинайте путь к следующей. И не успеете оглянуться как половина пути будет пройдена. А может и весь)))
😎
#motivation
Особенно когда тебе за 30...
Казалось бы - что может быть проще? Бери источник информации и изучай что-то новое. Но оказалось, что не все так просто...
Постоянные дела и банальная усталость с основной работы (да и лень немножко, конечно
Это хорошо, когда ты молод и у тебя нет обязанностей перед семьей и окружающими. Ты волен посвятить обучению все свое свободное время...
А нам, 30+ -летним "вкатунам", которые вынуждены ежедневно бороться с окружающими проблемами, кажется сложным найти время, чтобы сесть и посмотреть (и воспринять!) видео с какой-то новой концепцией.
А постоянное обучение - вообще какая-то дикость.
Кружащие заблуждения
Не знаю как у Вам, но мне и моему окружению, мысль о том, что за нажимание клавиш, мне будут платить прилично денег - казалась дикой.
Все эти, улыбающиеся лица в ютубе, вещающие о молочном море и кисельных берегах в IT, казались, как минимум мошенниками, отчего учиться у них казалось неправильным...
Кроме того, обычное заблуждение моего круга - что после окончания школы/института, простой человек (а не какой-то там гений или вундеркинд) теряет способности к обучению, и с трудом воспринимает новую, в том числе и сложную информацию. (Не буду скрывать, и я относился к тем людям, кто распространял это заблуждение...
Ощущение своей непроходимой тупости
Не покидает и спустя несколько лет.
А если серьезно, то чем больше ты погружаешься в программирование, тем глубже кажется кроличья нора. Новые фреймворки, библиотеки, технологии, нюансы, надстройки и костыли, кажутся дремучим лесом, в котором так легко потеряться.
А периодическое стуканье головы об что-то твердое и последующее (возможно не связанное с этим процессом), озарение, со словами "Ах, б🤬, так вот оно что!", преследует меня до сих пор (ведь обучение тут не заканчивается никогда!
Ниже дам несколько советов, которые помогли мне (и может помогут и Вам
1. Смог он, смогу и я.
Возможно Вы слышали выражение - "не боги горшки обжигают". Верьте в свои силы, даже если кажется, что это полный идиотизм.
Ведь, если смотря на человека который рассказывает об устройстве сложной системы, Вы задаетесь вопросом "Как он смог это понять?", задайте вопрос и себе "А чем я хуже?".
Бороться и не сдаваться несмотря на все возникающие препятствия сложно. И в обучении это имеет сокровенный смысл. Понимание того, что успешный программист с зп 500к+, не родился с клавиатурой во рту, а так же как и Вы возможно учился по тому же каналу в ютубе, только несколько раньше, максимально мотивирует достичь его успехов.
2. Выбрать время для обучения (и желательно много).
Скажем так, я не смог обучаться параллельно с работой. Ну никак. Поэтому воспользовавшись накоплениями, и освободившимся после увольнения временем, я все силы бросил на учебу.
И не значит, что это ваш рецепт, ведь мы все разные. Возможно вам комфортно вялотекущее обучение и устройство в IT у вас в далекой перспективе.
3. Структурируйте процесс обучения.
Сейчас в интернете гигантское количество обучающего материала. В том числе и бесплатного (да-да, это я про наш канал
Выберите какой Вам нравится и начинайте учить от простого к сложному. Вычлените в приоритет те части, которые являются основой выбранного Вами рабочего стека и бросьте все силы туда. Иначе можно увязнуть в объеме информации или начать учить то, что Вам никогда не пригодится.
4. Вознаграждайте свое подсознание за успехи
Звучит глупо и странно, знаю. Но мотивировать себя станет в разы легче. Небольшой бонус: чашка любимого кофе, эпизод сериала или пятнадцать минут в соцсетях. Мозг любит вознаграждения, и это ещё один повод не бросить начатое.
5. Чёткая цель и никаких «зачем» после начала.
Наверно моя основная мотивация в ежедневной учебе. А может я просто упрямый
Поставьте себе глобально - максимально - реально достижимую цель. Продумайте шаги и ступени до нее, разбив на мелкие подцели и достигая их, начинайте путь к следующей. И не успеете оглянуться как половина пути будет пройдена. А может и весь)))
#motivation
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем голосовать за предложенные ранее темы к рассмотрению!
https://t.me/Java_for_beginner_dev/2341
Голосуем, не стесняемся, все анонимно😜
https://t.me/Java_for_beginner_dev/2341
Голосуем, не стесняемся, все анонимно
Please open Telegram to view this post
VIEW IN TELEGRAM
Предложение тем для разбора и публикации! 📖
В комментариях к данному посту предлагайте вопросы, которые вы хотели бы увидеть максимально подробно разобранными в постах, а если будет интересно то и на видео.
Голосование будет проводиться всю неделю, а статья или видео - выходить по выходным.
Примерные правила:
🟢 темы, не выше уровня middle, чтоб был интерес общим.
🟢 Тема должна быть отдельным теоретически-практическим вопросом. Готовый проект - это не тема!
Жду Ваших предложений!👏
В комментариях к данному посту предлагайте вопросы, которые вы хотели бы увидеть максимально подробно разобранными в постах, а если будет интересно то и на видео.
Голосование будет проводиться всю неделю, а статья или видео - выходить по выходным.
Примерные правила:
Жду Ваших предложений!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Controller's in Spring. Разбираем создание и устройство.
Встреча от 18.05.2025
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече мы разобрали важную тему в Spring Java - Controller.
Что мы успели:
➡️ Зачем нам вообще нужны контроллеры.
➡️ Какие существуют основные принципы REST при написании контроллеров.
➡️ Основные аннотации Spring для написания контроллеров и их настройку.
➡️ Все это посмотрели на примере кода.
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
Спасибо всем кто пришел, респект 🫡
Встреча от 18.05.2025
Запись встречи -
YOUTUBE
RUTUBE
На сегодняшней встрече мы разобрали важную тему в Spring Java - Controller.
Что мы успели:
Смотрите, комментируйте, задавайте вопросы! Обязательно подписывайтесь на ютуб и рутюб каналы!!!
Спасибо всем кто пришел, респект 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с коллекциями, вложенными объектами и generic-типами в Gson
1. Работа с коллекциями
Сериализация/десериализация списков (List<T>)
Пример с List<String>:
Проблема: При использовании List.class тип элементов стирается. Для generic-типов нужен TypeToken.
Использование TypeToken для generic-типов
Пример с массивами
Работа с Map<String, Object>
2. Вложенные объекты и сложные структуры
Объекты внутри объектов
Пример JSON с вложенностью:
Соответствующие Java-классы:
Десериализация вложенного объекта
Сериализация сложного объекта
Как обрабатываются вложенности
Gson рекурсивно обходит все поля объекта.
Для каждого вложенного объекта создается новый экземпляр.
Поддерживается любая глубина вложенности.
Пример с коллекцией вложенных объектов
JSON:
Java-классы:
Десериализация:
#Java #middle #Gson
1. Работа с коллекциями
Сериализация/десериализация списков (List<T>)
Пример с List<String>:
Gson gson = new Gson();
// Сериализация списка в JSON
List<String> languages = Arrays.asList("Java", "Kotlin", "Python");
String json = gson.toJson(languages);
System.out.println(json); // ["Java","Kotlin","Python"]
// Десериализация JSON обратно в List
List<String> parsedList = gson.fromJson(json, List.class);
System.out.println(parsedList.get(0)); // Java
Проблема: При использовании List.class тип элементов стирается. Для generic-типов нужен TypeToken.
Использование TypeToken для generic-типов
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// Создаем Type для List<String>
Type listType = new TypeToken<List<String>>() {}.getType();
// Десериализация с сохранением типа
String json = "[\"Apple\", \"Banana\"]";
List<String> fruits = gson.fromJson(json, listType);
System.out.println(fruits.get(0).toUpperCase()); // APPLE (без TypeToken был бы Object!)
Пример с массивами
// Сериализация массива
int[] numbers = {1, 2, 3};
String numbersJson = gson.toJson(numbers);
System.out.println(numbersJson); // [1,2,3]
// Десериализация обратно в массив
int[] parsedNumbers = gson.fromJson(numbersJson, int[].class);
System.out.println(parsedNumbers[0]); // 1
Работа с Map<String, Object>
// Сериализация Map
Map<String, Object> data = new HashMap<>();
data.put("name", "John");
data.put("age", 30);
data.put("skills", Arrays.asList("Java", "SQL"));
String mapJson = gson.toJson(data);
System.out.println(mapJson);
// {"skills":["Java","SQL"],"name":"John","age":30}
// Десериализация Map
Type mapType = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> parsedMap = gson.fromJson(mapJson, mapType);
System.out.println(parsedMap.get("name")); // John
2. Вложенные объекты и сложные структуры
Объекты внутри объектов
Пример JSON с вложенностью:
{
"name": "Alice",
"address": {
"city": "New York",
"street": "5th Avenue"
}
}
Соответствующие Java-классы:
class Address {
private String city;
private String street;
// Конструктор, геттеры и сеттеры
public Address(String city, String street) {
this.city = city;
this.street = street;
}
public String getCity() { return city; }
public String getStreet() { return street; }
}
class Person {
private String name;
private Address address;
// Конструктор, геттеры и сеттеры
}
Десериализация вложенного объекта
String personJson = """
{
"name": "Alice",
"address": {
"city": "New York",
"street": "5th Avenue"
}
}
""";
Gson gson = new Gson();
Person person = gson.fromJson(personJson, Person.class);
System.out.println(person.getName()); // Alice
System.out.println(person.getAddress().getCity()); // New York
Сериализация сложного объекта
Address address = new Address("Berlin", "Main Street");
Person person = new Person("Bob", address);
String json = gson.toJson(person);
System.out.println(json);
// {"name":"Bob","address":{"city":"Berlin","street":"Main Street"}}
Как обрабатываются вложенности
Gson рекурсивно обходит все поля объекта.
Для каждого вложенного объекта создается новый экземпляр.
Поддерживается любая глубина вложенности.
Пример с коллекцией вложенных объектов
JSON:
{
"team": "Developers",
"members": [
{
"name": "John",
"role": "Backend"
},
{
"name": "Anna",
"role": "Frontend"
}
]
}
Java-классы:
class TeamMember {
private String name;
private String role;
// конструктор и геттеры
}
class Team {
private String teamName;
private List<TeamMember> members;
// конструктор и геттеры
}
Десериализация:
Type teamType = new TypeToken<Team>() {}.getType();
Team team = gson.fromJson(jsonString, teamType);
#Java #middle #Gson
Продолжаем выбирать темы для разбора и голосовать за рассмотрение предложенных! 🤓
Голосуем за тему к рассмотрению в эти выходные!
Выбираем новую тему!
Не стесняемся!✌️
Голосуем за тему к рассмотрению в эти выходные!
Выбираем новую тему!
Не стесняемся!
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
#Tasks
public class Task190525 {
public static void main(String[] args) {
String s1 = "Java";
String s2 = s1.concat('\u00A9');
System.out.println(s2);
}
}
#Tasks
Глубокое изучение типа данных short в Java: сравнение с byte и int
Тип short в Java — это примитивный тип, представляющий собой 16-битное целое число со знаком. Он занимает 2 байта памяти и служит компромиссным решением между компактным byte и универсальным int. Несмотря на то, что short используется относительно редко, его понимание важно при оптимизации памяти и взаимодействии с внешними системами.
Диапазон и внутреннее представление
Тип short может хранить значения от -32 768 до 32 767. Как и все знаковые целочисленные типы в Java, short использует формат дополнительного кода (two’s complement). Самый старший (16-й) бит используется для знака: 0 — положительное число, 1 — отрицательное.
Это значит, что в 16 бит можно закодировать 2¹⁶ различных значений: половина для положительных чисел (включая 0), половина для отрицательных.
Для сравнения:
byte — 8 бит, диапазон: -128 до 127
short — 16 бит, диапазон: -32 768 до 32 767
int — 32 бита, диапазон: примерно -2.1 млрд до 2.1 млрд
Такой диапазон делает short пригодным для хранения небольших чисел, например, размеров, координат, портов, идентификаторов, когда byte мал, а int избыточен.
Память и размещение
short занимает 2 байта, в отличие от byte (1 байт) и int (4 байта). Это может быть важно при работе с большими массивами. Например, массив из миллиона short займёт 2 МБ, а массив int — уже 4 МБ.
Как и другие примитивные типы, short:
хранится в стеке, если это локальная переменная;
размещается в куче, если это поле объекта;
автоматически удаляется при выходе переменной из области видимости или при сборке мусора (если внутри объекта).
Арифметика и повышение типов
Важный момент: при любом арифметическом выражении, даже если оба операнда имеют тип short, результат всегда приводится к int. Это правило относится ко всем типам, младше int.
Например:
Чтобы код компилировался, нужно сделать явное приведение:
Это также относится к byte. int, в отличие от них, участвует в арифметике напрямую без преобразований, так как int — тип по умолчанию для целых чисел в Java.
Переполнение и поведение при выходе за диапазон
short, как и другие примитивные типы, не защищён от переполнения. Если результат выходит за диапазон [-32 768; 32 767], значение просто оборачивается — без исключений или предупреждений.
Это может быть источником трудноуловимых ошибок:
Беззнаковость
Как и byte, short — только знаковый тип. В Java нет беззнакового short. Если необходимо работать с диапазоном 0–65535, используется int и маска & 0xFFFF:
Применение и область использования
Оптимизация памяти. Если у вас есть массив, содержащий значения, которые гарантированно не выходят за диапазон short, можно заменить int на short и вдвое сократить объём памяти.
Работа с файлами и сетевыми протоколами. Некоторые форматы (например, WAV, BMP) и сетевые протоколы используют 16-битные поля. Для точного отражения структуры лучше использовать short, чтобы избежать лишних преобразований.
Ограничение диапазона. Как и в случае с byte, использование short может служить сигналом другим разработчикам: переменная не может иметь произвольное значение int.
Сравнение: byte vs short vs int
byte — минимальный по размеру, экономичен, но быстро переполняется. Подходит для работы с бинарными потоками, кодировками, цветовыми компонентами.
short — компромисс между byte и int. Используется реже, но уместен в структурированных форматах, при массовой обработке чисел с ограниченным диапазоном.
int — тип по умолчанию. Безопасный, удобный, редко переполняется. Но при массовой обработке больших объёмов данных может оказаться избыточным по памяти.
Пример: обрезка типа при записи
#Java #для_новичков #beginner #short
Тип short в Java — это примитивный тип, представляющий собой 16-битное целое число со знаком. Он занимает 2 байта памяти и служит компромиссным решением между компактным byte и универсальным int. Несмотря на то, что short используется относительно редко, его понимание важно при оптимизации памяти и взаимодействии с внешними системами.
Диапазон и внутреннее представление
Тип short может хранить значения от -32 768 до 32 767. Как и все знаковые целочисленные типы в Java, short использует формат дополнительного кода (two’s complement). Самый старший (16-й) бит используется для знака: 0 — положительное число, 1 — отрицательное.
Это значит, что в 16 бит можно закодировать 2¹⁶ различных значений: половина для положительных чисел (включая 0), половина для отрицательных.
Для сравнения:
byte — 8 бит, диапазон: -128 до 127
short — 16 бит, диапазон: -32 768 до 32 767
int — 32 бита, диапазон: примерно -2.1 млрд до 2.1 млрд
Такой диапазон делает short пригодным для хранения небольших чисел, например, размеров, координат, портов, идентификаторов, когда byte мал, а int избыточен.
Память и размещение
short занимает 2 байта, в отличие от byte (1 байт) и int (4 байта). Это может быть важно при работе с большими массивами. Например, массив из миллиона short займёт 2 МБ, а массив int — уже 4 МБ.
Как и другие примитивные типы, short:
хранится в стеке, если это локальная переменная;
размещается в куче, если это поле объекта;
автоматически удаляется при выходе переменной из области видимости или при сборке мусора (если внутри объекта).
Арифметика и повышение типов
Важный момент: при любом арифметическом выражении, даже если оба операнда имеют тип short, результат всегда приводится к int. Это правило относится ко всем типам, младше int.
Например:
short a = 1000;
short b = 2000;
short c = a + b; // Ошибка компиляции
Чтобы код компилировался, нужно сделать явное приведение:
short c = (short)(a + b);
Это также относится к byte. int, в отличие от них, участвует в арифметике напрямую без преобразований, так как int — тип по умолчанию для целых чисел в Java.
Переполнение и поведение при выходе за диапазон
short, как и другие примитивные типы, не защищён от переполнения. Если результат выходит за диапазон [-32 768; 32 767], значение просто оборачивается — без исключений или предупреждений.
Это может быть источником трудноуловимых ошибок:
short s = 32_767;
s++; // теперь s = -32_768
Беззнаковость
Как и byte, short — только знаковый тип. В Java нет беззнакового short. Если необходимо работать с диапазоном 0–65535, используется int и маска & 0xFFFF:
short s = -1;
int unsigned = s & 0xFFFF; // результат: 65535
Применение и область использования
Оптимизация памяти. Если у вас есть массив, содержащий значения, которые гарантированно не выходят за диапазон short, можно заменить int на short и вдвое сократить объём памяти.
Работа с файлами и сетевыми протоколами. Некоторые форматы (например, WAV, BMP) и сетевые протоколы используют 16-битные поля. Для точного отражения структуры лучше использовать short, чтобы избежать лишних преобразований.
Ограничение диапазона. Как и в случае с byte, использование short может служить сигналом другим разработчикам: переменная не может иметь произвольное значение int.
Сравнение: byte vs short vs int
byte — минимальный по размеру, экономичен, но быстро переполняется. Подходит для работы с бинарными потоками, кодировками, цветовыми компонентами.
short — компромисс между byte и int. Используется реже, но уместен в структурированных форматах, при массовой обработке чисел с ограниченным диапазоном.
int — тип по умолчанию. Безопасный, удобный, редко переполняется. Но при массовой обработке больших объёмов данных может оказаться избыточным по памяти.
Пример: обрезка типа при записи
short s = (short) 40000;
System.out.println(s); // Выведет -25536
Потому что 40000 не помещается в short, и лишние биты отбрасываются.
#Java #для_новичков #beginner #short
Продолжаем выбирать темы для разбора и голосовать за рассмотрение предложенных! 🤓
Голосуем за тему к рассмотрению в эти выходные!
Выбираем новую тему!
Не стесняемся!✌️
Голосуем за тему к рассмотрению в эти выходные!
Выбираем новую тему!
Не стесняемся!
Please open Telegram to view this post
VIEW IN TELEGRAM