Если при вводе кода программы вы допустить опечатку то какого рода сообщение об ошибке получите

Обновлено: 07.07.2024

В результате выполнения данной программы на экране появится следующий результат:1.0 gallons is 3.7854 liters.2.0 gallons is 7.5708 liters.3.0 gallons is 11.356200000000001 liters.4.0 gallons is 15.1416 liters.5.0 gallons is 18.927 liters.6.0 gallons is 22.712400000000002 liters.7.0 gallons is 26.4978 liters.8.0 gallons is 30.2832 liters.9.0 gallons is 34.0686 liters.10.0 gallons is 37.854 liters.11.0 gallons is 41.6394 liters.12.0 gallons is 45.424800000000005 liters.13.0 gallons is 49.2102 liters.14.0 gallons is 52.9956 liters.15.0 gallons is 56.781 liters.16.0 gallons is 60.5664 liters.17.0 gallons is 64.3518 liters.18.0 gallons is 68.1372 liters.19.0 gallons is 71.9226 liters.20.0 gallons is 75.708 liters.21.0 gallons is 79.49340000000001 liters.22.0 gallons is 83.2788 liters.24.0 gallons is 90.84960000000001 liters25.0 gallons is 94.635 liters.26.0 gallons is 98.4204 liters.27.0 gallons is 102.2058 liters.28.0 gallons is 105.9912 liters.29.0 gallons is 109.7766 liters.30.0 gallons is 113.562 liters.Ключевые слова Java

В настоящее время в языке Java определено пятьдесят ключевых слов (табл. 1.1). Вместе с синтаксисом операторов и разделителями они образуют определение языка Java. Ключевые слова нельзя использовать в качестве имен переменных, классов или методов.

Ключевые слова const и goto зарезервированы, но не используются. На ранних этапах развития Java для дальнейшего использования были зарезервированы и другие ключевые слова. Но в текущем определении (так называемой спецификации) Java определены только те ключевые слова, которые представлены в табл. 1.1.

Помимо ключевых слов, в Java зарезервированы также логические значения true, falsennull. Их нельзя использовать для обозначения переменных, классов и других элементов программ.

Таблица 1.1. Ключевые слова Java abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileИдентификаторы в Java

в JavaВ Java идентификатор обозначает имя метода, переменной или элемента, определяемых пользователем. Идентификатор может содержать один или несколько символов. Имя переменной может начинаться с любой буквы, знака подчеркивания или денежной единицы. Далее могут следовать буквы, цифры, знак подчеркивания или денежной единицы. Знак подчеркивания обычно применяется для того, чтобы сделать имя более удобным для восприятия, например line count.

В Java символы нижнего и верхнего регистра различаются, т.е. myvar и MyVar — это имена разных переменных. Ниже приведен ряд примеров допустимых в Java идентификаторов. TestXУ2MaxLoad$up_topmy_varsample23

Как упоминалось выше, идентификатор на может начинаться с цифры. Например, идентификатор 12х недопустим.

В качестве идентификаторов нельзя использовать ключевые слова Java. Для этой цели нельзя использовать также имена стандартных методов, например println. Эти ограничения необходимо соблюдать. Кроме того, профессиональный стиль программирования предполагает употребление имен, отражающих назначение соответствующих элементов.Библиотеки классов Java

В примерах программ, представленных в этой главе, применяются два встроенных в Java метода: println () и print (). Эти методы являются членами класса System, который предопределен в Java и автоматически включается в состав любой программы. В более широком смысле среда Java включает в себя ряд встроенных библиотек классов, содержащих большое количество методов. Они обеспечивают поддержку ввода-вывода, операций с символьными строками, сетевого взаимодействия и отображения графики. Стандартные классы также реализуют оконный вывод. Таким образом, Java представляет собой сочетание собственно языка и стандартных классов. Как станет ясно в дальнейшем, многими своими функциональными возможностями язык Java обязан именно библиотекам классов. Поэтому научиться грамотно программировать Java невозможно, не усвоив стандартные классы. На протяжении всей остальной части книги вам будет встречаться описание различных классов и методов из стандартных библиотек. Но в одной книге невозможно описать все библиотеки, поэтому полученные знания основ Java вам придется пополнить в процессе самостоятельной работы.Упражнение для самопроверки по материалу главы 1

