Beginning Programming with Java For Dummies (2021)
Автор: Barry Burd
Количество страниц: 560
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Скачать книгу
Автор: Barry Burd
Количество страниц: 560
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Скачать книгу
Telegram
Книги для программистов (reserved)
Beginning Programming with Java For Dummies (2021)
Автор: Barry Burd
Автор: Barry Burd
⛓ Справочник по блокчейну и криптовалютам. Часть 1: основные понятия и технологии
Изучить терминологию в любой сфере – задача не из легких. Поиск в интернете проблему не решает, если тема слишком сложная и запутанная. Эта шпаргалка поможет вам разобраться с основными понятиями в криптовалютном мире.
https://proglib.io/sh/3jxWVpJwaD
Изучить терминологию в любой сфере – задача не из легких. Поиск в интернете проблему не решает, если тема слишком сложная и запутанная. Эта шпаргалка поможет вам разобраться с основными понятиями в криптовалютном мире.
https://proglib.io/sh/3jxWVpJwaD
Sams Teach Yourself Java in 21 Days (2020)
Автор: Rogers Cadenhead
Количество страниц: 672
С помощью этого руководства вы быстро освоите основы, а затем перейдете к продвинутым особенностям и концепциям современной Java. Книга была полностью обновлена для Java 11 и 12. К тому времени, когда вы прочтете книгу, вы будете хорошо разбираться в Java и библиотеках. Предыдущий опыт программирования не требуется. Следуя 21 тщательно организованному уроку из этой книги, каждый может изучить основы программирования на Java.
Скачать книгу
Автор: Rogers Cadenhead
Количество страниц: 672
С помощью этого руководства вы быстро освоите основы, а затем перейдете к продвинутым особенностям и концепциям современной Java. Книга была полностью обновлена для Java 11 и 12. К тому времени, когда вы прочтете книгу, вы будете хорошо разбираться в Java и библиотеках. Предыдущий опыт программирования не требуется. Следуя 21 тщательно организованному уроку из этой книги, каждый может изучить основы программирования на Java.
Скачать книгу
Telegram
Книги для программистов (reserved)
Sams Teach Yourself Java in 21 Days (2020)
Автор: Rogers Cadenhead
Автор: Rogers Cadenhead
#вопросы_с_собеседований
Что такое «зелёные потоки» и есть ли они в Java?
Что такое «зелёные потоки» и есть ли они в Java?
Зелёные (легковесные) потоки (green threads) — потоки, эмулируемые виртуальной машиной или средой исполнения. Создание зелёного потока не подразумевает под собой создание реального потока ОС.
Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.
Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.
Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.
Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.
Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.
Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.
Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
#вопросы_с_собеседований
Какая разница между JSPWriter и сервлетным PrintWriter?
Какая разница между JSPWriter и сервлетным PrintWriter?
PrintWriter является объектом, отвечающим за запись содержания ответа на запрос. JspWriter использует объект PrintWriter для буферизации. Когда буфер заполняется или сбрасывается, JspWriter использует объект PrintWriter для записи содержания в ответ.
Агрегатные функции - функции, которые берут группы значений и сводят их к одиночному значению.
SQL предоставляет несколько агрегатных функций:
COUNT - производит подсчет записей, удовлетворяющих условию запроса; SUM - вычисляет арифметическую сумму всех значений колонки; AVG - вычисляет среднее арифметическое всех значений; MAX - определяет наибольшее из всех выбранных значений; MIN - определяет наименьшее из всех выбранных значений.
SQL предоставляет несколько агрегатных функций:
COUNT - производит подсчет записей, удовлетворяющих условию запроса; SUM - вычисляет арифметическую сумму всех значений колонки; AVG - вычисляет среднее арифметическое всех значений; MAX - определяет наибольшее из всех выбранных значений; MIN - определяет наименьшее из всех выбранных значений.
Наиболее используемые методы класса File:
☕️ boolean createNewFile(): делает попытку создать новый файл;
☕️ boolean delete(): делает попытку удалить каталог или файл;
☕️ boolean mkdir(): делает попытку создать новый каталог;
☕️ boolean renameTo(File dest): делает попытку переименовать файл или каталог;
☕️ boolean exists(): проверяет, существует ли файл или каталог;
☕️ String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;
☕️ String getName(): возвращает краткое имя файла или каталога;
☕️ String getParent(): возвращает имя родительского каталога;
☕️ boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;
☕️ boolean isFile(): возвращает значение true, если по указанному пути находится файл;
☕️ boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;
☕️ long length(): возвращает размер файла в байтах;
☕️ long lastModified(): возвращает время последнего изменения файла или каталога;
☕️ String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;
☕️ File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
☕️ boolean createNewFile(): делает попытку создать новый файл;
☕️ boolean delete(): делает попытку удалить каталог или файл;
☕️ boolean mkdir(): делает попытку создать новый каталог;
☕️ boolean renameTo(File dest): делает попытку переименовать файл или каталог;
☕️ boolean exists(): проверяет, существует ли файл или каталог;
☕️ String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;
☕️ String getName(): возвращает краткое имя файла или каталога;
☕️ String getParent(): возвращает имя родительского каталога;
☕️ boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;
☕️ boolean isFile(): возвращает значение true, если по указанному пути находится файл;
☕️ boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;
☕️ long length(): возвращает размер файла в байтах;
☕️ long lastModified(): возвращает время последнего изменения файла или каталога;
☕️ String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;
☕️ File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются?
Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:
• Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов его конструктора без параметров.
• Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletConfig для этого сервлета и внедряет его через
• Обработка запросов — после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новый поток и вызывает метод service() путем передачи ссылки на объекты ответа и запроса.
• Удаление - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова
Таким образом, сервлет создаётся при первом обращении к нему и живёт на протяжении всего времени работы приложения (в отличии от объектов классов, которые уничтожаются сборщиком мусора после того, как они уже не используются) и весь жизненный цикл сервлета можно описать как последовательность вызова методов:
•
•
•
Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:
• Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов его конструктора без параметров.
• Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletConfig для этого сервлета и внедряет его через
init()
метод. Это и есть место где сервлет класс преобразуется из обычного класса в сервлет.• Обработка запросов — после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новый поток и вызывает метод service() путем передачи ссылки на объекты ответа и запроса.
• Удаление - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова
destroy()
метода.Таким образом, сервлет создаётся при первом обращении к нему и живёт на протяжении всего времени работы приложения (в отличии от объектов классов, которые уничтожаются сборщиком мусора после того, как они уже не используются) и весь жизненный цикл сервлета можно описать как последовательность вызова методов:
•
public void init(ServletConfig config)
– используется контейнером для инициализации сервлета. Вызывается один раз за время жизни сервлета.•
public void service(ServletRequest request, ServletResponse response)
– вызывается для каждого запроса. Метод не может быть вызван раньше выполнения init()
метода.•
public void destroy()
– вызывается для уничтожения сервлета (один раз за время жизни сервлета).Surviving the Whiteboard Interview (2019)
Автор: William Gant
Количество страниц: 136
Whiteboard-этап интервью может показаться большой проблемой для начинающих разработчиков. Опытные разработчики могут взять себя в руки и справиться с возрастающим напряжением, но как быть тем, кто собеседуется на позицию Junior'а? Автор книги использует свои реальные знания и опыт, чтобы помочь вам преодолеть психологические препятствия, связанные с интервью, а также предлагает образцы задач. При наличии достаточной подготовки и уверенности в себе вы сможете пройти whiteboard-собеседование в любой организации. Автор также дает общие советы по прохождению собеседования, например, рассказывает, как произвести наилучшее впечатление на интервьюера.
Скачать книгу
Автор: William Gant
Количество страниц: 136
Whiteboard-этап интервью может показаться большой проблемой для начинающих разработчиков. Опытные разработчики могут взять себя в руки и справиться с возрастающим напряжением, но как быть тем, кто собеседуется на позицию Junior'а? Автор книги использует свои реальные знания и опыт, чтобы помочь вам преодолеть психологические препятствия, связанные с интервью, а также предлагает образцы задач. При наличии достаточной подготовки и уверенности в себе вы сможете пройти whiteboard-собеседование в любой организации. Автор также дает общие советы по прохождению собеседования, например, рассказывает, как произвести наилучшее впечатление на интервьюера.
Скачать книгу
Telegram
Книги для программистов (reserved)
Surviving the Whiteboard Interview (2019)
Автор: William Gant
Автор: William Gant
Forwarded from Java jobs — вакансии для java-разработчиков
Компания: Kotelov https://kotelov.com
Формат работы: Офис (в центре Петербурга) или удаленка
Занятость: Полная
Что мы ждем от тебя:
1. Опыт коммерческой разработки на Java от 3-х лет;
2. Понимание принципов ООП и SOLID;
3. Знание фреймворка spring boot;
4. Опыт в проектировании и написание Rest API;
5. Опыт работы с брокерами очередей (RabbitMQ, Kafka, etc);
Будет плюсом:
1. Знакомство с JAVA EE;
2. Опыт работы с Kafka, умение конфигурировать и оптимизировать;
3. Опыт работы с Kubernetes.
Контакты: @kristina_anfimiadi (Кристина)
Формат работы: Офис (в центре Петербурга) или удаленка
Занятость: Полная
Что мы ждем от тебя:
1. Опыт коммерческой разработки на Java от 3-х лет;
2. Понимание принципов ООП и SOLID;
3. Знание фреймворка spring boot;
4. Опыт в проектировании и написание Rest API;
5. Опыт работы с брокерами очередей (RabbitMQ, Kafka, etc);
Будет плюсом:
1. Знакомство с JAVA EE;
2. Опыт работы с Kafka, умение конфигурировать и оптимизировать;
3. Опыт работы с Kubernetes.
Контакты: @kristina_anfimiadi (Кристина)
Разрабатываем корпоративный софт для автоматизации бизнеса и производства. Создаем удобные мобильные приложения и web-сервисы для ваших клиентов
Разрабатываем цифровые продукты в KOTELOV
KOTELOV — компания Валерия Котелова, где мы разрабатываем цифровой софт с интеграциями и упором на безопасность данных.
Есть ли смысл определять для сервлета конструктор? Каким образом лучше инициализировать данные?
Большого смысла определять для сервлета конструктор нет, т.к. инициализировать данные лучше не в конструкторе, а переопределив метод
Большого смысла определять для сервлета конструктор нет, т.к. инициализировать данные лучше не в конструкторе, а переопределив метод
init()
, в котором имеется возможность доступа к параметрам инициализации сервлета через использование объекта ServletConfig
.#вопросы_с_собеседований
Имеет ли смысл индексировать данные, имеющие небольшое количество возможных значений?
Имеет ли смысл индексировать данные, имеющие небольшое количество возможных значений?
Forwarded from Java jobs — вакансии для java-разработчиков
Senior Java-разработчик, присоединяйся к нашей команде Luxoft и получи не только работу мечты, но и Welcome Bonus, который точно порадует!
До 31 октября 2021 года заполни короткую форму, и мы расскажем о наших проектах и бонусе!
Все подробности и регистрация по ссылке.
До 31 октября 2021 года заполни короткую форму, и мы расскажем о наших проектах и бонусе!
Все подробности и регистрация по ссылке.
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Имеет ли смысл индексировать данные, имеющие небольшое количество возможных значений?
Примерное правило, которым можно руководствоваться при создании индекса - если объем информации (в байтах) НЕ удовлетворяющей условию выборки меньше, чем размер индекса (в байтах) по данному условию выборки, то в общем случае оптимизация приведет к замедлению выборки.
💥 Java Hiring Sprint, 18-29 октября | онлайн
Мы приглашаем Java-разработчиков уровня Middle/Senior/Lead/Architect с опытом работы от 2 лет стать частью команды EPAM Anywhere.
🎯 Пройди техническое интервью и в течение 48 часов получи оффер от EPAM Anywhere, а также бонус до US $5,000 после присоединения к нашей команде!
🔸 Бонус для специалиста уровня Middle – US $2,000
🔸 Бонус для специалиста уровня Senior — US $3,000
🔸 Бонус для специалиста уровня Lead — US $4,000
🔸 Бонус для специалиста уровня Architect — US $5,000.
Сумма бонуса фиксирована независимо от оклада.
Хочешь узнать больше? Заполни регистрационную форму и узнай о платформе EPAM Anywhere и Java Hiring Sprint!
👉 Зарегистрироваться -> https://epa.ms/2aWdI1
Мы приглашаем Java-разработчиков уровня Middle/Senior/Lead/Architect с опытом работы от 2 лет стать частью команды EPAM Anywhere.
🎯 Пройди техническое интервью и в течение 48 часов получи оффер от EPAM Anywhere, а также бонус до US $5,000 после присоединения к нашей команде!
🔸 Бонус для специалиста уровня Middle – US $2,000
🔸 Бонус для специалиста уровня Senior — US $3,000
🔸 Бонус для специалиста уровня Lead — US $4,000
🔸 Бонус для специалиста уровня Architect — US $5,000.
Сумма бонуса фиксирована независимо от оклада.
Хочешь узнать больше? Заполни регистрационную форму и узнай о платформе EPAM Anywhere и Java Hiring Sprint!
👉 Зарегистрироваться -> https://epa.ms/2aWdI1
#вопросы_с_собеседований
Что такое «фреймворк Fork/Join»?
Что такое «фреймворк Fork/Join»?
Forwarded from Книги для программистов
Добрый вечер. Комьюнити Библиотеки программиста подумывает о том, чтобы организовать встречу офлайн в конце октября у нас на локации в мск. Хотим узнать ваше мнение, во что бы вы хотели поиграть в компании из 6-10 человек (единомышленников-программистов)
Anonymous Poll
15%
Монополия
20%
Мафия
9%
Крокодил
5%
Домино
18%
Покер
14%
Кто я такой (стикеры на лбу)
11%
Квизы (участики делятся на команды)
13%
Манчкин
4%
Другое (в комментариях)
41%
Полное прекращение работы Telegram в России