Java_No_Panic
342 subscribers
94 photos
60 links
Самый перспективный, полезный и ламповый канал по Java в русскоязычном телеграме!

Обучающие посты в хронологическом порядке, посты по софт скиллам и чат, где вам всегда помогут админы и комьюнити.

Сотрудничество:
@Niik_Whaale
Download Telegram
А вот и отзыв от победительницы конкурса ежедневных фидбэков Kate, за который ей отдельное спасибо.

#feedback
6
Какой модификатор доступа NON-ACCCESS следует использовать?

Для классов
вы можете использовать либо final, либо abstract:

🔴 final - Класс не может быть унаследован другими классами.

🔴 abstract - Класс нельзя использовать для создания объектов (чтобы получить доступ к абстрактному классу, он должен быть унаследован от другого класса.

Для атрибутов и методов вы можете использовать одно из следующих:

🔴 final - Атрибуты и методы нельзя переопределить/изменить.

🔴 static - Атрибуты и методы принадлежат классу, а не объекту.

🔴 abstract - Может использоваться только в абстрактном классе и только в методах. Метод не имеет тела, например, abstract void run();. Тело предоставляется подклассом (наследуется от).

🔴 transient - Атрибуты и методы пропускаются при сериализации содержащего их объекта.

🔴 synchronized - синхронизированные методы могут быть доступны только одному потоку(thread) за раз

🔴 volatile - Значение атрибута не кэшируется локально в потоке(thread) и всегда считывается из основной памяти.

#learning_java
👍5🔥1🌭1
Что такое сериализация в Java?

#для_новичков
#для_мидл_разработчиков

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

#learning_java
🔥9
Зачем нам нужна сериализация в Java?

#для_новичков
#для_мидл_разработчиков

В прошлом посте мы уже с вами узнали о том, что такое сериализация, но у нас остался не раскрытым главный вопрос, а зачем она нужна и в каких случаях используется.

В этом посте я вам расскажу, где мы с ней взаимодействуем.

Сериализация используется для достижения следующих целей:

🔴 Коммуникация: Сериализация включает в себя процедуру сериализации и передачи объекта. Это позволяет нескольким компьютерным системам проектировать, совместно использовать и выполнять объекты одновременно.

🔴 Глубокое копирование: процесс клонирования упрощается благодаря сериализации. Точная копия объекта получается путем сериализации объекта в массив байтов, а затем его десериализации.

🔴 Кросс-синхронизация JVM: основное преимущество сериализации заключается в том, что она работает с разными JVM, которые могут работать на разных архитектурах или операционных системах.

#learning_java
👍5🐳2
Как мы сериализуем объект?

#для_новичков
#для_мидл_разработчиков

Когда мы с вами разобрались с тем, что такое сериализация и для чего она нужна, настало время поговорить о том, как её применить.

Объект Java является сериализуемым тогда и только тогда, когда его класс или любой из его родительских классов реализует либо интерфейс java.io.Serializable, либо его субинтерфейс, java.io.Externalizable.

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

Пример подключения сериализации в класса Employee

 class Employee implements Serializable {
private static final long serialVersionUID = 1L;
int id;
String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
}

#learning_java
🔥5👍1
Один из правдивых фактов о нашей профессии

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

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

#soft_skills
🔥6👍1
Что такое приведение типов?

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

К примеру у вас есть метод, который складывает два числа. Данный метод ожидает на вход два аргумента int, а вы передаете в него два значения float. Такое приведение типов не пройдет автоматически, так как float больше чем int.
Для того, чтобы у нас все работало, нам нужно воспользоваться приведением типов от большего к меньшему.
float myDouble = 10.78f;
int myInt = (int) myDouble

Приведение типов — это когда вы присваиваете значение одного примитивного типа данных другому типу.

В Java существует два типа приведения:

Widening Casting (автоматически) - преобразование меньшего типа данных в больший

byte -> short -> char -> int -> long -> float -> double

Narrowing Casting (через специальную конструкцию) - преобразование большего типа в тип меньшего размера

double -> float -> long -> int -> char -> short -> byte

#learning_java
👍7🔥1
А что я буду делать с числами?

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

Вы хотите купить какой-нибудь товар. Открываете интернет магазин и нажимаете на кнопку «добавить в корзину». В это время выполняется код, который увеличивает стоимость вашей корзины на цену телефона. Именно тут и происходит арифметическое действие «сложение».

В Java у нас с вами есть вот такие арифметические операторы.

int x = 6;

int y = 2;

┃Cложение ┃ Складывает вместе два значения ┃x + y ┃→ 6 + 2 = 8 ┃

┃ Вычитание ┃ Вычитает одно значение из другого ┃ x - y ┃ → 6 - 2 = 4 ┃

┃ Умножение ┃ Умножает два значения ┃ x * y ┃→ 6 * 2 = 12 ┃

┃ Разделение┃Делит одно значение на другое ┃ x / y ┃→ 6 / 2 = 3 ┃

┃Модуль ┃Возвращает остаток от деления ┃x % y┃→ 6 % 2 = 0 ┃

┃Увеличение┃Увеличивает значение переменной на 1┃++x┃++6 = 7 ┃

┃Уменьшение ┃Уменьшает значение переменной на 1 ┃--x┃--6 = 5 ┃

Технические сотрудники Java_No_Panic ежедневно пользуется этими операторами для написания коммерческих приложений :)