Что такое байт-код и почему он так важен для интернет-программирования на языке Java?

Каковы три основных принципа объектно-ориентированного программирования?

С чего начинается выполнение программы на Java?

Что такое переменная?

Какое из перечисленных ниже имен переменных недопустимо?

a. countb. $countc. count27d. 67count

Как создать однострочный комментарий? И как создать многострочный комментарий?

Как выглядит общая форма условного оператора if? И как выглядит общая форма цикла for?

Как создать кодовый блок?'

Сила тяжести на Луне составляет около 17% земной. Напишите программу, которая вычисляла бы ваш вес на Луне.

Видоизмените программу, созданную в примере для опробования 1.2, таким образом, чтобы она выводила таблицу преобразования дюймов в метры. Выводите значения длины до 12 футов через каждый дюйм. После каждых 12 дюймов выводите пустую строку. (Один метр приблизительно равен 39,37 дюйма.)

Имеет ли значение, в каком именно месте строки находится оператор?

Глава 2 Введение в типы данных и операторы

Основные навыки и понятия

Представление о простых типах данных в Java

Правила соблюдения области действия переменных в методе

Применение арифметических операторов

Применение операторов сравнения и логических операторов

Представление об операторах присваивания

Представление об укороченных операторах присваивания

Преобразование типов при присваивании

Представление о неприводимых типах данных

Преобразование типов в выражениях

Основу любого языка программирования составляют типы данных и операторы, и Java не является исключением из этого правила. Типы данных и операторы определяют область применимости языка и круг задач, которые можно успешно решать с его помощью. В Java поддерживаются самые разные типы данных и операторы, что делает этот язык универсальным и пригодным для написания любых программ.

Значение типов данных и операций нельзя недооценивать. Эта глава начинается с анализа основных типов данных и наиболее часто используемых операторов. А кроме того, в ней будут подробно рассмотрены переменные и выражения.Особое значение типов данных

В связи с тем, что Java относится к категории строго типизированных языков программирования, типы данных имеют в нем очень большое значение. В процессе компиляции проверяются типы операндов во всех операциях. И если в программе встречаются недопустимые операции, ее исходный код не преобразуется в байт-код. Контроль типов позволяет сократить количество ошибок и повысить надежность программы. В отличие от других языков программирования, где допускается не указывать типы данных, хранящихся в переменных, в Java все переменные, выражения и значения строго контролируются на соответствие типов данных. Более того, тип переменной определяет, какие именно операции могут быть выполнены над ней. Операции, разрешенные для одного типа данных, могут оказаться недопустимы для другого.Простые типы данных в Java

Встроенные типы данных в Java разделяются на две категории: объектно-ориентированные и необъектно-ориентированные. Объектно-ориентированные типы данных определяются в классах, о которых речь пойдет далее в книге. В основу языка Java положено восемь простых типов данных, приведенных в табл. 2.1 (их также называют элементарными, или примитивными). Термин простые указывает на то, что эти типы данных являются не объектами, а обычными двоичными значениями. Такие типы данных предусмотрены в языке для того, чтобы увеличить эффективность работы программ. Все остальные типы данных Java образуются на основе простых типов.

Может ли изменяться стиль оформления компонента Swing? Если да, то какое средство позволяет это сделать?

Какой контейнер верхнего уровня чаще всего используется в приложениях?

Контейнер верхнего уровня содержит несколько панелей. На какой панели размещаются компоненты?

В каком потоке должно происходить все взаимодействие с компонентами графиче¬ского пользовательского интерфейса?

Какая команда действия связывается по умолчанию с компонентом JButton? Как изменить команду действия?

