Подробности
Предпоставката за написване на тази книга е, че след 15-годишна разработка Java се е превърнала в огромна и доста комплексна комбинация от език и среда. Самият език претърпя значителено развитие от своето първоначално представяне. Библиотеките, свързани с езика, станаха дори по-големи, а изискванията за съвместимост с всяка следваща версия доведоха до добавянето на многожество характеристики и премахването на една съвсем малка част от тях. Проклятието на всеки голям софтуер е, че за да оцелее, трябва да стане популярен, но от своя страна популярността изисква от софтуера да не се променя по начин, който би разрушил изграденото до момента от него (б.пр. всичко, което е написано на предходните му версии). Това нямаше да е проблем, ако софтуерът можеше да бъде направен перфектен от самото си начало, но действителността е различна. Всеки софтуер представлява опит за правилното извършване на дадена задача, а всеки опит е повече или по-малко успешен. Дори ако един софтуер е бил перфектен в момента на създаването си, потребителите ще открият нови начини да използват този софтуер (или средата, в която той се използва, ще се промени), така че той няма за дълго да остане перфектен. Затова програмистите се опитват да правят софтуера по-добър, добавяйки много неща, което от своя страна води до неговата негодност.
Тази книга е опит да се подберат някои от най-добрите части на Java (и от езика, и от средата) и да се обясни как те да се използват и защо именно те са добри. Това не означава, че частите на Java, които няма да бъдат разгледани в тази книга, не са добри; но тук авторът говори за частите, които отличават Java от много други езици, и по този начин правят Java особено ценен програмен език за типа работа, която много софтуерни инженери извършват.
Предговор
Въведение в Java ………1
За какво е добър Java?
Системата от типове ………7
Основните понятия
Защо имаме три?
Вътре и Вън
Внимавайте
Истински проблем
Изключения ……… 25
Основни понятия
Голямото Защо
Как работи
Употреба и злоупотреба
Тъмната страна
Пакети ……… 43
Основни понятия
Пакети и контрол на достъпа
Един пример
Пакети и файловата система
Събиране на боклука ……… 55
Основни понятия
Събиране на боклук и референции
Пукнатини в паметта
Други ресурси
Виртуалната машина на Java ……… 71
Основни понятия
Сигурност
Преносимост
Капани при преносимост
Javadoc ……… 87
Основни понятия
Един пример
Имплементационна документация
Документация на пакет
Ръководства за стил, редактори и неспиращи спорове
Колекции ……… 101
Основни понятия
Параметризирани типове
Тема за напреднали
Произволен достъп
Няколко последни мисли
Отдалечено повикване на методи и сериализация на обекти ……… 135
Основни понятия
Сериализация на обекти
Подтипове в RPC системите
Едновременен достъп ……… 161
Основни понятия
Синхронизация
Примитивни данни
Развитие на работната среда ……… 181
Интерактивни среди за разработка
JUnit
FindBugs
Други инструменти
Индекс ……… 195
Въведение в Java ………1
За какво е добър Java?
Системата от типове ………7
Основните понятия
Защо имаме три?
Вътре и Вън
Внимавайте
Истински проблем
Изключения ……… 25
Основни понятия
Голямото Защо
Как работи
Употреба и злоупотреба
Тъмната страна
Пакети ……… 43
Основни понятия
Пакети и контрол на достъпа
Един пример
Пакети и файловата система
Събиране на боклука ……… 55
Основни понятия
Събиране на боклук и референции
Пукнатини в паметта
Други ресурси
Виртуалната машина на Java ……… 71
Основни понятия
Сигурност
Преносимост
Капани при преносимост
Javadoc ……… 87
Основни понятия
Един пример
Имплементационна документация
Документация на пакет
Ръководства за стил, редактори и неспиращи спорове
Колекции ……… 101
Основни понятия
Параметризирани типове
Тема за напреднали
Произволен достъп
Няколко последни мисли
Отдалечено повикване на методи и сериализация на обекти ……… 135
Основни понятия
Сериализация на обекти
Подтипове в RPC системите
Едновременен достъп ……… 161
Основни понятия
Синхронизация
Примитивни данни
Развитие на работната среда ……… 181
Интерактивни среди за разработка
JUnit
FindBugs
Други инструменти
Индекс ……… 195
Джим Уалдо е изявен разработчик от Sun Microsystems Laboratories, изследващ следващото поколение разпределени системи с големи размери. Той е бил технически ръководител на Project Darkstar, както и водещ архитект на Jini. Джим също така е и професор по приложни компютърни науки в университета „Харвард".