Learning Java: An Introduction to Real-World Programming with Java, 6th Edition (Final) (2023) True ePUB
Ideal for working programmers new to Java, this best-selling book guides you through the language features and APIs of Java 21. Through fun, compelling, and realistic examples, authors Marc Loy, Patrick Niemeyer, and Dan Leuck introduce you to Java's fundamentals, including its class libraries, programming techniques, and idioms, with an eye toward building real applications.
This updated sixth edition expands the content to continue covering lambdas and streams, and shows you how to use a functional paradigm in Java. You'll learn about the latest Java features introduced since the book's fifth edition, from JDK 15 through 21. You'll also take a deep dive into virtual threads (introduced as Project Loom in Java 19).
Ideal for working programmers new to Java, this best-selling book guides you through the language features and APIs of Java 21. Through fun, compelling, and realistic examples, authors Marc Loy, Patrick Niemeyer, and Dan Leuck introduce you to Java's fundamentals, including its class libraries, programming techniques, and idioms, with an eye toward building real applications.
This updated sixth edition expands the content to continue covering lambdas and streams, and shows you how to use a functional paradigm in Java. You'll learn about the latest Java features introduced since the book's fifth edition, from JDK 15 through 21. You'll also take a deep dive into virtual threads (introduced as Project Loom in Java 19).
👍11🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Яндекс запустил канал ТЕХНО, в котором простым языком рассказывает о том, как устроен мир технологий. Внутри всё то, что мы так любим: нейросети, роботы, чат-боты, голосовые помощники и многое другое.
Из любопытного:
— Что такое промпт и как его правильно формулировать
— Почему на первых клавиатурах не было 0 и 1
— Чем занимается преподаватель для нейросети
— И наконец, займут ли ваше рабочее место роботы и ИИ
Подписывайтесь тут 👉 https://t.me/techno_yandex!
Из любопытного:
— Что такое промпт и как его правильно формулировать
— Почему на первых клавиатурах не было 0 и 1
— Чем занимается преподаватель для нейросети
— И наконец, займут ли ваше рабочее место роботы и ИИ
Подписывайтесь тут 👉 https://t.me/techno_yandex!
👍7❤2
Программирование на Kotlin для Android (2023) PDF, djvu
Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров, изучаются основы параллельного программирования. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.
Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров, изучаются основы параллельного программирования. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.
👍10🔥5
Как работает HashMap при попытке сохранить в него два элемента по ключам с одинаковым hashCode(), но для которых equals() == false?
По значению
По значению
hashCode()
вычисляется индекс ячейки массива, в список которой этот элемент будет добавлен. Перед добавлением осуществляется проверка на наличие элементов в этой ячейке. Если элементы с таким hashCode()
уже присутствует, но их equals()
методы не равны, то элемент будет добавлен в конец списка.👍16🔥6
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
👍14
Mastering Java: 100+ Solved and Commented Exercises to Accelerate your Learning (2023) PDF
Exercise your programming logic skills in Java with the book "Mastering Java: 100+ Solved and Commented Exercises to Accelerate Your Learning".
In this book, over 100 programming logic exercises are presented, all solved and commented. In many exercises, multiple solutions are provided so that you can compare different ways of solving a programming problem.
Who is this book for?
This book is aimed at people who are starting to program and need to develop their programming logic skills using the Java language.
Exercise your programming logic skills in Java with the book "Mastering Java: 100+ Solved and Commented Exercises to Accelerate Your Learning".
In this book, over 100 programming logic exercises are presented, all solved and commented. In many exercises, multiple solutions are provided so that you can compare different ways of solving a programming problem.
Who is this book for?
This book is aimed at people who are starting to program and need to develop their programming logic skills using the Java language.
👍9🔥1
Если вам не чужды такие понятия как NFS-кластер, PaceMaker и SELinux — этот туториал для вас
Девопсы из РТЛабс (разработчик Госуслуг) собрали рецепт отказоустойчивого файлового хранилища. Реализовывали всё это с помощью PaceMaker — с общим диском, поддержкой кворума, демона SDB и протокола NFS
Статья сложная, но подробная — специально для тех, кто любит технические детали
Остались вопросы? Задавайте их в комментариях к материалу
#промо Информация предоставлена АО "РТ Лабс"
Девопсы из РТЛабс (разработчик Госуслуг) собрали рецепт отказоустойчивого файлового хранилища. Реализовывали всё это с помощью PaceMaker — с общим диском, поддержкой кворума, демона SDB и протокола NFS
Статья сложная, но подробная — специально для тех, кто любит технические детали
Остались вопросы? Задавайте их в комментариях к материалу
#промо Информация предоставлена АО "РТ Лабс"
👍7🔥4❤2
Почему нельзя использовать byte[] в качестве ключа в HashMap?
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Object.hashCode()
на основании адреса массива). Так же у массивов не переопределен equals
и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.👍19🔥3❤2
В этом ролике автор рассказывает о точках входа аутентификации
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Точки входа аутентификации - Spring Security в деталях
В этом ролике я рассказываю о точках входа аутентификации
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes
Донаты в Boosty: ht…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes
Донаты в Boosty: ht…
👍8
Какова роль equals() и hashCode() в HashMap?
hashCode
позволяет определить корзину для поиска элемента, а equals
используется для сравнения ключей элементов в списке корзины и искомого ключа.👍24❤2🔥2
В этом ролике автор рассказывает об источниках информации о пользователях, способе реализации такого источника при помощи JDBC и его использовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Источники информации о пользователях - Spring Security в деталях
В этом ролике я рассказываю об источниках информации о пользователях, способе реализации такого источника при помощи JDBC и его использовании.
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/…
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram:https://t.me/…
❤5👍4🔥3
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
Telegraph
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя…
❤10👍10🔥9😁1
Асинхронность в Java
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.
Мне — старшему инженеру-программисту — стало любопытно, как возможно делать несколько вещей одновременно, и задаюсь этим вопросом наверняка не только я. Каждый стремится быть более продуктивным и хочет того же от своих приложений.
Переключив внимание на асинхронность в Java, мы откроем для себя множество способов ее реализации и различные варианты использования.
Читать статью
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.
Мне — старшему инженеру-программисту — стало любопытно, как возможно делать несколько вещей одновременно, и задаюсь этим вопросом наверняка не только я. Каждый стремится быть более продуктивным и хочет того же от своих приложений.
Переключив внимание на асинхронность в Java, мы откроем для себя множество способов ее реализации и различные варианты использования.
Читать статью
Telegraph
Асинхронность в Java
Асинхронное программирование — обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения. Мне — старшему инженеру-программисту — стало любопытно, как возможно делать несколько…
👍10❤7☃1
Чем больший объем данных используют на проекте, чем выше нагрузка на систему – тем более продвинутый SQL нужен разработчикам. Изучить SQL и свободно использовать его в работе поможет курс Практикума.
После 3 месяцев курса разработчики смогут:
— уверенно пользоваться простыми селектами, джоинами, индексами и оконными функциями;
— отладить запрос, который сгенерирован через ORM;
— составить сложные запросы на нативном SQL;
— применить продвинутый SQL, чтобы писать код для высоконагруженных систем,
— чувствовать себя спокойно на собеседованиях.
Записывайтесь и растите в карьере.
После 3 месяцев курса разработчики смогут:
— уверенно пользоваться простыми селектами, джоинами, индексами и оконными функциями;
— отладить запрос, который сгенерирован через ORM;
— составить сложные запросы на нативном SQL;
— применить продвинутый SQL, чтобы писать код для высоконагруженных систем,
— чувствовать себя спокойно на собеседованиях.
Записывайтесь и растите в карьере.
❤8👍6☃1
Разработка обслуживаемых программ на языке Java (2017) PDF
Вы когда-нибудь ощущали разочарование, работая с чужим кодом? Сегодня трудности сопровождения исходного кода представляют важную проблему разработки программного обеспечения, приводящую к дорогостоящим срывам сроков и ошибкам. Подключайтесь к ее решению. Данное практическое руководство познакомит вас с 10 простыми рекомендациями, помогающими писать программное обеспечение, которое легко поддерживать и адаптировать. Эти тезисы сформулированы на основании анализа сотен реальных систем.
Написанная консультантами компании Software Improvement Group (SIG), книга содержит ясные и краткие советы по применению рекомендаций на практике. Примеры для этого издания написаны на языке Java, но существует аналогичная книга с примерами на языке C#.
Вы когда-нибудь ощущали разочарование, работая с чужим кодом? Сегодня трудности сопровождения исходного кода представляют важную проблему разработки программного обеспечения, приводящую к дорогостоящим срывам сроков и ошибкам. Подключайтесь к ее решению. Данное практическое руководство познакомит вас с 10 простыми рекомендациями, помогающими писать программное обеспечение, которое легко поддерживать и адаптировать. Эти тезисы сформулированы на основании анализа сотен реальных систем.
Написанная консультантами компании Software Improvement Group (SIG), книга содержит ясные и краткие советы по применению рекомендаций на практике. Примеры для этого издания написаны на языке Java, но существует аналогичная книга с примерами на языке C#.
👍10❤8🔥2
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен
• любой ключ отличный от
• ключ равен
null: 1
- выполняется единственный метод getForNullKey()
.• любой ключ отличный от
null: 4
- вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.👍21❤6🎉3🔥1
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
❤7👍5🔥2
Примитивные типы данных в Java
Java как язык программирования является одновременно статически-типизированными и строго-типизированным.
Статическая типизация означает, что тип данных каждой переменной и каждого выражения должен быть объявлен до момента их использования.
Строгая типизация выражается тем, что каждый примитивный тип данных обладает определенным лимитом значения, который переменная может хранить или выражение может произвести.
Все это говорит, что тип данных переменной или выражения должен быть известен на момент компиляции программы.
Читать статью
Java как язык программирования является одновременно статически-типизированными и строго-типизированным.
Статическая типизация означает, что тип данных каждой переменной и каждого выражения должен быть объявлен до момента их использования.
Строгая типизация выражается тем, что каждый примитивный тип данных обладает определенным лимитом значения, который переменная может хранить или выражение может произвести.
Все это говорит, что тип данных переменной или выражения должен быть известен на момент компиляции программы.
Читать статью
Telegraph
Примитивные типы данных в Java
1. Введение Java как язык программирования является одновременно статически-типизированными и строго-типизированным. Статическая типизация означает, что тип данных каждой переменной и каждого выражения должен быть объявлен до момента их использования. Строгая…
👍17❤8🔥3
Сколько создается новых объектов, когда вы добавляете новый элемент в HashMap?
Один новый объект статического вложенного класса
Один новый объект статического вложенного класса
Entry<K,V>
.👍19