Какое событие формируется при нажатии кнопки?

Как создать поле ввода текста шириной до 32 символов?

Можно ли установить команду действия для компонента JTextField? Если можно, то как это сделать?

С помощью какого компонента Swing можно создать флажок? Какое событие формируется при установке или сбросе флажка?

Компонент JList отображает список элементов, которые может выбирать пользователь. Верно или неверно?

Какое событие формируется при выборе пользователем элемента из списка типа JList или отмене выбора?

В каком методе задается режим выбора элементов списка типа JList? С помощью какого метода можно получить индекс первого выбранного элемента?

Подкласс какого класса нужно создать при разработке Swing-апплета?

Обычно при построении исходного пользовательского интерфейса в Swing-апплетах используется метод invokeAndWait (). Верно или неверно?

Добавьте в утилиту сравнения файлов, созданную в примере для опробования 15.1, флажок со следующей пояснительной надписью: Show position of mismatch (Показывать место несовпадения). Если этот флажок установлен, программа должна отображать место, в котором обнаружено первое расхождение в содержимом сравниваемых файлов.

Измените программу ListDemo таким образом, чтобы она допускала выбор нескольких элементов из списка.

Дополнительное задание. Преобразуйте класс Help, созданный в примере для опробования 4.1, в Swing-программу с графическим пользовательским интерфейсом. Сведения о ключевых словах (for, while, switch и т.д.) должны отображаться с помощью компонента JList. При выборе пользователем элемента из списка должно выводиться описание синтаксиса выбранного ключевого слова. Для отображения многострочного текста на месте метки можно воспользоваться средствами HTML. В этом случае текст должен начинаться с дескриптора и завершаться дескриптором . В итоге текст будет автоматически размечен в виде HTML-документа. Помимо прочих преимуществ, такая разметка текста позволяет создавать многострочные метки. В качестве примера ниже приведена строка кода, в которой создается метка, отображающая две текстовые строки: первой выводится строка "Тор" (Верх), а под ней — вторая строка "Bottom" (Низ).JLabel jlabhtml = new JLabel("<html>Top<br>Bottom</html>"); На этот вопрос ответа не дается. Ведь вы достигли такого уровня, который позволяет самостоятельно разрабатывать программы на Java!

Приложение А Ответы на вопросы для самопроверки Глава 1. Основы Java

Что такое байт-код и почему он так важен для интернет-программирования на языке Java? Байт-код — это высокооптимизированный набор инструкций, выполняемых под управлением интерпретатора Java. Байт-код позволяет добиться переносимости и безопасности программ, написанных на этом языке программирования.

Каковы три основных принципа объектно-ориентированного программирования? Инкапсуляция, полиморфизм и наследование.

С чего начинается выполнение программы на Java? Выполнение программы на Java начинается с метода main ().

Что такое переменная? Переменная — это именованная область памяти. Содержимое переменной может изменяться в процессе выполнения программы.

Какое из перечисленных ниже имен переменных недопустимо? A. count B. $count C. count27 D. 67count Недопустимо имя переменной 67count (пункт D). Имя переменной не может начинаться с цифры.

Как создать однострочный комментарий? И как создать многострочный комментарий? Однострочные комментарии должны начинаться с символов / /.В этом случае комментариями считаются эти и все последующие символы до конца строки. А многострочные комментарии должны начинаться символами / и заканчиваться символами /.

Как выглядит общая форма условного оператора if? И как выглядит общая форма цикла for? Общая форма оператора i f выглядит следующим образом: if (условие) оператор; А общая форма цикла for имеет следующий вид: for (инициализация; условие; итерация) оператор;

Как создать кодовый блок? Кодовый блок должен начинаться с символа < и завершаться символом >.

