Эккель Б., Философия Java
серия: Классика computer science
Питер, 2020 г., 978-5-496-01127-3,978-5-4461-1107-7
Наличие в интернет-магазинах
Описание книги
Купить эту книгу можно в интернет-магазинах
Ключевые слова
Поделиться ссылкой на книгу
Дополнительно о книге
До настоящего момента мы занимались последовательным программированием, при котором все действия в программе выполняются одно за другим. Последовательное программирование способно решить многие задачи. Однако в некоторых областях бывает удобно (и даже необходимо) выполнять несколько частей программы параллельно, чтобы создать иллюзию их параллельного выполнения — или, если компьютер оснащен несколькими процессорами, действительно выполнять их одновременно. Параллельное программирование способно серьезно улучшить скорость выполнения и/или предоставить упрощенную модель проектирования для некоторых видов программ. Тем не менее освоение теории и основных приемов параллельного программирования выходит за рамки всего, что вы узнали в этой книге; эта тема лежит где-то между промежуточным и высоким уровнем. Данная глава содержит вводный материал, и вы не можете считать себя хорошим специалистом по параллельному программированию, даже если полностью поймете весь материал. Как вы вскоре увидите, настоящие проблемы с параллельным выполнением начинаются тогда, когда одновременно выполняемые задачи начинают вмешиваться в дела друг друга. Такое вмешательство бывает настолько тонким и неочевидным, что параллельное выполнение можно с вескими основаниями считать условно-недетерминированным. Другими словами, теоретически возможно написать параллельные программы, которые благодаря внимательности программиста и анализу кода всегда работают корректно. Однако на практике гораздо проще писать параллельные программы, которые на первый взгляд работают корректно, но при некоторых условиях порождают ошибки. Возможно, эти условия никогда не возникнут или же будут возникать так редко, что никогда не встретятся при тестировании. Более того, нет гарантий, что вы сможете написать тестовый код, порождающий сбои в вашей параллельной программе. Ошибки будут происходить в очень редких случаях и в результате обернутся жалобами пользователей. Это одна из самых веских причин для изучения параллельного программирования: если вы не будете уделять ему внимания, то, скорее всего, сами же от этого и пострадаете. Итак, параллельное программирование сопряжено с неизбежным риском. Если вас это немного пугает, пожалуй, это даже хорошо. Хотя в Java SE5 в области параллельности были достигнуты значительные усовершенствования, до сих пор не существует никакой «страховки» вроде проверки во время компиляции или контролируемых исключений, сообщающих о допущенных ошибках. В области параллельного программирования вы сами отвечаете за все, и только повышенная подозрительность в сочетании с настойчивостью позволит вам писать надежный многопоточный код на Java. Некоторые люди считают, что параллельное программирование — слишком сложная тема для включения в книгу, которая только знакомит читателя с языком. Они полагают, что эта тема должна излагаться отдельно, а для тех редких случаев, когда она проявляется в повседневном программировании (например, построении графических интерфейсов), можно подобрать специальные идиомы. Зачем излагать такую сложную тему, если ее можно обойти? Если бы так… К сожалению, вы не властны над тем, где и как в ваших программах Java проявятся программные потоки. Даже если вы никогда не запускаете поток самостоятельно, это не значит, что вам удастся избежать написания многопоточного кода. Например, веб-системы — одна из самых распространенных областей для применения Java, а базовый класс сервлета изначально является многопоточным — и это неизбежно, потому что веб-серверы часто оснащаются несколькими процессорами, а параллельность является идеальным способом эффективного использования дополнительных процессоров. Каким бы простым ни казался сервлет, для правильного использования сервлетов необходимо понимать проблемы параллельного программирования. Это относится и к программированию графического интерфейса, как вы увидите в главе 22. Хотя в библиотеках Swing и SWT предусмотрены механизмы потоковой безопасности, вряд ли кто-то сможет правильно пользоваться ими без понимания параллельности. Java является многопоточным языком, и проблемы параллельного программирования присутствуют независимо от того, знаете вы о них или нет. В результате сейчас используется много Java-приложений, которые либо работают по случайности, либо работают большую часть времени, а иногда непостижимым образом «ломаются» от скрытых дефектов, связанных с параллельным выполнением. Иногда такие поломки приводят к потере ценных данных, и если вы не будете хотя бы в общих чертах представлять проблемы параллельности, то можете прийти к ошибочному выводу, что проблема кроется не в вашей программе, а где-то еще. Такие проблемы также могут выявляться или усиливаться при перемещении программы в многопроцессорную систему. По сути, разбираясь в параллелизме, вы будете знать, что даже правильная на первый взгляд программа может проявлять неправильное поведение. Параллельное программирование напоминает изучение нового языка — или по крайней мере новых языковых концепций. Понять логику параллельного программирования так же сложно, как понять логику объектно-ориентированного программирования. С некоторыми усилиями можно понять базовый механизм, но для подлинного понимания вопроса требуется углубленное изучение. Эта глава закладывает прочный фундамент в области основ, чтобы вы понимали концепции и могли писать несложные многопоточные программы. Тем не менее для написания любой сколько-нибудь нетривиальной программы вам придется изучать специализированную литературу по теме.
Содержание книги
Введение
Глава 1. Введение в объекты
Глава 2. Все является объектом
Глава 3. Операторы
Глава 4. Управляющие конструкции
Глава 5. Инициализация и завершение
Глава 6. Управление доступом ...
Глава 7. Повторное использование классов
Глава 8. Полиморфизм
Глава 9. Интерфейсы
Глава 10. Внутренние классы
Глава 11. Коллекции объектов
Глава 12. Обработка ошибок и исключения
Глава 13. Строки
Глава 14. Информация о типах
Глава 15. Обобщенные типы
Глава 16. Массивы
Глава 17. Подробнее о контейнерах
Глава 18. Система ввода-вывода Java
Глава 19. Перечислимые типы
Глава 20. Аннотации
Глава 21. Параллельное выполнение
Глава 22. Графический интерфейс
Приложение А
Приложение Б. Ресурсы
Об авторе
Отзывы
2) Перевод как будто был сделан на заказ Школьниками - автор перевода не понимает о чём речь в книге. тот же пример в начале с JAVAScript заместо Java . 1440 р + доставка 550. в общем выбросил , перевожу оригинал сам.
- "на дворе" Java SE 8, лямбда-вычисления и многое другое, чего НЕТ в книге (((
- кому книжка может пригодиться? - тем, кто использует Java SE5/6 ... а много ли таких осталось?
Следующие главы гораздо интереснее. Главное в этой книге - доходчивые примеры. Уже из примеров можно понять как и что работает в Java.
Перевод не путает понятия и не мешает освоению материала.
Открываем первые страницы после оглавления. В оригинале автор говорит о силе языка Java. Собственно и книга о Java. В русском переводе Java заменили на Javascript! И эту ошибку переносят уже какие годы! Нет, ну серьезно - не просто какие-то там ошибки в художественном произведении. А просто подмена понятий! Рекомендую учить основы английского и читать подобное в оригинале, на русском языке редко найдешь подобную литературу в адекватном переводе.
Как выяснилось - по ошибкам и огрехам перевода - это банальный «копи-паст» всего материала из неполного издания в полное с добавлением новых глав.
Печально, издательство не провело работу по вычитке прежнего перевода, а просто перевело и добавило новые главы - ставлю тройку только за то, что теперь это действительно полное издание великолепной книги.
Последние поступления в рубрике "Java"
Java. Задачи по основам программирования. Более 600 задач, около 150 задач с решениями Канель Е.
Предлагаемый задачник адресуется тем, кто решил освоить основы программирования на языке Java — как в рамках коллективных занятий (на уроках, факультативах или кружках), так и при самостоятельном индивидуальном обучении. Задачник содержит более 600...... | |
Head First. Паттерны проектирования. Обновленное юбилейное издание Фримен Э.
Больше 12 лет прошло с момента выхода первого издания книги, но она продолжает оставаться актуальной. Основные идеи не изменились, но изменился язык Java, например, появились лямбда-выражения. Поэтому авторы приняли решение обновить легендарную книгу...... | |
Java Concurrency на практике Гетц Б.
Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры — это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания любого высокопроизводительного приложения. Улучшенная виртуальная машина...... |
Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Эккель Б., Философия Java в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.