JavaWhiteBook
92 subscribers
202 photos
4 videos
81 links
Привет!
Меня зовут Алексей. Мне 50.
Я третий год работаю java-разработчиком.
В этом канале я рассказываю про трудности-печали, с которыми сталкиваюсь, а также радости-победы, которые случаются.
Только практика, никакой теории, и очень простыми словами.
Download Telegram
Почти все, кто ведет разработку на Java, пользуются IntelliJ IDEA.
Есть два плагина которые помогают сделать код визуально более читаемым.

Indent Rainbow
радужная покраска отступов
Сразу видно где что не так, т.к. не правильные отступы подсвечиваются.
Очень полезно если вы не любите пользоваться автоформатированием, а этим как выяснилось страдают многие.

Rainbow Brackets
красит в радужные цвета скобочки
Это не просто красиво, это жутко удобно, т.к. когда смотришь на код (особенно с большой вложенностью) значительно проще выделить блоки.

И еще одна раздражающая особенность настройки идеи по-умолчанию - это абсолютно не заметные полосы прокрутки в темной теме.
Оказывается это решается очень просто - надо включить контрастный скролбар:
Settings -> Appearance & Behavior -> Appearance
Use contrast scrillbars

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

#idea #ideaplugins
👍1
Ну что, со вчерашнего дня я официально безработный.
Немножко отдохну и начну искать новое место.
Как говорится - пойду в перед к новым горизонтам...
Алгоритм Черепаха и Заяц
Разбирая вчера этот алгоритм понял, что с помощью него можно решить минимум четыре часто встречающиеся задачи со связными списками.
1. Поиск середины
2. Определить цикличен список или нет
3. Найти первый узел цикла (нужна небольшая доработка)
4. Найти последний элемент списка (доработать вариант в п.3)

В заметках расписал немого подробнее.

Мой репозиторий с решениями задач на leetcode - может кому поможет.

#algorithm
👍2
🎓 Развитие

Побитовые операции

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

На данный момент разобрался со следующим:
"Сдвиг вправо"
25 >> 1 = 12,
т.е. по факту это деление на 2 в указанной степени 25/2 = 25/2^1
25 >> 2 = 2/2^2 = 25/ 4 = 6 
25 >> 3 = 2/2^3 = 25/ 8 = 3
25 >> 4 = 2/2^4 = 25/16 = 11

"Сдвиг влево"
5 << 1 = 10
т.е. это умножение на 2 в указанной степени 5*2^1 = 5*2
5 << 2 = 5*2^2 = 5* 4 = 20
5 << 3 = 5*2^3 = 5* 8 = 40
5 << 4 = 5*2^4 = 5*16 = 80

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

И еще одно "Побитовое И"
простой вариант n & 1 и можно определить четное число или нет, работает быстрее чем n % 2.
1 & 1 = 1
2 & 1 = 0
3 & 1 = 1
4 & 1 = 0

Ну разве не магия!!!

Побитовых операций еще много, тут вроде не плохо написано
👍1🔥1
Решил 100 задач на LeetCode

Маленький шаг для человечества и огромный для меня. 🚀

Задачки решаю простые и подряд - и поверьте это не всегда easy. 🔫
В голове кое что поменялось 🙃, особенно в плане чтения задания и кеширования повторяющихся вычислений. 🧐
Даже пришлось вспоминать что-то из комбинаторики. 🥸

Так же начал проходить первый уровень образовательного плана LeetCode 75.

Кроме того, вписался в ежемесячный челендж и делаю задачи из него. А тут бывают и хардовые задания.🤯
С одной до сих пор справится не могу - 1473. Paint House III 🥵
решение вроде есть, но на тестах упираюсь в Time Limit Exceeded, 🤬
так что если у кого есть мысли по этой задаче делитесь...

#leetcode
👍2
Вчера получил первую медальку🥇 на leetcode за прохождение первого учебного плана.