Сила тяжести на Луне составляет около 17% земной. Напишите программу, которая вычисляла бы ваш вес на Луне. / Вычисление веса на Луне. Присвоить ее исходному файлу имя Moon.java. / Приложение А. Ответы на вопросы для самопроверки 557. class Moon < public static void main(String args[]) < double earthweight; // Вес на Земле double moonweight; // Вес на Луне earthweight = 165; moonweight = earthweight * 0.17; System.out.println(earthweight + " earth-pounds is equivalent to " + moonweight + " moon-pounds."); >>

Видоизмените программу, созданную в примере для опробования 1.2, таким образом, чтобы она выводила таблицу преобразования дюймов в метры. Выводите значения длины до 12 футов через каждый дюйм. После каждых 12 дюймов выводите пустую строку. (Один метр приблизительно равен 39,37 дюйма.) / Эта программа отображает таблицу преобразования дюймов в метры. Присвоить ее исходному файлу имя InchToMeterTable.java. / class InchToMeterTable < public static void main(String args[]) < double inches, meters; int counter; counter = 0; for(inches = 1; inches <= 144; inches++) < meters = inches / 39.37; // преобразовать в метры System.out.println(inches + " inches is " + meters + " meters."); counter++; // Каждая 12-я выводимая строка должна быть пустой if(counter == 12) < System.out.println(); counter =0; // сбросить счетчик строк >> > >

Имеет ли значение, в каком именно месте строки находится оператор? Не имеет. В Java допускается произвольное форматирование исходного кода. Глава 2. Введение в типы данных и операторы

Почему в Java строго определены диапазоны допустимых значений и области действия простых типов? Диапазоны допустимых значений и области действия простых типов строго определены в Java для того, чтобы обеспечить переносимость программ с одной платформы на другую.

Что собой представляет символьный тип в Java и чем он отличается от символьного типа в ряде других языков программирования? Символьный тип задается ключевым словом char. В Java для представления символов применяется уникод (Unicode), в отличие от многих других языков программирования, в которых для этой цели применяется код ASCII.

Переменная типа boolean может иметь любое значение, поскольку любое ненулевое значение интерпретируется как истинное. Верно или неверно? Неверно. Переменная типа boolean может принимать лишь одно из двух логических значений: true или false.

Ответы на вопросы для самопроверки

Глава 1. Основы Java

Что такое байт-код и почему он так важен для интернет-программирования на языке Java? Байт-код — это высокооптимизированный набор инструкций, выполняемых под управлением интерпретатора Java. Байт-код позволяет добиться переносимости и безопасности программ, написанных на этом языке программирования.

Каковы три основных принципа объектно-ориентированного программирования? Инкапсуляция, полиморфизм и наследование.

С чего начинается выполнение программы на Java? Выполнение программы на Java начинается с метода main ().

Что такое переменная? Переменная — это именованная область памяти. Содержимое переменной может изменяться в процессе выполнения программы.

Какое из перечисленных ниже имен переменных недопустимо?

A. count B. $count C. count27 D. 67count

Недопустимо имя переменной 67count (пункт D). Имя переменной не может начинаться с цифры.

Как создать однострочный комментарий? И как создать многострочный комментарий? Однострочные комментарии должны начинаться с символов / /.В этом случае комментариями считаются эти и все последующие символы до конца строки. А многострочные комментарии должны начинаться символами / * и заканчиваться символами */.

Как выглядит общая форма условного оператора if? И как выглядит общая форма цикла for? Общая форма оператора if выглядит следующим образом:

А общая форма цикла for имеет следующий вид:

Как создать кодовый блок? Кодовый блок должен начинаться с символа < и завершаться символом >.

Сила тяжести на Луне составляет около 17% земной. Напишите программу, которая вычисляла бы ваш вес на Луне.

Видоизмените программу, созданную в примере для опробования 1.2, таким образом, чтобы она выводила таблицу преобразования дюймов в метры. Выводите значения длины до 12 футов через каждый дюйм. После каждых 12 дюймов выводите пустую строку. (Один метр приблизительно равен 39,37 дюйма.)

Имеет ли значение, в каком именно месте строки находится оператор? Не имеет. В Java допускается произвольное форматирование исходного кода.

