java from epam блинов 2020
Как писать корректный и прозрачный Java-код для людей

Один из составителей Игорь Блинов, доцент кафедры веб-технологий и компьютерного моделирования ММФ БГУ и тренер RD EPAM, рассказал о новом издании и об особенностях Java-программирования.
– Новая книга включает курс Core Java, курс по избранным enterprise технологиям, курс по design patterns, а также в приложениях даны краткие описания необходимых библиотек и технологий, которых нет на курсах EPAM, но необходимых при дальнейшей работе и обучении в нашей лаборатории.
В главах, посвященных дизайн паттернам, предпринята попытка приблизить примеры к современным тенденциям архитектурного построения приложений. С другой стороны, удачна эта попытка или неудачна, судить читателям, но овладение этими знаниями расширяет объемное видение кода в любом случае. Программист лучше представляет связи и взаимодействия. В то же время – это не панацея, и иногда дизайн паттерны бывают просто вредны.
В учебнике все примеры рабочие, их можно «запустить» и проверить.
Кстати говоря, большинство существующих книг по Java нельзя отнести к учебникам – это скорее справочники, в которых можно узнать функциональность конкретного класса или метода. Однако, как правило, упускается из вида непосредственно процесс построения взаимодействий классов и слоев приложения.
В моих книгах новый материал появляется только тогда, когда становится понятным, как этому научить студентов.
В частности, в издании традиционно есть задания к каждой главе, есть тестовые вопросы с ответами и указаниями. Даны примеры промежуточных контрольных работ, от которых уже «пострадали» на экзаменах и зачетах студенты мехмата БГУ.
При подготовке примеров для книг я ориентируюсь на слушателей: если читаю лекцию и вижу, что они в каком-то месте перестают понимать, перерабатываю код приложений.
простые примеры для учебника писать сложнее, чем обычный работающий код
Как ни странно, простые примеры для учебника писать сложнее, чем обычный работающий код. Ведь компьютер «съест» все, а вот код для людей должен быть простым и понятным. Вот напишет кто-то где-то какой-то код, у него все вроде заработало, и он делится своей безмерной радостью на форумах. На самом деле в интернете находится 90 процентов профнепригодного кода. Поэтому хочу всех предостеречь от использования первого попавшегося (загугленного) решения своей проблемы. Рекомендую обратить внимание на такой сайт: http://java2s.com. Он хорош с точки зрения базовых демонстрационных примеров, не погружающихся в суть, но демонстрирующих формальную функциональность. Примеры разложены по темам. Программировать на них не научишься, но как вспомогательное средство – вполне адекватно.
в интернете находится 90 процентов профнепригодного кода
Наша основная задача в процессе обучения – привить культуру программирования: когда код, написанный одним человеком, легко понимает другой. Некоторые проекты длятся годами, и поэтому важно, чтобы новичок мог быстро включиться в процесс, а для этого весь код должен быть написан просто и единообразно, что на практике встречается достаточно редко, к сожалению.
Существуют проекты, которые созданы и работают еще с 70-х годов прошлого века. Поскольку новый код стоит огромных денег, компании заинтересованы не покупать его, а модернизировать ранее разработанный. Поэтому те мегабайты кода в настоящее время адаптируются под современные требования, расширяются современными интерфейсами, технологиями. Для этого программистам приходится разбираться с кодом, появившимся десятки лет назад, интегрировать новое в старое, не забывая о качестве и эффективности.
Это значит, что еще через какое-то время кто-то будет актуализировать код, созданный нынешними программистами. Поэтому программист должен разрабатывать код, зная, что его будет читать «маньяк-убийца со швейцарским штык-ножом, знающий его точный домашний адрес».
В качестве отвратительного примера можно привести веб-приложение, состоящее из одного сервлета, которое работает и, возможно, достаточно стабильно. Вот только разобраться с этим будет практически невозможно! В качестве ненавязчивого чтения на эту тему рекомендую почитать «Горький вкус Java» Брюса Тейта.

