Что такое pattern matching для 🤓
Ответ:
Начиная с Java 16, instanceof может объявлять переменную одновременно с проверкой: if (obj instanceof String s) { ... }.
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
instanceof? Ответ:
Если объект является экземпляром String, переменная s инициализируется автоматически, и её можно использовать в блоке.
Это сокращает код и устраняет необходимость явного приведения.
В Java 17+ pattern matching расширен на switch. Упрощает работу с полиморфными структурами, делая код более безопасным (переменная недоступна вне области).
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
История технологии сегодня — 27 июня
ℹ️ Кто родился в этот день
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
🌐 Знаковые события
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Влади́мир Миха́йлович Петляко́в (15 (27) июня 1891, село Самбек, область Войска Донского, Российская империя — 12 января 1942, деревня Мамешево, Сергачский район, Горьковская область, РСФСР, СССР) — советский авиаконструктор.
Известные модели самолётов
Тяжелый бомбардировщик ТБ-3 (АНТ-6)
Пассажирский самолёт АНТ-14 «Правда»
Тяжелый бомбардировщик ТБ-4 (АНТ-16)
Агитационный самолёт АНТ-20 «Максим Горький»
Тяжёлый бомбардировщик дальнего действия Пе-8 (АНТ-42, ТБ-7)
Высотный истребитель ВИ-100
Пикирующий бомбардировщик Пе-2
Высотный истребитель Пе-3
1931 — в США изобретатель Игорь Сикорский подал патентную заявку на вариант одновинтового вертолёта с небольшим рулевым винтом.
#Biography #Birth_Date #Events #27июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Помоему что-то много я библиотек добавил....😂
🤣4🤯3
История технологии сегодня — 28 июня
ℹ️ Кто родился в этот день
И́лон Рив Маск (англ. Elon Reeve Musk, МФА: [ˈiːlɒn 'mʌsk]; род. 28 июня 1971, Претория, Гаутенг, ЮАР) — американский и южноафриканский предприниматель, инженер и долларовый триллионер, государственный, политический и общественный деятель ультраправых и либертарианских взглядов. Основатель, генеральный директор и главный инженер компании SpaceX; крупнейший акционер, член совета директоров и генеральный директор компании Tesla; основатель The Boring Company; соучредитель Neuralink и OpenAI; генеральный директор XAI (объединяет xAI и социальную сеть X).
Кла́ус фон Кли́тцинг (нем. Klaus von Klitzing; род. 28 июня 1943, Шрода, оккупированная Германией часть Польши) — немецкий физик, лауреат Нобелевской премии по физике 1985. Открыл целочисленный квантовый эффект Холла, состоящий в квантовании Холловского сопротивления двумерного электронного газа в сильных магнитных полях и при низких температурах.
Мари́я Гёпперт-Ма́йер (нем. Maria Göppert-Mayer; 28 июня 1906, Катовице, Пруссия, Германская империя — 20 февраля 1972, Сан-Диего, Калифорния) — немецкий и американский учёный, физик-ядерщик, лауреат Нобелевской премии по физике (половина премии за 1963 год, совместно с Хансом Йенсеном, «за открытия, касающиеся оболочечной структуры ядра»; вторую половину премии получил Юджин Вигнер «за вклад в теорию атомного ядра и элементарных частиц, особенно с помощью открытия и приложения фундаментальных принципов симметрии»).
🌐 Знаковые события
1712 — в Санкт-Петербурге в присутствии Петра I на воду спущен первый линейный корабль, построенный в Главном адмиралтействе для Балтийского флота.
#Biography #Birth_Date #Events #28июня
И́лон Рив Маск (англ. Elon Reeve Musk, МФА: [ˈiːlɒn 'mʌsk]; род. 28 июня 1971, Претория, Гаутенг, ЮАР) — американский и южноафриканский предприниматель, инженер и долларовый триллионер, государственный, политический и общественный деятель ультраправых и либертарианских взглядов. Основатель, генеральный директор и главный инженер компании SpaceX; крупнейший акционер, член совета директоров и генеральный директор компании Tesla; основатель The Boring Company; соучредитель Neuralink и OpenAI; генеральный директор XAI (объединяет xAI и социальную сеть X).
Кла́ус фон Кли́тцинг (нем. Klaus von Klitzing; род. 28 июня 1943, Шрода, оккупированная Германией часть Польши) — немецкий физик, лауреат Нобелевской премии по физике 1985. Открыл целочисленный квантовый эффект Холла, состоящий в квантовании Холловского сопротивления двумерного электронного газа в сильных магнитных полях и при низких температурах.
Мари́я Гёпперт-Ма́йер (нем. Maria Göppert-Mayer; 28 июня 1906, Катовице, Пруссия, Германская империя — 20 февраля 1972, Сан-Диего, Калифорния) — немецкий и американский учёный, физик-ядерщик, лауреат Нобелевской премии по физике (половина премии за 1963 год, совместно с Хансом Йенсеном, «за открытия, касающиеся оболочечной структуры ядра»; вторую половину премии получил Юджин Вигнер «за вклад в теорию атомного ядра и элементарных частиц, особенно с помощью открытия и приложения фундаментальных принципов симметрии»).
1712 — в Санкт-Петербурге в присутствии Петра I на воду спущен первый линейный корабль, построенный в Главном адмиралтействе для Балтийского флота.
#Biography #Birth_Date #Events #28июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Виды Телецкого озера
🔥7
"Как я притворяюсь программистом"
Вот представьте, 40-летний, вполне состоявшийся человек, однажды решает поменять свою жизнь и идет в IT😨
Начинает учиться, и что-то даже писать на Java.🤓
Проходит некоторое время и волею судеб, этот мужик получает оффер и выходит на работу.🥳
Уже войдя в команду и выполняя поначалу простые, но тем не менее продуктовые задачи, он в тайне думает, что все это не взаправду.
Ведь:
❌ Вся команда может завтра узнать, что он новичок, и писать то не умеет.
❌ А код он берет с Stack Overflow и чатаЖПТ и скоро это выплывет наружу.
❌ Завтра он напишет код с багами и в него начнут тыкать пальцами.
❌ И зарплату ему платят зря, ведь он вообще ничего не знает и от него нет пользы.
❌ И вообще он занял место того, кто явно умнее, но менее удачлив.
Но проходит время и всего этого не происходит.
Наоборот, его периодически хвалят за хорошую работу, и неплохой код.
Его приложения давно крутятся на PROD-е, но данные мысли не уходят...
И если у тебя тоже так - добро пожаловать в клуб людей с «Синдромом Самозванца»
И ты спросишь - а что делать, то?
Самое важное - ПЕРЕСТАНЬ ПАРИТЬСЯ🙃
Эффективно бороться с «синдромом самозванца» можно только его же методами:
1. Понять и принять, что эти ощущения никуда не денутся долгое время😭
Ведь - «Программирование — это вечное незнание».
Еще очень долго будет казаться, что ты просто глуп для занимаемого тобою места и только признание команды, и осознание того, что ты справляешься, постепенно притупит эти ощущения.
2. Понять, что ты в этом не одинок.🤝
В сфере программирования даже у мидлов, отработавших уже далеко не один год, есть ощущение, что они "на грани провала".
Это нормально.
Одна из причин возникновения этого синдрома - сравнение себя с более опытными разработчиками. Видя, как они за день выдают в мердж реквест целую систему, кажется, что ты так никогда не сможешь и вообще бестолочь😉
Но, ты не видишь, как тот же сеньор загуглил вчера “what is hashmap in java” и сломал клавиатуру в попытках сделать зеленым тест, при написании это системы.
Все познается в сравнении.🙂
3. Понять, что чувство фальши значит - ты не врёшь себе. ☝️
Важно осознать свое место.
Понять, что ты хоть и новичок, но раз ты получил оффер, значит ты достоин. Если у тимлида к тебе нет претензий - значит ты справляешься.
Пойми, настоящие фейковые программисты никогда не страдают синдромом самозванца.
Сомнения — признак того, что тебе не всё равно, что ты понимаешь уровень своей компетенции. А это уже преимущество. Потому что только такие не стоят на месте.
ПОЭТОМУ
Не сомневайся
Пиши код. Ошибайся. Двигайся.
Даже прочитав это, ты уже не там, где был до этого.
Это и есть прогресс.
И мы с тобой✈️
😎
#motivation
Вот представьте, 40-летний, вполне состоявшийся человек, однажды решает поменять свою жизнь и идет в IT
Начинает учиться, и что-то даже писать на Java.
Проходит некоторое время и волею судеб, этот мужик получает оффер и выходит на работу.
Уже войдя в команду и выполняя поначалу простые, но тем не менее продуктовые задачи, он в тайне думает, что все это не взаправду.
Ведь:
Но проходит время и всего этого не происходит.
Наоборот, его периодически хвалят за хорошую работу, и неплохой код.
Его приложения давно крутятся на PROD-е, но данные мысли не уходят...
И если у тебя тоже так - добро пожаловать в клуб людей с «Синдромом Самозванца»
«Синдром самозванца» (на англ. impostor syndrome) — это психологическое явление, впервые описанное в 1978 году американскими психологами Полин Кланс и Сюзанн Аймс. Оно не является официальным психиатрическим диагнозом, но признано как психологический феномен, с которым сталкиваются миллионы людей, особенно в сферах с высоким уровнем интеллектуальной нагрузки — таких как программирование, наука, медицина, искусство.
Что это такое с научной точки зрения:
Синдром самозванца — это устойчивое внутреннее ощущение, что твои достижения не заслужены, что ты — "обманщик", и скоро все это "раскроется".
Люди с этим синдромом часто приписывают успех:
случайности,
везению,
внешним факторам ("мне просто помогли", "повезло с задачей"),
а не своим способностям или труду.
И это НЕ болезнь, но:
Может сопровождаться тревожностью, депрессией, перфекционизмом и прокрастинацией.
Чаще возникает у людей с высоким уровнем самокритики и требовательности к себе.
Не имеет четких диагностических критериев в МКБ-11 или DSM-5 (официальные классификаторы заболеваний), но изучается в клинической психологии.
И ты спросишь - а что делать, то?
Самое важное - ПЕРЕСТАНЬ ПАРИТЬСЯ
Эффективно бороться с «синдромом самозванца» можно только его же методами:
1. Понять и принять, что эти ощущения никуда не денутся долгое время
Ведь - «Программирование — это вечное незнание».
Еще очень долго будет казаться, что ты просто глуп для занимаемого тобою места и только признание команды, и осознание того, что ты справляешься, постепенно притупит эти ощущения.
2. Понять, что ты в этом не одинок.
В сфере программирования даже у мидлов, отработавших уже далеко не один год, есть ощущение, что они "на грани провала".
Это нормально.
Одна из причин возникновения этого синдрома - сравнение себя с более опытными разработчиками. Видя, как они за день выдают в мердж реквест целую систему, кажется, что ты так никогда не сможешь и вообще бестолочь
Но, ты не видишь, как тот же сеньор загуглил вчера “what is hashmap in java” и сломал клавиатуру в попытках сделать зеленым тест, при написании это системы.
Все познается в сравнении.
3. Понять, что чувство фальши значит - ты не врёшь себе. ☝️
Важно осознать свое место.
Понять, что ты хоть и новичок, но раз ты получил оффер, значит ты достоин. Если у тимлида к тебе нет претензий - значит ты справляешься.
Пойми, настоящие фейковые программисты никогда не страдают синдромом самозванца.
Сомнения — признак того, что тебе не всё равно, что ты понимаешь уровень своей компетенции. А это уже преимущество. Потому что только такие не стоят на месте.
ПОЭТОМУ
Не сомневайся
Пиши код. Ошибайся. Двигайся.
Даже прочитав это, ты уже не там, где был до этого.
Это и есть прогресс.
Интересный факт:
Исследования показывают, что 70–80% людей испытывали синдром самозванца хотя бы раз в жизни.
Особенно часто:
женщины в STEM-профессиях,
начинающие специалисты,
талантливые подростки и студенты.
И мы с тобой
#motivation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
История технологии сегодня — 29 июня
ℹ️ Кто родился в этот день
Йозеф Людвиг Франц Рессель ( чеш . Josef Ludvík František Ressel ; 29 июня 1793 — 9 октября 1857) — австрийский лесничий и изобретатель, сконструировавший один из первых действующих корабельных винтов .
🌐 Знаковые события
1975 — в Институте ядерной энергии им. Курчатова введена в строй крупнейшая в мире термоядерная установка «Токамак-10».
2007 — в США поступил в продажу первый iPhone.
#Biography #Birth_Date #Events #29июня
Йозеф Людвиг Франц Рессель ( чеш . Josef Ludvík František Ressel ; 29 июня 1793 — 9 октября 1857) — австрийский лесничий и изобретатель, сконструировавший один из первых действующих корабельных винтов .
1975 — в Институте ядерной энергии им. Курчатова введена в строй крупнейшая в мире термоядерная установка «Токамак-10».
2007 — в США поступил в продажу первый iPhone.
#Biography #Birth_Date #Events #29июня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Раздел 11. Работа с файлами, I/O и сетью (NIO.2)
Глава 1. Классический Java I/O (java.io)
PrintWriter и PrintStream – форматированный вывод. Путь данных и управление памятью
Внутреннее устройство PrintWriter
При конструировании
Рекомендуется оборачивать в
Методы форматированного вывода
print() и println()
printf() и format()
Путь данных в памяти при printf()
Путь данных детально:
Объекты в heap при одном вызове
#Java #для_новичков #beginner #IO #NIO #PrintWriter #PrintStream
Глава 1. Классический Java I/O (java.io)
PrintWriter и PrintStream – форматированный вывод. Путь данных и управление памятью
PrintWriter и PrintStream — высокоуровневые обертки для форматированного вывода текста. Они предоставляют методы print(), println(), printf(), которые автоматически преобразуют примитивы, объекты и строки в текстовое представление и записывают в underlying поток. Ключевое отличие от базовых Writer/OutputStream: эти классы никогда не выбрасывают IOException. Вместо этого они устанавливают внутренний флаг ошибки, проверяемый методом checkError().PrintStream — байтовый поток, наследник OutputStream. Исторически использовался для System.out и System.err. PrintWriter — символьный поток, наследник Writer. Предпочтителен для нового кода, так как работает с символами и корректно обрабатывает Unicode.Внутреннее устройство PrintWriter
// Упрощенная структура из OpenJDK
public class PrintWriter extends Writer {
// Underlying Writer для фактической записи
private Writer out;
// Флаг autoFlush: сброс буфера после println()
private boolean autoFlush;
// Флаг ошибки: true, если произошла IOException
private boolean trouble = false;
// Конструкторы
public PrintWriter(Writer out) {
this(out, false); // autoFlush = false по умолчанию
}
public PrintWriter(Writer out, boolean autoFlush) {
super(out);
this.out = out;
this.autoFlush = autoFlush;
}
public PrintWriter(String fileName) throws FileNotFoundException {
this(new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileName))), false);
}
}
При конструировании
new PrintWriter(new FileWriter(...)) создается цепочка оберток:PrintWriter
-> Writer (FileWriter)
-> FileWriter extends OutputStreamWriter
-> FileOutputStream (внутри OutputStreamWriter)
PrintWriter не имеет собственного буфера — он делегирует запись в underlying Writer. Если underlying Writer не буферизован (как FileWriter), каждый вызов print() инициирует немедленную запись. Рекомендуется оборачивать в
BufferedWriter:// Правильно: буферизация через BufferedWriter
new PrintWriter(new BufferedWriter(new FileWriter("file.txt")));
Методы форматированного вывода
print() и println()
public void print(String s) {
if (s == null) {
s = "null";
}
write(s); // Делегирование в underlying Writer
}
public void println(String s) {
print(s);
println(); // Запись разделителя строки
}
public void println() {
// Запись line.separator
write(System.lineSeparator());
if (autoFlush) {
flush(); // Сброс при autoFlush=true
}
}
println() добавляет платформенный разделитель строки и, при autoFlush=true, вызывает flush(). Это гарантирует немедленную видимость данных, но снижает производительность.printf() и format()
public PrintWriter printf(String format, Object... args) {
return format(format, args);
}
public PrintWriter format(String format, Object... args) {
try {
Formatter f = new Formatter(this);
f.format(format, args);
} catch (FormatterClosedException x) {
// Обработка
}
return this;
}printf() создает объект Formatter — сложный парсер форматных строк. Formatter анализирует строку формата, извлекает аргументы, выполняет преобразования и записывает результат в Appendable (в данном случае — PrintWriter).Путь данных в памяти при printf()
try (PrintWriter pw = new PrintWriter(
new BufferedWriter(new FileWriter("report.txt")))) {
pw.printf("Book: %s, Author: %s, Price: %.2f%n",
book.getTitle(), book.getAuthor(), book.getPrice());
}
Путь данных детально:
[Java: pw.printf("Book: %s...", title, author, price)]
-> [new Formatter(pw)] // Создание Formatter в heap
-> [Formatter.parse(format)] // Парсинг строки формата
-> [StringBuilder внутри Formatter: накопление результата]
-> [%s: title.toString()] // Вызов toString(), создание String
-> [%s: author.toString()] // Вызов toString(), создание String
-> [%.2f: String.format("%.2f", price)] // Создание String
-> [%n: замена на \n или \r\n]
-> [Formatter.flush(): запись StringBuilder в PrintWriter]
-> [PrintWriter.write(String)] // Делегирование в BufferedWriter
-> [BufferedWriter.write(char[], off, len)] // Накопление в cb
-> [OutputStreamWriter: кодирование char -> байты UTF-8]
-> [FileOutputStream: системный вызов при заполнении/flush]Объекты в heap при одном вызове
printf():Formatter — временный, собирается GC после вызоваStringBuilder внутри Formatter — временныйString от toString() аргументов — если аргументы уже String, новые не создаютсяString от форматирования чисел — временная#Java #для_новичков #beginner #IO #NIO #PrintWriter #PrintStream
👍4