Глава 2. Введение в типы данных и операторы

  1. Почему в Java строго определены диапазоны допустимых значений и области действия простых типов? Диапазоны допустимых значений и области действия простых типов строго определены в Java для того, чтобы обеспечить переносимость программ с одной платформы на другую.
  2. Что собой представляет символьный тип в Java и чем он отличается от символьного типа в ряде других языков программирования? Символьный тип задается ключевым словом char. В Java для представления символов применяется уникод (Unicode), в отличие от многих других языков программирования, в которых для этой цели применяется код ASCII.
  3. Переменная типа boolean может иметь любое значение, поскольку любое ненулевое значение интерпретируется как истинное. Верно или неверно? Неверно. Переменная типа boolean может принимать лишь одно из двух логических значений: true или false.
  4. Допустим, результат выполнения программы выглядит следующим образом:
Напишите строку кода с вызовом метода println(), где этот результат выводится в одной символьной строке.

Глава 3. Управляющие операторы

  1. Напишите программу, которая вводила бы символы с клавиатуры до тех пор, пока не встретится точка. Предусмотрите в программе счетчик числа пробелов. Сведения о количестве пробелов должны выводиться в конце программы.

Глава 4. Введение в классы, объекты и методы

  1. В чем отличие класса от объекта? Класс — это абстрактное логическое описание формы и поведения объекта. А объект — это вещественный экземпляр класса.
  2. Как определяется класс? Класс определяется с помощью ключевого слова class. В операторе class указываются код и данные, составляющие класс.
  3. Чью собственную копию содержит каждый объект? Каждый объект класса содержит собственную копию переменных экземпляра этого класса.
  4. Покажите, как объявить объект counter класса MyCounter, используя два отдельных оператора.

Глава 5. Дополнительные сведения о типах данных и операторах

Покажите два способа объявления одномерного массива, состоящего из 12 элементов типа double.

Покажите, как инициализировать одномерный массив целочисленными значениями от 1 до 5.

Напишите программу, в которой массив используется для нахождения среднего арифметического десяти значений типа double. Используйте любые десять чисел.

Измените программу, созданную в примере для опробования 5.1, таким образрм, чтобы она сортировала массив символьных строк. Продемонстрируйте ее работоспособность.

В чем отличие методов indexOf () и lastIndexOf () из класса String? Метод indexOf () находит первое вхождение указанной подстроки, а метод lastlndexOf () — ее последнее вхождение в текущей символьной строке.

Все символьные строки являются объектами типа String. Покажите, как вызываются методы length () и charAt () для строкового литерала ”1 like Java" (Мне нравится Java). Как ни странно, приведенный ниже вызов метода length () вполне допустим.

В результате этого вызова на экран выводится значение 11. Аналогичным образом вызывается и метод charAt ().

Расширьте класс Encode таким образом, чтобы в качестве ключа шифрования использовалась строка из восьми символов.

Можно ли применять поразрядные операторы к значениям типа double? Нет, нельзя.

Перепишите приведенную ниже последовательность операторов, воспользовавшись оператором ?.

В приведенном ниже фрагменте кода содержится знак &. Какой оператор он обозначает: поразрядный или логический? Обоснуйте свой ответ.

Это логический оператор, поскольку оба его операнда относятся к типу boolean.

Является ли ошибкой превышение верхней границы массива? Да.

Является ли ошибкой использование отрицательных значений для доступа к элементам массива?

Да. Значения индексов массива начинаются с нуля.

Как обозначается оператор сдвига вправо без знака?

Перепишите рассмотренный ранее в этой главе класс MinMax таким образом, чтобы в нем использовалась разновидность for-each цикла for.