В борьбе за месячную медальку споткнулся о две хардовые задачи:
Задача от 8 числа
Задача от 23 числа
Причем в первой всего один вариант и больше нет мыслей, а во второй ЧЕТЫРЕ варианта 🤯
В обоих задачах на тестах Time Limit Exceeded 🤬
В последней вроде есть еще один вариант, но пока не могу понять как его использовать. 😢

Новый учебный план открывать не буду, пойду поучу теорию, а то вдруг завтра на собесе опять спросят: "Почему JAVA???"...👻

#leetcode
👍1👏1
Собеседование++

Последние несколько недель ищу работу. 👀
Статистика по хэ-хэ такова:
  Отправлено откликов: 53
Даже не прочитано: 12
Отказов: 12
Собеседований: 2,5

Полсобеса - это собес в телеге🔥

📌 Краткий список вопросов с сегодняшнего:
Методы Object
HashCode & Equals и правила переопределения
Equals - Основные принципы
Чем черевато hash = const
Основные типы Коллекций, примеры реализаций
Чем отличаются List, Set, Map
Какие типы БД бывают
Почему реляционные так называются
Что такое инверсия управления
Как заинжектить бин
Что такое транзакция

На вопросы про многопоточку сразу сказал пас. 🙅‍♂️

Но самый интересный вопрос был от HR'а в начале собеса: Не планируете ли переезжать за рубеж? 🥳
После него все прошло просто замечательно...

#inteview
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка слиянием.

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

📌 Описание алгоритма на wiki

Вспомнить, какие вообще есть алгоритмы сортировки, можно тут 👈

Что касается ежемесячного челенжа на leetcode - осталось три дня.
Сегодня выплыла легкая задача, которая была сделана за 5 минут. 😜
Кажется, что медалька стала ближе. Посмотрим, какие задания дадут в последние дни.
Очень надеюсь 🙏🏻, что за выходные смогу победить покраску домов. 🤬

Сейчас сяду опять забивать в голову, видимо, нужную информацию - завтра новый собес... 😢

#algorithm
👍1
Победа...
но только моя личная 🥇

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

#leetcode
👍1
Закончил свои записки по кору.
Если найдете ошибки — обязательно пишите.
Если считаете, что что-то нужно добавить, то тоже пишите.
Если кому-то когда-то поможет — буду очень рад.
Напомню, что контент адаптирован под мобильный, собственно, с этого все и началось...

#whitebook
👍3🔥2
Сегодня повторял многопоточку. 😜
Сделал очередную страничку с заметочками. ✍️

Просьба та же - "взять на контроль" 👀

#whitebook
👍1
Сейчас повторял паттерны.
Понял, что назвать могу все основные, а вот объяснить, пожалуй, что максимум три...
Надо будет все-таки в светлом будущем книжку прочитать.

Ну, как обычно, сделал несколько заметок.

#whitebook #patterns
🔥2
Сейчас не так много времени, чтобы заниматься задачками.
Однако, маленькими шагами удалось решить 150 задачек. 🥇

Самым интересным было дерево Фенвика 🤘.
Вот видео, в котором есть объяснение и самой структуры, и где и когда ее использовать.

#leetcode
🔥1
Сегодня прошел очередное собеседование - первый раз за себя не стыдно в полном смысле слова. 🥇

Первым этапом был разбор тестового - такого код-ревью у меня не было. 👍🏻
Выглядело так: "это хорошо для джуна, но можно сделать проще/лучше/встроенными средствами". 👏
И еще дали ссылочки, что почитать на тему. 🔗

Вторым сначала погоняли по спрингу.
Хорошо, что сделал записки, там только про секьюрити осталось добавить. ✍️
Потом по коллекциям - кто, как, какие реализации, какие сложности. 😜

Третьим - лайвколлинг. 🔥
И тут помогли задачки с leetcod'а, а точнее, задачи были именно оттуда‼️
Обе сделал в двух вариантах, только было очень-очень тяжко без идеи.🤯
В одной из задач можно было придумать еще один вариант, но я совершено забыл про встроенные методы String. 😢

Кстати, на собесе кроме меня было еще 6 человек - жутко нервничал. 🤬

Короче, все прошло хорошо, посмотрим, что решат.

#interview
👍4👏2