#learning_java
🔥5👍3
Сделай свой калькулятор

Давно у нас с вами не было практики. Предлагаем вам реализовать простой калькулятор с базовыми математическими операциями, такими как: умножение, сложение, деление и вычитание.

Если вы хотите более функциональный вариант приложения, не стесняйтесь добавлять более сложные операции, к примеру, степень числа или вычисление синуса. Калькулятор - это далеко не единственная простая программа. Ребята с канала @applicuha с радостью подкинут вам вариантов для пет проектов(пет проект - проект для тренировки, портфолио), так вы можете объединить приятное с полезным, создавая такие популярные приложения как: конверторы валют, форматов файлов и многие другие.
🔥6👍1
Всем привет, на связи команда Java_No_Panic!

Пришло время познакомиться поближе.

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

Nick Whale - наш hard skill master. Имеет опыт работы на Java, JavaScript, Python, HTML, CSS и не только. Изучает программирование с 13-ти лет, имеет опыт преподавания в IT сфере, а также занимается крипто инвестициями и является профессионалом в нагибании системы образования. С радостью ответит на ваши вопросы касательно практических и теоретических моментов написания кода, опыта работы в компаниях и того, как этот самый опыт получить.

FREQUENCY CONFLICT - наш soft skill master. Начал изучать психологию в возрасте 13-ти лет до того, как это стало мейнстримом, самостоятельно освоил профессию музыкального продюсера и звукорежиссёра после того, как бросил вуз, имеет огромный опыт в сфере самообразования и систематизации учебного процесса для себя и других. С радостью ответит на ваши вопросы касательно того, как эффективно впитывать знания, в чем разница между working hard и working smart, как систематизировать творческий процесс, а также окажет вам психологическую поддержку.

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

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

#appeal
🔥12👏3👌1
Учимся сокращать

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

Встречаете, вот они:
┃Оператор┃Пример сокращенная версия┃Точно так же┃
┃+= ┃ x+= 3┃x = x + 3 ┃

┃-= ┃ x -= 3┃x = x - 3 ┃

┃*= ┃ x *= 3┃x = x * 3 ┃

┃ /= ┃ x /= 3┃x = x / 3 ┃

┃%=┃ x %= 3┃x = x % 3┃

#learning_java
👍5🐳3
Мы всегда сравниваем себя с другими?

#для_новичков

Ладно, ладно :) Подумали, что будет пост по софт скиллам и психологии?
Они, кстати, идут рука об руку в программировании, ну или можно сказать, что все эти три сферы очень тесно связаны друг с другом.

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

Так как мы сравниваем переменные или другие блоки кода в программировании?

Для этого у нас есть специальные операторы сравнения. Встречайте, они пришли к вам на помощь в создании ваших крутых программ:

┃Оператор┃Название┃Пример┃
┃== ┃ Равно┃x == y ┃

┃!= ┃ Не равно┃x = x - 3 ┃

┃> ┃ Больше чем┃x > y ┃