В примере для опробования 5.1 была реализована пузырьковая сортировка. Можно ли в программе из этого примера заменить обычный цикл for его разновидностью for-each? Если нельзя, то почему? Циклы for, выполняющие сортировку в классе Bubble, нельзя преобразовать в вариант for-each. Что касается внешнего цикла, то текущее значение его переменной используется во внутреннем цикле. А что касается внутреннего цикла, то для перестановки следующих не по порядку элементов требуются операции присваивания значений элементам массива, чего нельзя добиться в варианте for-each.

Можно ли управлять оператором switch с помощью объектов типа String? Можно, начиная с версии JDK 7.

Глава 6. Дополнительные сведения о методах и классах

Является ли допустимым приведенный ниже фрагмент кода? Ниже приведен результат выполнения данной программы. Напишите метод swap (), реализующий обмен содержимым между двумя объектами типа Test, на которые ссылаются две переменные данного типа. Если попытаться вызвать метод myMeth () с одним аргументом следующим образом:

Глава 7. Наследование

Имеет ли суперкласс доступ к членам подкласса? Имеет ли подкласс доступ к членам суперкласса? Нет, не имеет. Суперклассу ничего не известно о существовании подклассов. Подклассы действительно могут обращаться ко всем членам суперкласса, кроме тех, которые объявлены как закрытые (private).

Создайте подкласс Circle, производный от класса TwoDShape. В нем должен быть определен метод area (), вычисляющий площадь круга, а также конструктор с ключевым словом super для инициализации членов, унаследованных от класса TwoDShape.

Как предотвратить обращение к членам суперкласса из подкласса? Для того чтобы предотвратить доступ к членам суперкласса из подкласса, эти члены следует объявить как закрытые (private).

Опишите назначение и два варианта использования ключевого слова super. Ключевое слово super используется в двух случаях. Во-первых, с его помощью вызывается конструктор суперкласса. В этом случае общая форма вызова имеет следующий вид:

И во-вторых, это ключевое слово обеспечивает доступ к членам суперкласса. Ниже приведена общая форма такого доступа.

Допустим, имеется следующая иерархия классов:

В каком порядке вызываются конструкторы этих классов при создании объекта класса Gamma?

Конструкторы всегда вызываются в порядке наследования. Таким образом, при создании экземпляра класса Gamma будет сначала вызван конструктор Alpha, затем Beta и, наконец, Gamma.

Переменная ссылки на суперкласс может указывать на объект подкласса. Объясните, почему это важно и как это связано с переопределением методов? Когда переопределяемый метод вызывается по ссылке на суперкласс, его вариант определяется по типу объекта, на который делается ссылка.

Что такое абстрактный класс? Абстрактным называется такой класс, который содержит хотя бы один абстрактный метод.

Как предотвратить переопределение метода? И как предотвратить наследование класса? Для того чтобы метод нельзя было переопределить, его нужно объявить как final. А для того чтобы предотвратить наследование от класса, его следует объявить как final.

Объясните, каким образом механизмы наследования, переопределения методов и абстрактные классы используются для поддержки полиморфизма. Наследование, переопределение методов и абстрактные классы поддерживают полиморфизм и позволяют создать обобщенную структуру, реализуемую различными классами. Так, абстрактный класс определяет согласованный интерфейс, общий для всех реализующих его классов. Такой подход соответствует принципу “один интерфейс — множество методов”.

Какой класс является суперклассом всех остальных классов? Класс Object.

Класс, который содержит хотя бы один абстрактный метод, должен быть объявлен абстрактным. Верно или не верно? Верно.

Какое ключевое слово следует использовать для создания именованной константы? Ключевое слово final.

Глава 8. Пакеты и интерфейсы

  1. Используя код, созданный в примере для опробования 8.1, поместите в пакет qpack интерфейс ICharQ и все три реализующие его класса. Класс IQDemo должен остаться в пакете, используемом по умолчанию. Покажите, как импортировать и использовать классы из пакета qpack. Для того чтобы включить интерфейс ICharQ и реализующие его классы в пакет qpack, следует поместить каждый из них в отдельный файл, объявить все классы, реализующие данный интерфейс, как public, а в начале каждого файла ввести следующий оператор:
