Ильдар Хабибуллин - Java 7 [Наиболее полное руководство]

Тут можно читать онлайн Ильдар Хабибуллин - Java 7 [Наиболее полное руководство] - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство БХВ-Петербург, год 2012. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Java 7 [Наиболее полное руководство]
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2012
  • ISBN:
    978-5-9775-0735-6
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Ильдар Хабибуллин - Java 7 [Наиболее полное руководство] краткое содержание

Java 7 [Наиболее полное руководство] - описание и краткое содержание, автор Ильдар Хабибуллин, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Java 7 [Наиболее полное руководство] - читать онлайн бесплатно ознакомительный отрывок

Java 7 [Наиболее полное руководство] - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Ильдар Хабибуллин
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

j ava.math.

Класс BigDecimal

Класс BigDecimal расположен в пакете j ava.math. Каждый объект этого класса хранит два целочисленных значения: мантиссу вещественного числа в виде объекта класса BigInteger и неотрицательный десятичный порядок числа типа int. Например, для числа 76,34862 будет храниться мантисса 7 634 862 в объекте класса BigInteger и порядок 5 как целое число типа int. Таким образом, мантисса может содержать любое количество цифр, а порядок ограничен значением константы Integer.MAX_VALUE.

Результат операции над объектами класса BigDecimal округляется по одному из восьми правил, определяемых следующими статическими целыми константами:

□ round_ceiling — округление в сторону большего целого;

□ round_down — округление к нулю, к меньшему по модулю целому значению;

□ round_floor — округление к меньшему целому;

□ round_half_down — округление к ближайшему целому, среднее значение округляется к меньшему целому;

□ round_half_even — округление к ближайшему целому, среднее значение округляется к четному числу;

□ round_half_up — округление к ближайшему целому, среднее значение округляется к большему целому;

□ round_unnecessary — предполагается, что результат будет целым, и округление не понадобится;

□ round_up — округление от нуля, к большему по модулю целому значению.

Три константы — zero, one и ten — моделируют вещественные нуль, единицу и вещественное число десять в операциях с объектами класса BigDecimal.

В классе BigDecimal около двадцати конструкторов. Четыре из них были введены еще в Java 2.

□ BigDecimal (BigInteger bi) - объект будет хранить большое целое bi, порядок равен

нулю;

□ BigDecimal(BigInteger mantissa, int scale) — задается мантисса mantissa и неотрицательный порядок scale объекта; если порядок scale отрицателен, возникает исключительная ситуация;

□ BigDecimal(double d) — объект будет содержать вещественное число удвоенной точности d; если значение d бесконечно или NaN, то возникает исключительная ситуация;

□ BigDecimal (String val) - число задается строкой символов val, которая должна со

держать запись числа по правилам языка Java.

При использовании третьего из перечисленных конструкторов возникает неприятная особенность, отмеченная в документации. Поскольку вещественное число при переводе в двоичную форму представляется, как правило, бесконечной двоичной дробью, то при создании объекта, например BigDecimal (0.1), мантисса, хранящаяся в объекте, окажется очень большой. Она показана на рис. 4.5. Но при создании такого же объекта четвертым конструктором, BigDecimal ("0.1"), мантисса будет равна просто 1.

Остальные конструкторы определяют точность представления числового значения объекта и правила его округления с помощью объекта класса MathContext или непосредственно.

В классе переопределены методы doubleValue (), floatValue (), intValue (), longValue ( ).

Три константы — zero, one и ten — моделируют нуль, единицу и число десять в операциях с объектами класса BigDecimal.

Большинство методов этого класса моделируют операции с вещественными числами. Они возвращают объект класса BigDecimal. Ниже в описании методов буква x обозначает объект класса BigDecimal, буква n — целое значение типа int, буква r — способ округления, одну из восьми перечисленных ранее констант:

□ abs () — абсолютное значение объекта this;

□ add (x) — операция сложения this + x;

□ divide (x, r) — операция деления this / x с округлением по способу r;

□ divide (x, n, r) — операция деления this / x с изменением порядка и округлением по способу r;

□ max(x) — наибольшее из this и x;

□ min(x) — наименьшее из this и x;

