Варианты ответа:
Anonymous Quiz
24%
4000000000
7%
294967295
41%
-294967296
27%
Ошибка компиляции
0%
0
С 10.05 по 16.05
Следующая неделя
Воскресный мотивационный пост: Почему все-таки программирование?
Примитивные типы данных в Java
Глубокое изучение типа данных byte в Java
Полный разбор примитивного типа int в Java
Gson: основы сериализации и десериализации
Базовая десериализация и аннотации в Gson
Авторская статья: Самые пугающие три точки кода. Varargs в Java
Полезные статьи и видео:
Идемпотентность и зачем она
Первые шаги в Spring Security с JWT
И посмеяться, тем кто знает английский
Как и всегда, задачи можно найти под тегом - #Tasks, мемы - #Mems
#memory
Следующая неделя
Воскресный мотивационный пост: Почему все-таки программирование?
Примитивные типы данных в Java
Глубокое изучение типа данных byte в Java
Полный разбор примитивного типа int в Java
Gson: основы сериализации и десериализации
Базовая десериализация и аннотации в Gson
Авторская статья: Самые пугающие три точки кода. Varargs в Java
Полезные статьи и видео:
Идемпотентность и зачем она
Первые шаги в Spring Security с JWT
И посмеяться, тем кто знает английский
Как и всегда, задачи можно найти под тегом - #Tasks, мемы - #Mems
#memory
Вот, какие темы вы предложили к рассмотрению!
Давайте выберем, какую из них рассмотрим подробно?
Давайте выберем, какую из них рассмотрим подробно?
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