После этого можно воспользоваться пакетом qpack, добавив в интерфейс IQDemo следующий оператор import:

Глава 9. Обработка исключений

  1. Какой класс находится на вершине иерархии исключений? На вершине иерархии исключений находится класс Throwable.
  2. Объясните вкратце, как пользоваться ключевыми словами try и catch? Ключевые слова try и catch используются совместно. Операторы программы для отслеживания исключений помещаются в блок try. А перехват и обработка исключений осуществляются в блоке catch.
  3. Какая ошибка допущена в приведенном ниже фрагменте кода?

В данном фрагменте кода оператор catch для суперкласса предшествует оператору catch для подкласса. А поскольку оператор catch для суперкласса может обработать также исключения, относящиеся к подклассу, то в программе окажется код, недоступный для выполнения. 6. Может ли внутренний блок catch повторно генерировать исключение, которое будет обработано во внешнем блоке catch? Да, исключения могут генерироваться повторно. 7. Блок finally — последний фрагмент кода, выполняемый перед завершением программы. Верно или неверно? Обоснуйте свой ответ. Неверно. Блок finally выполняется по завершении блока try. 8. Исключения какого типа необходимо явно объявлять с помощью оператора throws, включаемого в объявление метода? С помощью оператора throws объявляются все исключения, кроме RuntimeException и Error. 9. Какая ошибка допущена в приведенном ниже фрагменте кода? class MyClass < // . >// . throw new MyClass(); Класс MyClass не является производным от класса Throwable. С помощью оператора throw могут генерироваться лишь те исключения, которые являются подклассами, производными от класса Throwable. 10. Отвечая на вопрос 3 упражнения для самопроверки по материалу главы 6, вы создали класс Stack. Добавьте в него специальные исключения для реагирования на попытку поместить элемент в переполненный стек и извлечь элемент из пустого стека. ``` // Исключение, возникающее при переполнении стека, class StackFullException extends Exception < int size;

  1. Какими тремя способами можно сгенерировать исключение? Исключение может быть сгенерировано в результате ошибки в виртуальной машине Java, ошибки в программе или явным образом с помощью оператора throw.
  2. Назовите два подкласса, производных непосредственно от класса Throwable. Классы Error и Exception
  3. Что такое многократный перехват? Многократным называется такой перехват, который позволяет перехватывать два и больше исключений одним оператором catch.
  4. Следует ли перехватывать в программе исключения типа Error? Нет, не следует.

Глава 10. Ввод-вывод данных

  1. Для чего в Java определены как байтовые, так и символьные потоки? Байтовые потоки с самого начала были определены в Java. Они особенно удобны для ввода-вывода двоичных данных и поддерживают произвольный доступ к ним в файлах. А символьные потоки оптимизированы для представления в уникоде.
  2. Как известно, ввод-вывод данных на консоль осуществляется в текстовом виде. Почему же в Java для этой цели используются байтовые потоки? Стандартные потоки ввода-вывода System, in, System.out и System.err были определены в Java прежде символьных потоков.
  3. Как открыть файл для чтения байтов? Ниже приведен один из способов открытия файла для ввода данных типа byte.

Глава 11. Многопоточное программирование

  1. Каким образом имеющиеся в Java средства многопоточного программирования позволяют писать более эффективные программы? Средства многопоточного программирования дают возможность использовать периоды простоя, наступающие практически в любой программе. Когда операции в одном потоке по каким-то причинам не выполняются, в действие вступают другие потоки. В многоядерных системах два и больше потоков могут исполняться одновременно.
  2. Для поддержки многопоточного программирования в Java предусмотрен класс и интерфейс . Для поддержки многопоточного программирования в Java предусмотрен класс Thread и интерфейс Runnable.
  3. В каких случаях следует отдать предпочтение расширению класса Thread над реализацией интерфейса Runnable? Подклассы, производные от класса Thread, целесообразно создавать в тех случаях, когда, помимо метода run (), требуется переопределить другие методы данного класса.
  4. Покажите, как с помощью метода j о in () можно организовать ожидание завершения потокового объекта MyThrd.