□ movePointLeft (n) — сдвиг влево на n разрядов;

□ movePointRight(n) — сдвиг вправо на n разрядов;

□ multiply(x) — операция умножения this * x;

□ negate () — возвращает объект с обратным знаком;

□ scale () — возвращает порядок числа;

□ setScale(n) — устанавливает новый порядок n;

□ setScale (n, r) — устанавливает новый порядок n и округляет число при необходимости по способу r;

□ signum () — знак числа, хранящегося в объекте;

□ subtract (x) — операция вычитания this — x;

□ toBiginteger () — округление числа, хранящегося в объекте;

□ unscaledValue () — возвращает мантиссу числа;

□ upl () — возвращает расстояние до следующего числа.

Листинг 4.7 показывает примеры использования этих методов, а рис. 4.5 — вывод результатов.

Начиная с версии Java SE 5 в класс BigDecimal введено еще много методов преобразования объекта и получения его характеристик.

Листинг 4.7. Методы классаBigDecimal в программеBigDecimalTest

import java.math.*; class BigDecimalTest{

public static void main(String[] args){

BigDecimal x = new BigDecimal("-12345.67890123456789");

BigDecimal y = new BigDecimal("345.7896e-4");

BigDecimal z = new BigDecimal(new BigInteger("123456789"), 8); System.out.println("|x| = " + x.abs());

System.out.println("x + y = " + x.add(y));

System.out.println("x / y = " + x.divide(y, BigDecimal.ROUND DOWN)); System.out.println("x / y = " + x.divide(y, 6, BigDecimal.ROUND HALF EVEN)); System.out.println("max(x, y) = " + x.max(y));

System.out.println("min(x, y) = " + x.min(y));

System.out.println("x << 3 = " + x.movePointLeft(3)); System.out.println("x >> 3 = " + x.movePointRight(3)); System.out.println("x * y = " + x.multiply(y)); System.out.println("-x = " + x.negate());

System.out.println("scale of x = " + x.scale());

System.out.println("increase scale of x to 20 = " + x.setScale(20)); System.out.println("decrease scale of x to 10 = " + x.setScale(10, BigDecimal.ROUND HALF UP));

System.out.println("sign(x) = " + x.signum());

System.out.println("x — y = " + x.subtract(y)); System.out.println("round x = " + x.toBigInteger()); System.out.println("mantissa of x = " + x.unscaledValue()); System.out.println("mantissa of 0.1 =\n= " +

new BigDecimal(0.1).unscaledValue());

}

}

Рис 45Методы класса BigDecimal в программе BigDecimalTest Приведем еще - фото 20
Рис. 4.5.Методы класса BigDecimal в программе BigDecimalTest

Приведем еще один пример. Напишем простенький калькулятор, выполняющий четыре арифметических действия с числами любой величины. Он работает из командной строки. Программа представлена в листинге 4.8, а примеры использования калькулятора — на рис. 4.6.

Листинг 4.8. Простейший калькулятор

import java.math.*; class Calc{

public static void main(String[] args){ if (args.length < 3){

System.err.println("Usage: java Calc operand operator operand"); return;

}

BigDecimal a = new BigDecimal(args[0]);

BigDecimal b = new BigDecimal(args[2]); switch (args[1].charAt(0)){

case ' + ':
case '-':
case '*':
case ■/' :
default :

System.out.println(a.add(b)); break;

System.out.println(a.subtract(b)); break; System.out.println(a.multiply(b)); break; System.out.println(a.divide(b,

BigDecimal.ROUND_HAL F_EVEN)); break; System.out.println("Invalid operator");

}

Рис 46Результаты работы калькулятора Почему символ умножения звездочка - фото 21
Рис. 4.6.Результаты работы калькулятора

Почему символ умножения — звездочка — заключен на рис. 4.6 в кавычки? Приверженцам ОС UNIX это понятно, а для других дадим краткое пояснение.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Ильдар Хабибуллин читать все книги автора по порядку

Ильдар Хабибуллин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Java 7 [Наиболее полное руководство] отзывы


Отзывы читателей о книге Java 7 [Наиболее полное руководство], автор: Ильдар Хабибуллин. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x