┃< ┃ Меньше, чем┃x < y ┃

┃>= ┃Больше или равно┃x >= y┃

┃<= ┃Меньше или равно┃x <= y┃

#learning_java
👍4🔥1
Есть ли у вас паника, когда речь заходит о вакансиях для программистов на российском рынке?

Киты не паникуют, они четко знают что им нужно и идут к своей цели, несмотря на обстоятельства 🐳.

Команда Java_No_Panic подготовила для вас обзор рынка вакансий начального уровня.

1. Стажер-разработчик Java
Заработная плата от 55 тысяч рублей.
https://hh.ru/vacancy/71559826?from=vacancy_search_list&query=java

2. Junior Java разработчик
Заработная плата от 80 тысяч рублей.
https://hh.ru/vacancy/73575242?from=vacancy_search_list&query=java

3. Android Intern
Заработная плата от 41 тысяч рублей.
https://hh.ru/vacancy/73188801?from=vacancy_search_list&query=java

PS: участники нашего с вами комьюнити достойны лучших рабочих мест, хорошей зарплаты и постоянного роста, так как получать за работу лишь деньги - это слишком мало. Если вы получили отказ на 10 собеседованиях, не отказывайтесь от своей цели жить хорошо и развиваться в сфере программирования. Боритесь дальше, как вы боролись со своим багом в коде. Покажите нанимающему менеджеру, что киты из Java_No_Panic идут до конца и поддерживают друг друга. Вперед, друзья!

#vacancy
🔥4👍3🤯2👌1
На сколько собеседований ходит Nick Whale?

Было бы неплохо поделиться статистикой нашего hard skills мастера. Этот чувак подается на собеседования каждый день в разные страны. Конечно же, его интересуют исключительно вакансии удаленной работы, так как ему нужно вести этот канал на пару soft skills мастером, обучать, давать советы и расти вместе с нашей крутой, замотивированной аудиторией.

Nick Whale ходит на два-три собеседования в месяц. По его опыту хождение по собеседованиям помогает ему чувствовать себя свободнее на них. То-есть если вы прошли одно собеседование и проанализировал его ошибки и успешные стороны, то вам будет проще пройти следующее.

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

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

Если вам интересно узнать больше о теме собеседований, то добро пожаловать в наш канал, который посвящен собеседованиям.

Ждем вас в Interview_No_Panic!

#our_projects
👍2🔥21
Добро пожаловать в чат!

На связи как всегда команда Java_No_Panic, и мы с радостью готовы представить вам чат, который сблизит нас всех ещё больше, сделает процесс обучения более эффективным, а также позволит вам обмениваться опытом, спрашивать советы не только у нас, но и у своих более опытных коллег и находить единомышленников, ведь вместе всегда веселее и продуктивнее.
🔥3
Сложно ли сделать один выбор из двух вариантов?

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

Очень часто в программировании нам нужно делать операции сразу с двумя условиями. Вы можете создать их при помощи логических операций. К примеру вы хотите не пропускать на фильм зрителей, которым меньше 18 лет. Но если со зрителем есть родитель, то вы должны пускать его на фильм. Вот пример этого условия в коде:

if(age >= 18 || parent == true ){

System.out.println(“Вы можете смотреть фильм“)
}

Встречайте табличку с нашими помощниками:

┃Оператор┃Название┃Описание┃Пример┃

┃&& ┃ Логическое и┃Возвращает true, если оба утверждения верны ┃x < 5 && x < 10┃

┃|| ┃ Логическое или┃Возвращает true, если хотя бы одно из утверждений верно ┃x < 5 || x < 4┃

┃! ┃ Логическое не┃Обратный результат, возвращает false, если результат истинный┃!(x < 5 && x < 10)┃

#learning_java
👍3🔥2
Краткий обзор Obsidian

Какое-то время назад у нас был пост о системе второго мозга Zettelkasten, в котором мы упоминали софт, разработанный специально для её реализации. Obsidian является нашей любимой программой в этом списке, и сегодня мы вкратце рассмотрим её возможности.

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

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

Obsidian доступна для Windows, MacOS и Linux, а также для iOS и Android.

Ссылка на официальный сайт: https://obsidian.md

#apps
2🔥1