Глава 12. Перечисления, автоупаковка, статический импорт и аннотации

Ошибки, которые обнаруживает компилятор, называют синтаксическими ошибками или ошибками компиляции. Синтаксические ошибки являются результатом ошибок в конструкции кода, таких как неправильное написание ключевого слова, пропуск необходимого знака пунктуации или использование открывающей фигурной скобки без соответствующей закрывающей фигурной скобки. Эти ошибки обычно легко обнаружить, поскольку компилятор говорит вам, где они находятся и что стало их причиной. Пример программы с синтаксической ошибкой:

Попытка компиляции приведённого кода:


Будет сообщено о четырёх ошибках, но в действительности программа содержит две ошибки:

  • Во второй строке отсутствует ключевое слово void перед main
  • Строка Welcome to Java должна быть закрыта закрывающей кавычкой в третьей строчке программы

2. Ошибки во время выполнения

Ошибки во время выполнения – это ошибки, которые приводят к ненормальному обрывы работы программы. Они возникают во время работы программы, если среда обнаруживает операцию, которую невозможно выполнить. Обычно ошибки ввода становятся причинами ошибок во время выполнения. Ошибки ввода возникают, когда программа ожидает от пользователя ввода значения, но пользователь вводит величину, которую программа не может обработать. Например, программа ожидает получение числа, но вместо этого пользователь вводит строку, это приводит к ошибкам в программе, связанным с типами данных.

Другой пример ошибок во время выполнения – это деление на ноль. Это происходит, когда в целочисленном деление делитель равен нулю. Пример программы, которая вызовет ошибку во время выполнения:


3. Логические ошибки

Логические ошибки происходят, когда программа неправильно выполняет то, для чего она была создана. Ошибки этого рода возникают по многим различным причинам. Допустим, вы написали программу, которая конвертирует 35 градусов Цельсия в градусы Фаренгейта следующим образом:


Вы получите 67 градусов по Фаренгейту, что является неверным. Должно быть 95.0. В Java целочисленное деление показывает только часть – дробная часть отсекается, по этой причине в Java 9 / 5 это 1. Для получения правильного результата, нужно использовать 9.0 / 5, что даст результат 1.8.

4. Распространённые ошибки

Пропуск закрывающей фигурной скобки, пропуск точки с запятой, пропуск кавычки для строки и неправильное написание имён – всё это самые распространённые ошибки для новых программистов.

Частые ошибки 1: Пропущенные фигурные скобки

Фигурные скобки используются для обозначения в программе блоков. Каждой открывающей фигурной скобке должна соответствовать закрывающая фигурная скобка. Распространённая ошибка – это пропуск закрывающей фигурной скобки. Чтобы избежать эту ошибки, печатайте закрывающую фигурную скобку всякий раз, когда печатаете открывающую фигурную скобку как показано в следующем примере:


Если вы используете IDE такую как NetBeans и Eclipse, то IDE автоматически вставит закрывающую фигурную скобку каждой введённой вами открывающей фигурной скобки.

Частые ошибки 2: Пропуск точки с запятой

Каждая инструкция заканчивается ограничителем инструкции (;). Часто новые программисты забывают поместить ограничитель инструкции для последней инструкции в блоке как это показано в следующем примере:


Частые ошибки 3: Пропуск кавычки

Строки должны помещаться в кавычки. Часто начинающие программисты забывают поместить кавычку в конце строки как показано в следующем примере:


Если вы используете IDE, такую как NetBeans и Eclipse, то IDE автоматически вставит закрывающую кавычку каждый раз, когда вы ввели открывающую кавычку.

Частые ошибки 4: Неправильное написание имён

Java чувствительная к регистру. Неправильное написание имён – частая ошибка для новых программистов. Например, пишут слово main как Main, а вместо String пишут string. Пример:

Читайте также: