Где разрешена инициализация статических/нестатических полей?
• Статические поля можно инициализировать при объявлении, в статическом или нестатическом блоке инициализации.
• Нестатические поля можно инициализировать при объявлении, в нестатическом блоке инициализации или в конструкторе.
• Статические поля можно инициализировать при объявлении, в статическом или нестатическом блоке инициализации.
• Нестатические поля можно инициализировать при объявлении, в нестатическом блоке инициализации или в конструкторе.
👍18❤4🔥1
Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍22❤4🔥2
Spring Boot 3 brings more than just the powerful ability to build secure web apps on top of a rock-solid database. It delivers new options for testing, deployment, Docker support, and native images for GraalVM, along with ways to squeeze out more efficient usage of existing resources.
This third edition of the bestseller starts off by helping you build a simple app, and then shows you how to secure, test, bundle, and deploy it to production. Next, you'll familiarize yourself with the ability to go "native" and release using GraalVM. As you advance, you'll explore reactive programming and get a taste of scalable web controllers and data operations. The book goes into detail about GraalVM native images and deployment, teaching you how to secure your application using both routes and method-based rules and enabling you to apply the lessons you've learned to any problem.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5🔥1
Расскажите про вложенные классы. В каких случаях они применяются?
Класс называется вложенным (Nested class), если он определен внутри другого класса. Вложенный класс должен создаваться только для того, чтобы обслуживать обрамляющий его класс. Если вложенный класс оказывается полезен в каком-либо ином контексте, он должен стать классом верхнего уровня. Вложенные классы имеют доступ ко всем (в том числе приватным) полям и методам внешнего класса, но не наоборот. Из-за этого разрешения использование вложенных классов приводит к некоторому нарушению инкапсуляции.
Существуют четыре категории вложенных классов:
• Static nested class (Статический вложенный класс);
• Member inner class (Простой внутренний класс);
• Local inner class (Локальный класс);
• Anonymous inner class (Анонимный класс).
Такие категории классов, за исключением первого, также называют внутренними (Inner class). Внутренние классы ассоциируются не с внешним классом, а с экземпляром внешнего.
Каждая из категорий имеет рекомендации по своему применению. Если вложенный класс должен быть виден за пределами одного метода или он слишком длинный для того, чтобы его можно было удобно разместить в границах одного метода и если каждому экземпляру такого класса необходима ссылка на включающий его экземпляр, то используется нестатический внутренний класс. В случае, если ссылка на обрамляющий класс не требуется - лучше сделать такой класс статическим. Если класс необходим только внутри какого-то метода и требуется создавать экземпляры этого класса только в этом методе, то используется локальный класс. А, если к тому же применение класса сводится к использованию лишь в одном месте и уже существует тип, характеризующий этот класс, то рекомендуется делать его анонимным классом.
Класс называется вложенным (Nested class), если он определен внутри другого класса. Вложенный класс должен создаваться только для того, чтобы обслуживать обрамляющий его класс. Если вложенный класс оказывается полезен в каком-либо ином контексте, он должен стать классом верхнего уровня. Вложенные классы имеют доступ ко всем (в том числе приватным) полям и методам внешнего класса, но не наоборот. Из-за этого разрешения использование вложенных классов приводит к некоторому нарушению инкапсуляции.
Существуют четыре категории вложенных классов:
• Static nested class (Статический вложенный класс);
• Member inner class (Простой внутренний класс);
• Local inner class (Локальный класс);
• Anonymous inner class (Анонимный класс).
Такие категории классов, за исключением первого, также называют внутренними (Inner class). Внутренние классы ассоциируются не с внешним классом, а с экземпляром внешнего.
Каждая из категорий имеет рекомендации по своему применению. Если вложенный класс должен быть виден за пределами одного метода или он слишком длинный для того, чтобы его можно было удобно разместить в границах одного метода и если каждому экземпляру такого класса необходима ссылка на включающий его экземпляр, то используется нестатический внутренний класс. В случае, если ссылка на обрамляющий класс не требуется - лучше сделать такой класс статическим. Если класс необходим только внутри какого-то метода и требуется создавать экземпляры этого класса только в этом методе, то используется локальный класс. А, если к тому же применение класса сводится к использованию лишь в одном месте и уже существует тип, характеризующий этот класс, то рекомендуется делать его анонимным классом.
👍39❤6🔥1🎉1
Spring Interview Questions (2023) PDF
Welcome to this book on Spring interview questions! If you are reading this, chances are you are gearing up for a job interview that requires knowledge of the Spring framework. Congratulations on taking this step towards advancing your career! Whether you are just starting your career or are a seasoned professional, having a strong understanding of Spring can help you land your dream job or excel in your current role.
This book aims to provide you with a comprehensive set of interview questions and answers related to Spring, one of the most widely used Java frameworks today. I cover a broad range of topics, including Core Spring concepts, Spring Boot, Spring MVC, Spring Security, and many more. Each question has been carefully crafted to test your understanding of the framework and your ability to apply it in real-world scenarios.
However, it's important to note that Spring is a vast framework with numerous ossibilities, and this book cannot possibly cover everything.
Welcome to this book on Spring interview questions! If you are reading this, chances are you are gearing up for a job interview that requires knowledge of the Spring framework. Congratulations on taking this step towards advancing your career! Whether you are just starting your career or are a seasoned professional, having a strong understanding of Spring can help you land your dream job or excel in your current role.
This book aims to provide you with a comprehensive set of interview questions and answers related to Spring, one of the most widely used Java frameworks today. I cover a broad range of topics, including Core Spring concepts, Spring Boot, Spring MVC, Spring Security, and many more. Each question has been carefully crafted to test your understanding of the framework and your ability to apply it in real-world scenarios.
However, it's important to note that Spring is a vast framework with numerous ossibilities, and this book cannot possibly cover everything.
👍12🔥6
Что такое «статический класс»?
Это вложенный класс, объявленный с использованием ключевого слова
Это вложенный класс, объявленный с использованием ключевого слова
static. К классам верхнего уровня модификатор static неприменим.👍12
Получаем наиболее распространенный элемент в списке
Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
👍27🎉1
ООП в языке Java. Сборник заданий и тематических примеров (2023) PDF
Сборник заданий предназначен для проработки приемов объектно-ориентированного программирования в языке Java. Издание содержит задачи на обработку массивов, реализацию интерфейсов, наследование, использование коллекций, дженериков и лямбда-выражений. В каждой теме приводятся примеры решения типовых задач и варианты индивидуальные заданий. Издание ориентировано в первую очередь на тех, кто не имеет опыта практического программирования на языке Java и адресуется студентам, а также всем, кто хотел бы научиться приемам программирования стандартных задач.
Сборник заданий предназначен для проработки приемов объектно-ориентированного программирования в языке Java. Издание содержит задачи на обработку массивов, реализацию интерфейсов, наследование, использование коллекций, дженериков и лямбда-выражений. В каждой теме приводятся примеры решения типовых задач и варианты индивидуальные заданий. Издание ориентировано в первую очередь на тех, кто не имеет опыта практического программирования на языке Java и адресуется студентам, а также всем, кто хотел бы научиться приемам программирования стандартных задач.
👍20
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
• Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
• Для создания объекта статического вложенного класса объект внешнего класса не требуется.
• Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
• Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
• В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание
• Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
• Для создания объекта статического вложенного класса объект внешнего класса не требуется.
• Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
• Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
• В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание
.this после его имени. Например: Outer.this.👍17🔥2❤1
Набор инструментов для развертывания и обучения моделей глубокого обучения с помощью JVM.
Language: Java
💥Stars: 12980
📝Forks: 4952
https://github.com/deeplearning4j/deeplearning4j
Language: Java
💥Stars: 12980
📝Forks: 4952
https://github.com/deeplearning4j/deeplearning4j
GitHub
GitHub - deeplearning4j/deeplearning4j: Suite of tools for deploying and training deep learning models using the JVM. Highlights…
Suite of tools for deploying and training deep learning models using the JVM. Highlights include model import for keras, tensorflow, and onnx/pytorch, a modular and tiny c++ library for running mat...
👍11🔥2🤩1
Java Persistence API и Hibernate (2017) PDF
Java Persistence – механизм, помогающий обеспечить сохранность данных после завершения программы, что является главной чертой современных приложений. Hibernate – наиболее популярный инструмент Java для работы с базами данных, предоставляющим автоматическое прозрачное объектно-реляционное отображение, что значительно упрощает работу с SQL-базами данных в приложениях Java. Данная книга описывает разработку приложения с использованием Hibernate, связывая воедино сотни отдельных примеров. Вы сразу окунетесь в богатую моделями программирования среду Hibernate, которая основывается на отображениях, запросах, стратегиях выборки, транзакциях, диалогах, кэшировании и многом другом.
Здесь вы найдете хорошо иллюстрированное обсуждение лучших методик проектирования баз данных и методов оптимизации. Во втором издании авторы подробно описывают версию Hibernate 5 совместимый со стандартом Java Persistence 2.1.
Java Persistence – механизм, помогающий обеспечить сохранность данных после завершения программы, что является главной чертой современных приложений. Hibernate – наиболее популярный инструмент Java для работы с базами данных, предоставляющим автоматическое прозрачное объектно-реляционное отображение, что значительно упрощает работу с SQL-базами данных в приложениях Java. Данная книга описывает разработку приложения с использованием Hibernate, связывая воедино сотни отдельных примеров. Вы сразу окунетесь в богатую моделями программирования среду Hibernate, которая основывается на отображениях, запросах, стратегиях выборки, транзакциях, диалогах, кэшировании и многом другом.
Здесь вы найдете хорошо иллюстрированное обсуждение лучших методик проектирования баз данных и методов оптимизации. Во втором издании авторы подробно описывают версию Hibernate 5 совместимый со стандартом Java Persistence 2.1.
❤8👍5🔥5
Что такое «локальный класс»? Каковы его особенности?
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как
private/public/protected или static;• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором
final.👍22🔥1
Practical Spring Cloud Function: Developing Cloud-Native Functions for Multi-Cloud and Hybrid-Cloud Environments (2022) PDF, ePUB
Unlike other resources that target only programming communities, this book targets both programming and business communities. With programming models shifting more towards no-code and low-code, citizen programmers from the business side will welcome this book as a guide for how to design and optimize their information pipeline while lowering costs for infrastructure. Programmers, on the other hand, will welcome this book's business-centric programming view, which will get them a step closer to fulfilling real business requirements.
Practical Spring Cloud Function touches on the themes of portability, scalability, high performance and high availability. Each theme is explored via a real enterprise use case and code. The use cases target industries including energy (oil pipeline sensors), automotive (event-driven connected vehicles), and retail (conversational AI).
Unlike other resources that target only programming communities, this book targets both programming and business communities. With programming models shifting more towards no-code and low-code, citizen programmers from the business side will welcome this book as a guide for how to design and optimize their information pipeline while lowering costs for infrastructure. Programmers, on the other hand, will welcome this book's business-centric programming view, which will get them a step closer to fulfilling real business requirements.
Practical Spring Cloud Function touches on the themes of portability, scalability, high performance and high availability. Each theme is explored via a real enterprise use case and code. The use cases target industries including energy (oil pipeline sensors), automotive (event-driven connected vehicles), and retail (conversational AI).
👍13❤2
Автор перечислит и покажет пять способов создать и запустить потоки (thread) в Java
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как можно создать потоки в Java?
Перечислю и покажу пять способов создать и запустить потоки (thread) в Java
👍17🔥3☃1
Computer Science: Основы программирования на Java, ООП, алгоритмы и структуры данных (2018) PDF
Преподаватели Принстонского университета Роберт Седжвик и Кевин Уэйн создали универсальное введение в Computer Science на языке Java, которое идеально подходит как студентам, так и профессионалам. Вы начнете с основ, освоите современный курс объектно-ориентированного программирования, и перейдете к концепциям более высокого уровня: алгоритмам и структурам данных, теории вычислений и архитектуре компьютеров.
И главное - вся теория рассматривается на практических и ярких примерах: прикладная математика, физика и биология, числовые методы, визуализация данных, синтез звука, обработка графики, финансовое моделирование и многое другое.
Преподаватели Принстонского университета Роберт Седжвик и Кевин Уэйн создали универсальное введение в Computer Science на языке Java, которое идеально подходит как студентам, так и профессионалам. Вы начнете с основ, освоите современный курс объектно-ориентированного программирования, и перейдете к концепциям более высокого уровня: алгоритмам и структурам данных, теории вычислений и архитектуре компьютеров.
И главное - вся теория рассматривается на практических и ярких примерах: прикладная математика, физика и биология, числовые методы, визуализация данных, синтез звука, обработка графики, финансовое моделирование и многое другое.
👍12🔥12
Что такое «анонимные классы»? Где они применяются?
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса
• создания объекта процесса (process object), такого как экземпляры классов
• в статическом методе генерации;
• инициализации открытого статического поля
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса
Comparator;• создания объекта процесса (process object), такого как экземпляры классов
Thread, Runnable и подобных;• в статическом методе генерации;
• инициализации открытого статического поля
final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.👍22🔥2
CDP Public Cloud — это интегрированная платформа аналитики и управления данными, развернутая на облачных сервисах.
Language: Java
💥Stars: 340
📝Forks: 235
https://github.com/hortonworks/cloudbreak
Language: Java
💥Stars: 340
📝Forks: 235
https://github.com/hortonworks/cloudbreak
GitHub
GitHub - hortonworks/cloudbreak: CDP Public Cloud is an integrated analytics and data management platform deployed on cloud services.…
CDP Public Cloud is an integrated analytics and data management platform deployed on cloud services. It offers broad data analytics and artificial intelligence functionality along with secure user ...
👍6🔥2
Java для всех (2020) PDF
Java — один из самых популярных и востребованных языков в мире. Алексей Васильев — автор многочисленных компьютерных бестселлеров — познакомит вас со всем необходимым для эффективной работы с этим языком. Вы изучите базовые типы, управляющие инструкции, особенности описания классов и объектов в Java, создание интерфейсов, лямбда-выражения, обобщенные классы. Каждая глава содержит примеры кода, которые в свою очередь снабжены как построчными пояснениями, так и подробным разбором примера программы. Примеры, используемые в этой книге, пригодятся вам в дальнейшей работе с языком Java. Программирование — это нестрашно! Даже если у вас нет никакого опыта, вы с легкостью освоите Java, воспользовавшись уникальной методикой Алексея Васильева, и перейдете на профессиональный уровень.
Java — один из самых популярных и востребованных языков в мире. Алексей Васильев — автор многочисленных компьютерных бестселлеров — познакомит вас со всем необходимым для эффективной работы с этим языком. Вы изучите базовые типы, управляющие инструкции, особенности описания классов и объектов в Java, создание интерфейсов, лямбда-выражения, обобщенные классы. Каждая глава содержит примеры кода, которые в свою очередь снабжены как построчными пояснениями, так и подробным разбором примера программы. Примеры, используемые в этой книге, пригодятся вам в дальнейшей работе с языком Java. Программирование — это нестрашно! Даже если у вас нет никакого опыта, вы с легкостью освоите Java, воспользовавшись уникальной методикой Алексея Васильева, и перейдете на профессиональный уровень.
👍19❤5
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Outer.this.field.👍19
Learning Recursion (2023) True PDF
In this book, Alvin Alexander brings his well-known, simple teaching style to the topic of recursion, also known as recursive programming. In the book you’ll learn how to write functions that call themselves. He covers the basics of recursion, and then covers the important topic of tail recursion.
The source code examples are written with the Scala 3 programming language, but he doesn’t use any special Scala techniques, so the code should be readable if you know other languages like C, C#, Java, Kotlin, Python, etc.
You’re about to jump into a series of lessons on recursive programming. Please note that some of these lessons may be overkill for some people. Basically what I do in the following chapters is introduce recursion in several different ways — for example, using code, using a conversation between two developers, and using images — so if one of those ways works for you, great!
In this book, Alvin Alexander brings his well-known, simple teaching style to the topic of recursion, also known as recursive programming. In the book you’ll learn how to write functions that call themselves. He covers the basics of recursion, and then covers the important topic of tail recursion.
The source code examples are written with the Scala 3 programming language, but he doesn’t use any special Scala techniques, so the code should be readable if you know other languages like C, C#, Java, Kotlin, Python, etc.
You’re about to jump into a series of lessons on recursive programming. Please note that some of these lessons may be overkill for some people. Basically what I do in the following chapters is introduce recursion in several different ways — for example, using code, using a conversation between two developers, and using images — so if one of those ways works for you, great!
👍8❤5
Как работает сборщик мусора?
Механизм сборки мусора - это процесс освобождения места в куче, для возможности добавления новых объектов.
Объекты создаются посредством оператора
Виртуальная машина
Память освобождается сборщиком мусора по его собственному «усмотрению». Программа может успешно завершить работу, не исчерпав ресурсов свободной памяти или даже не приблизившись к этой черте и поэтому ей так и не потребуются «услуги» сборщика мусора.
Мусор собирается системой автоматически, без вмешательства пользователя или программиста, но это не значит, что этот процесс не требует внимания вовсе. Необходимость создания и удаления большого количества объектов существенным образом сказывается на производительности приложений и, если быстродействие программы является важным фактором, следует тщательно обдумывать решения, связанные с созданием объектов, — это, в свою очередь, уменьшит и объем мусора, подлежащего утилизации.
Механизм сборки мусора - это процесс освобождения места в куче, для возможности добавления новых объектов.
Объекты создаются посредством оператора
new, тем самым присваивая объекту ссылку. Для окончания работы с объектом достаточно просто перестать на него ссылаться, например, присвоив переменной ссылку на другой объект или значение null; прекратить выполнение метода, чтобы его локальные переменные завершили свое существование естественным образом. Объекты, ссылки на которые отсутствуют, принято называть мусором (garbage), который будет удален.Виртуальная машина
Java, применяя механизм сборки мусора, гарантирует, что любой объект, обладающий ссылками, остается в памяти — все объекты, которые недостижимы из исполняемого кода, ввиду отсутствия ссылок на них, удаляются с высвобождением отведенной для них памяти. Точнее говоря, объект не попадает в сферу действия процесса сборки мусора, если он достижим посредством цепочки ссылок, начиная с корневой (GC Root) ссылки, т.е. ссылки, непосредственно существующей в выполняемом коде.Память освобождается сборщиком мусора по его собственному «усмотрению». Программа может успешно завершить работу, не исчерпав ресурсов свободной памяти или даже не приблизившись к этой черте и поэтому ей так и не потребуются «услуги» сборщика мусора.
Мусор собирается системой автоматически, без вмешательства пользователя или программиста, но это не значит, что этот процесс не требует внимания вовсе. Необходимость создания и удаления большого количества объектов существенным образом сказывается на производительности приложений и, если быстродействие программы является важным фактором, следует тщательно обдумывать решения, связанные с созданием объектов, — это, в свою очередь, уменьшит и объем мусора, подлежащего утилизации.
👍38❤3