Надо сказать, что язык Java задумывался как очень простой (изначально было всего около 200 классов), а к седьмой версии их стало уже около 7 000! И чтобы писать на Java грамотно, нужно знать достаточно много, но все знать, пожалуй, нереально. С выходом Java 8 в будущем году и внедрением множественного наследования и лямбда-выражений язык станет еще более непростым. Это все ралли с C#. А языку Java не хватает осмысленной реализации аспектно-ориентированного подхода, что упростило бы разработку. Spring не в счет. У IBM есть интересное решение: AspectJ, но оно пока не получило широкого распространения, так как потребовало бы введения целого ряда новых ключевых слов, и некоторые другие нюансы мешают. Да и базовые типы данных в конце концов следовало бы просто выбросить, так как их существование нарушает принципы ООП.
Наша основная задача в процессе обучения – привить культуру программирования: когда код, написанный одним человеком, легко понимает другой.
Это все лирика и фантазии, но изучение программирования становится делом достаточно сложным, и без преподавателя обойтись реально проблематично. «Минус ко всему», когда человек сам изучает Java при всей ее широте и многообразии, он ведь не знает, что именно понадобится его работодателю. Зачастую оказывается так, что какие-то знания оказываются неактуальными, а каких-то, напротив, не хватает.
В нашей компании мы стремимся изучать новые технологии раньше, чем они появятся в производстве: этот процесс, как правило, запаздывает и дает время на осознание вновь объявившегося «чуда».
Рекомендую регулярно читать форумы производителей и сообществ разработчиков, следить за тенденциями и «модой». Программист – специальность, требующая постоянного развития. В свете появления различных мобильных платформ с тачскриновыми экранами большая часть программного обеспечения (профессионального, офисного, таймкиллинга и прочего) будет дублироваться на эти платформы.
Информатизация общества и самой жизни позволяет не без оснований предположить, что потребность в программистах будет возрастать. Поэтому у молодых людей есть реальный шанс приступить к созданию своего будущего уже сейчас. Учитесь сами, а если что, приходите, поможем! Не с пустыми руками (головой), а хотя бы с проработанным Брюсом Эккелем, даже не целиком, а хотя бы с его половиной.
Через некоторое время PDF-версии отдельных глав, а впоследствии и вся книга появятся по адресу http://book.epam.by
Хотите сообщить важную новость? Пишите в Телеграм-бот.
А также подписывайтесь на наш Телеграм-канал.
Поиск материала «Java, промышленное программирование, Блинов И.Н., Романчик B.C., 2007» для чтения, скачивания и покупки
Найденные материалы, документы, бумажные и электронные книги и файлы:
Search results:
Канцтовары. Письменные принадлежности. Бумажные канцтовары. Ранцы, рюкзаки, сумки. Канцелярские мелочи. И многое другое.
Методы программирования » (2013, PDF) Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE, JEE и других.
Блинов И.Н., Романчик В.С.
Описание. Следующая книга предназначена для тех, кто уже знаком с основами Java и объектно-ориентированным программированием и хотел бы поднять свои знания на новый уровень. Авторы рассказывают о применении библиотек классов языка, создании сетевых и многопоточных приложений, взаимодействии с XML, UML, SQL и Ant, а также о таких технологиях, как Log4J, JUnit, JPA и Hibernate.
by Блинов И.Н. & Романчик В.С.
Название: Java from EPAMАвтор: Блинов И.Н., Романчик В.СИздательство: Минск: Четыре четвертиГод: 2020Формат: pdfСтраниц: 561Размер: 12 mbЯзык: РусскийКнига разделена на две логические части.
Следующая книга предназначена для тех, кто уже знаком с основами Java и объектно-ориентированным программированием и хотел бы поднять свои знания на новый уровень. Авторы рассказывают о применении библиотек классов языка, создании сетевых и многопоточных приложений, взаимодействии с XML, UML, SQL и Ant, а также о таких технологиях, как Log4J, JUnit, JPA и Hibernate.
Патрик Нимейер, Робин Никсон, Роберт Мартин. Пособие предназначено для программистов, начинающих и продолжающих изучение технологий Java SE, JEE и других. В его первой части рассматриваются основы языка Java и концепции объектно-ориентированного программирования. Во второй части изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, сетевые и многопоточные приложения, а также взаимодействие с ХМL.
На данной странице Вы можете найти лучшие результаты поиска для чтения, скачивания и покупки на интернет сайтах материалов, документов, бумажных и электронных книг и файлов похожих на материал «Java, промышленное программирование, Блинов И.Н., Романчик B.C., 2007»
Для формирования результатов поиска документов использован сервис Яндекс.XML.
Нашлось 16 млн ответов. Показаны первые 32 результата(ов).
Мы ищем талантливых Java программистов с опытом в микросервисах для одного из лидеров банковской отрасли в России
Только удаленная работа. Только современный стэк
Долгосрочный проект
40+ позиций для Java разработчиков
Вместе с командой клиента, мы постепенно обновляем устаревшие решения и разрабатываем новый функционал
Удаленная работа
Мы обеспечиваем комфортное сотрудничество в удаленном формате
Современный стэк технологий
Микросервисы
Java 8-11, Kotlin
Tomcat, Jetty, Netty, Spring
PostgreSQL, Oracle, Redis, Kafka
Docker, Kubernetes (OpenShift)
JavaScript (ES6+)
React/Redux
Как мы рассчитываем доход удаленного специалиста в EPAM Anywhere
Начисляем базовое вознаграждение
Считаем ваш общий заработок за месяц
Месячный заработок = Почасовая ставка * количество отработанных часов
Ваш ежемесячный доход равен сумме базового вознаграждения и месячного заработка
Что нужно, чтобы стать одним из наших разработчиков?
Обязанности:
Требования:
Будет преимуществом:
О проекте
Вместе с командой клиента и EPAM Anywhere, вы будете принимать участие в разработке дистанционного банковского обслуживания для клиентов-физлиц. Задачи касаются автоматизации ежедневных операций, с которыми сталкиваются клиенты банка: платежи, переводы, кредиты, вклады, инвестиции, счета, банковские карты
В командах 10-15 человек, вы также будете участвовать во всех этапах создания функционала – от пользовательского интерфейса в виде сайта и мобильного приложения до систем на стороне банка, управляющих бизнес-процессами и интеграциями со сторонними приложениями
Преимущества участия в программе EPAM Anywhere
Социальный пакет
Мы ценим и поддерживаем наших удаленных сотрудников так же, как и тех, кто работает с нами в офисе. Получайте оплачиваемый отпуск 28 календарных дней, оплачиваемые больничные, декрет и медицинское страхование.
Официальное оформление
Правовой статус удаленного работника приравнивается к статусу работника в штате. Мы официально оформляем каждого сотрудника и предоставляем все социальные гарантии, которые идут вместе с оформлением.
Полная занятость удаленно
Удаленная работа не значит фриланс.
Вы будете работать удаленно, а мы обеспечим вас полной загрузкой. Вам не придется искать дополнительную занятость, чтобы обеспечить желаемый уровень дохода.
Обучение и карьерный рост
Мы предоставляем ментора, который поможет вам проработать план карьерного развития и воплотить его в жизнь! Кроме того, обучайтесь с внутренними курсами EPAM, LinkedIn Learning и посещайте наши ивенты.
Чтобы получить консультацию от рекрутера, пожалуйста, заполните форму:
Спасибо за заполненную форму! Наш консультант по рекрутингу свяжется с вами в ближайшее время. Тем временем вы можете посмотреть наши вакансии.
Упс, что-то пошло не так. Пожалуйста, попробуйте еще раз. Приносим извинения за временные неудобства.
О EPAM
EPAM – признанный лидер в сфере информационных технологий и разработки программного обеспечения. EPAM входит в 25 самых быстроразвивающихся технологических компаний наряду с такими компаниями, как Alphabet, Fortinet и Facebook. С 1993 года EPAM трансформирует ИТ-индустрию благодаря своим надежным и масштабируемым решениям.
$2.29 миллиарда выручка 2019 года
Пройти курс EPAM «INTRODUCTION TO JAVA ONLINE»
Приобретение навыков Java
Критерий завершения
выполнение всех заданий
1. Basics_of_software_code_development
Найдите значение функции: z = ( (a – 3 ) * b / 2) + c.
Дано действительное число R вида nnn.ddd (три цифровых разряда в дробной и целой частях). Поменять местами дробную и целую части числа и выв
Дано натуральное число Т, которое представляет длительность прошедшего времени в секундах. Вывести данное значение длительности в часах, ми
Для данной области составить линейную программу, которая печатает true, если точка с координатами (х, у) принадлежит закрашенной области, и
Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник, и если да, то будет ли он прямоугольным.
Даны три точки А(х1,у1), В(х2,у2) и С(х3,у3). Определить, будут ли они расположены на одной прямой.
Заданы размеры А, В прямоугольного отверстия и размеры х, у, z кирпича. Определить, пройдет ли кирпич через отверстие.
. Вычислить значение функции:
Напишите программу, где пользователь вводит любое целое положительное число. А программа суммирует все числа от 1 до введенного пользовател
Вычислить значения функции на отрезке [а,b] c шагом h:
Найти сумму квадратов первых ста чисел
Составить программу нахождения произведения квадратов первых двухсот чисел.
Даны числовой ряд и некоторое число е. Найти сумму тех членов ряда, модуль которых больше или равен заданному е. Общий член ряда имеет вид:
Вывести на экран соответствий между символами и их численными обозначениями в памяти компьютера.
Для каждого натурального числа в промежутке от m до n вывести все делители, кроме единицы и самого числа. m и n вводятся с клавиатуры.
Даны два числа. Определить цифры, входящие в запись как первого так и второго числа.
1. Теория Basics_of_software_code_development
Теория Algorithmization
1. Дайте определение массиву. Как осуществляется индексация элементов массива. Как необходимо обращаться к i-му элементу массива? 2
2. Приведите способы объявления и инициализации одномерных и двумерных массивов примитивных и ссылочных типов. Укажите разницу, между массив
3. Объясните, что значит клонирование массива, как в Java можно клонировать массив, в чем состоит разница в клонировании массивов примитивны
4. Объясните, что представляет собой двумерных массив в Java, что такое “рваный массив”. Как узнать количество строк и количество элементов
5. Объясните ситуации, когда в java-коде могут возникнуть следующие исключительные ситуации java.lang.ArrayIndexOutOfBoundsException и java.
6. Объясните, зачем при кодировании разделять решаемую задачу на методы. Поясните, как вы понимаете выражение: “Один метод не должен выполня
7. Объясните, как в Java передаются параметры в методы, в чем особенность передачи в метод значения примитивного типа, а в чем ссылочного.
8. Объясните, как в метод передать массив. И как массив вернуть из метода. Можно ли в методе изменить размер переданного массива.
9. Поясните, что означает выражение ‘вернуть значение из метода’. Как можно вернуть значение из метода. Есть ли разница при возврате значени
10. Перечислите известные вам алгоритмы сортировки значений, приведите код, реализующий это алгоритмы.
2. Algorithmization
Одномерные массивы 1. В массив A [N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.
3. Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
6. Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами
9. В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наиме
10. Дан целочисленный массив с количеством элементов п. Сжать массив, выбросив из него каждый второй элемент (освободившиеся элементы заполн
Задачи. Массивы массивов 1. Дана матрица. Вывести на экран все нечетные столбцы, у которых первый элемент больше последнего.
2. Дана квадратная матрица. Вывести на экран элементы, стоящие на диагонали.
3. Дана матрица. Вывести k-ю строку и p-й столбец матрицы.
7. Сформировать квадратную матрицу порядка N по правилу: и подсчитать количество положительных элементов в ней
8. В числовой матрице поменять местами два столбца любых столбца, т. е. все элементы одного столбца поставить на соответствующие им позиции
9. Задана матрица неотрицательных чисел. Посчитать сумму элементов в каждом столбце. Определить, какой столбец содержит максимальную сумму.
10. Найти положительные элементы главной диагонали квадратной матрицы.
11. Матрицу 10×20 заполнить случайными числами от 0 до 15. Вывести на экран саму матрицу и номера строк, в которых число 5 встречается три и
12. Отсортировать строки матрицы по возрастанию и убыванию значений элементов.
13. Отсотрировать стобцы матрицы по возрастанию и убыванию значений эементов.
14. Сформировать случайную матрицу m x n, состоящую из нулей и единиц, причем в каждом столбце число единиц равно номеру столбца.
15. Найдите наибольший элемент матрицы и заменить все нечетные элементы на него.
Одномерные массивы. Сортировки 1. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в
6. Сортировка Шелла. Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим образом: сравнивают
Декомпозиция с использованием методов (подпрограммы) 1. Написать метод(методы) для нахождения наибольшего общего делителя и наименьшего
2. Написать метод(методы) для нахождения наибольшего общего делителя четырех натуральных чисел.
3. Вычислить площадь правильного шестиугольника со стороной а, используя метод вычисления площади треугольника.
4. На плоскости заданы своими координатами n точек. Написать метод(методы), определяющие, между какими из пар точек самое большое расстояние
5. Составить программу, которая в массиве A[N] находит второе по величине число (вывести на печать число, которое меньше максимального элеме
6. Написать метод(методы), проверяющий, являются ли данные три числа взаимно простыми.
7. Написать метод(методы) для вычисления суммы факториалов всех нечетных чисел от 1 до 9.
8. Задан массив D. Определить следующие суммы: D[l] + D[2] + D[3]; D[3] + D[4] + D[5]; D[4] +D[5] +D[6]. Пояснение. Составить метод(методы)
9. Даны числа X, Y, Z, Т — длины сторон четырехугольника. Написать метод(методы) вычисления его площади, если угол между сторонами длиной X
10. Дано натуральное число N. Написать метод(методы) для формирования массива, элементами которого являются цифры числа N.
11. Написать метод(методы), определяющий, в каком из данных двух чисел больше цифр.
12. Даны натуральные числа К и N. Написать метод(методы) формирования массива А, элементами которого являются числа, сумма цифр которых равн
13. Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, 41 и 43). Найти и напечатать все пары «близ
14. Натуральное число, в записи которого n цифр, называется числом Армстронга, если сумма его цифр, возведенная в степень n, равна самому чи
15. Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789). Для решен
17. Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т.д. Сколько таких действий надо произвести, чтобы п
3. Strings_and_basics_of_text_processing
Работа со строкой как с массивом символов 1. Дан массив названий переменных в camelCase. Преобразовать названия в snake_case
2. Замените в строке все вхождения ‘word’ на ‘letter’.
3. В строке найти количество цифр
4. В строке найти количество чисел.
5. Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы. Крайние пробелы в строке удалить
Работа со строкой как с объектом типа String или StringBuilder 1. Дан текст (строка). Найдите наибольшее количество подряд идущих пробелов в
2. В строке вставить после каждого символа ‘a’ символ ‘b’.
3. Проверить, является ли заданное слово палиндромом
4. С помощью функции копирования и операции конкатенации составить из частей слова “информатика” слово “торт”.
5. Подсчитать, сколько раз среди символов заданной строки встречается буква “а”.
6. Из заданной строки получить новую, повторив каждый символ дважды
7. Вводится строка. Требуется удалить из нее повторяющиеся символы и все пробелы. Например, если было введено «abc cde def», то до
8. Вводится строка слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран. Случай, когда самых длинных слов может быт
9. Посчитать количество строчных (маленьких) и прописных (больших) букв в введенной строке. Учитывать только английские буквы.
10. Строка X состоит из нескольких предложений, каждое из которых кончается точкой, восклицательным или вопросительным знаком. Определить ко
Работа с регулярными выражениями (Pattern, Matcher) 1. Cоздать приложение, разбирающее текст (текст хранится в строке) и позволяющее выполня
2. Дана строка, содержащая следующий текст (xml-документ):
Теория Strings_and_basics_of_text_processing
Strings 1. Как создать объект класса String, какие конструкторы класса String вы знаете? Что такое строковый литерал? Объясните, что значит
2. Можно ли изменить состояние объекта типа String? Что происходит при попытке изменения состояния объекта типа String? Можно ли наследовать
3. Объясните, что такое кодировка? Какие кодировки вы знаете? Как создать строки в различной кодировке?
4. Что такое пул литералов? Как строки заносятся в пул литералов? Как занести строку в пул литералов и как получить ссылку на строку, хранящ
5. В чем отличие объектов классов StringBuilder и StringBuffer от объектов класса String? Какой из этих классов потокобезопасный? Как необхо
6. Что такое Unicode?
7. Какие методы класса String используются для работы с кодовыми точками? Как вы думаете, когда следует их использовать?
Regular Expressions 1. Расскажите, что представляет собой регулярное выражение? Что такое метасимволы регулярного выражения? Какие вы знаете
2. Какие java-классы работают с регулярными выражениями? В каком пакете они расположены? Приведите пример анализа текста с помощью регулярно
3. Что такое группы в регулярных выражениях? Как нумеруются группы? Что представляет собой группа номер 0(ноль)? Приведите пример с использо
4_Programming_with_classes
1. Создайте класс Test1 двумя переменными. Добавьте метод вывода на экран и методы изменения этих переменных. Добавьте метод, который находи
2. Создйте класс Test2 двумя переменными. Добавьте конструктор с входными параметрами. Добавьте конструктор, инициализирующий члены класса п
3. Создайте класс с именем Student, содержащий поля: фамилия и инициалы, номер группы, успеваемость (массив из пяти элементов). Создайте мас
4. Создайте класс Train, содержащий поля: название пункта назначения, номер поезда, время отправления. Создайте данные в массив из пяти элем
5. Опишите класс, реализующий десятичный счетчик, который может увеличивать или уменьшать свое значение на единицу в заданном диапазоне. Пре
6. Составьте описание класса для представления времени. Предусмотрте возможности установки времени и изменения его отдельных полей (час, мин
7. Описать класс, представляющий треугольник. Предусмотреть методы для создания объектов, вычисления площади, периметра и точки пересечения
8. Создать класс Customer, спецификация которого приведена ниже. Определить конструкторы, set- и get- методы и метод toString(). Создать вт
9. Создать класс Book, спецификация которого приведена ниже. Определить конструкторы, set- и get- методы и метод toString(). Создать второй
10. Создать класс Airline, спецификация которого приведена ниже. Определить конструкторы, set- и get- методы и метод toString(). Создать вт
Агрегация и композиция 1. Создать объект класса Текст, используя классы Предложение, Слово. Методы: дополнить текст, вывести на консоль т
2. Создать объект класса Автомобиль, используя классы Колесо, Двигатель. Методы: ехать, заправляться, менять колесо, вывести на консоль марк
3. Создать объект класса Государство, используя классы Область, Район, Город. Методы: вывести на консоль столицу, количество областей, площа
4. Счета. Клиент может иметь несколько счетов в банке. Учитывать возможность блокировки/разблокировки счета. Реализовать поиск и сортировку
5. Туристические путевки. Сформировать набор предложений клиенту по выбору туристической путевки различного типа (отдых, экскурсии, лечение,
Теория_Programming_with_classes
1. Опишите процедуру инициализации полей класса и полей экземпляра класса. Когда инициализируются поля класса, а когда – поля экземпляров кл
2. Дайте определение перегрузке методов. Как вы думаете, чем удобна перегрузка методов? Укажите, какие методы могут перегружаться, и какими
3. Объясните, что такое раннее и позднее связывание? Перегрузка – это раннее или позднее связывание? Объясните правила, которым следует комп
4. Объясните, как вы понимаете, что такое неявная ссылка this? В каких методах эта ссылка присутствует, а в каких – нет, и почему?
5. Что такое финальные поля, какие поля можно объявить со спецификатором final? Где можно инициализировать финальные поля?
6. Что такое статические поля, статические финальные поля и статические методы. К чему имеют доступ статические методы? Можно ли перегрузить
7. Что такое логические и статические блоки инициализации? Сколько их может быть в классе, в каком порядке они могут быть размещены и в како
8. Что представляют собой методы с переменным числом параметров, как передаются параметры в такие методы и что представляет собой такой пара
9. Чем является класс Object? Перечислите известные вам методы класса Object, укажите их назначение.
10. Что такое хэш-значение? Объясните, почему два разных объекта могут сгенерировать одинаковые хэш-коды?
11. Что такое объект класса Class? Чем использование метода getClass() и последующего сравнения возвращенного значения с Type.class отличает
12. Укажите правила переопределения методов equals(), hashCode() и toString().



