SlideShare a Scribd company logo
Курс по Java/Android
Занятие 6
Александр Русин
e-mail: alexander.rusin@simbirsoft.com
Android Developer
Mаth

Во-первых, идеальное представление вещественных чисел
является бесконечным, в то время как представление в
Java ограничено числом бит.

Во вторых использовании двоичного, а не десятичного
представления чисел

Дроби как, например, 1/5 и 7/50, которые точно
представимы в десятичной нотации (0.2 и 0.14
соответственно) оказываются периодическими в
двоичном коде. Эта проблема аналогична трудностям в
представлении периодических дробей, например 1/3 в
десятичном коде (0.3333333...).
Логарифмы по основанию 10
Значением логарифма является число, в степень
которого должно быть возведено основание, чтобы
получить заданный результат.
public class Logarithms {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println(i + "t" +
Math.log10(i) + "t" + Math.log(i)+ "t" +
lg(i));
}
}
public static double lg(double x) {
return Math.log(x) / Math.log(2.0);
}
}
Кубические корни
public class CubeRoots {
public static void main(String[] args) {
for (int i = -5; i <= 5; i++) {
System.out.println(Math.cbrt(i));
}
}
}
Список функций

public static int abs(int a)

public static long abs(long a)

public static int max(int a, int b)

public static long max(long a, long b)

public static int min(int a, int b)

public static long min(long a, long b)

Список всех функций можно найти

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html
Логирование

Зачем нужно логирование?

Log4j

Наиболее известная библиотека для
логирования сообщений. Она позволяет
написать в java коде вызовы библиотеки и далее
гибко настраивать, не изменяя уже написанный
код.
Пример
import org.apache.log4j.Logger;
public class LogApp {
/**
* Hello world!
*/
public final static Logger LOG =
Logger.getLogger(LogApp.class);
public static void main(String[] args) {
LOG.info("Hello World!");
}
}
Логеры

Экземпляры класса org.apache.log4j.Logger, вызывая
методы которых в подсистему log4j посылается сообщение
для логгинга.

Приоритет

FATAL - произошла фатальная ошибка - у этого
сообщения наивысший приоритет

ERROR - в программе произошла ошибка

WARN - предупреждение в программе что-то не так

INFO - информация. К сведению трудящися.

DEBUG - детальная информация для отладки

TRACE - наиболее полная информация. трассировка
выполнения программы. Наиболее низкий приоритет.
Аппендеры

Объект который определяет что нужно
делать с логируемыми сообщениями.

Описываются в файле настроек
(log4j.xml)чтобы вывод логов в процессе
эксплуатации приложения можно было легко
менять.
Стандартные аппендеры.

org.apache.log4j.ConsoleAppender - наиболее часто
используемый во время разработки аппендер. Выводит
сообщения на консоль.

org.apache.log4j.FileAppender - просто записывает
логируемые сообщения в файл.

org.apache.log4j.DailyRollingFileAppender - тоже записывает
сообщения в файл но каждый день создаёт новый файл с
таким же именем.

org.apache.log4j.net.SMTPAppender - посылает сообщения
по электронной почте.
Util

Классы даты и времени

java.util.Calendar,

java.util.Date,

java.util.TimeZone.
Calendar

Абстрактный класс для работы с датами и
временем. Содержит большое количество
констант для дней недели и месяцев.

protected Calendar()

public static Calendar getInstance()

public static Calendar getInstance(TimeZone zone)

Создает экземпляр, настроенный на
текущий часовой пояс и локализацию дат.
Calendar

public final Date getTime()

public final void setTime(Date date)

protected long getTimeInMillis()

protected void setTimeInMillis(long millis)

Чтение и установка времени.

public final int get(int field)

public final void set(int field, int value)

Чтение и установка конкретного поля даты.

public void setTimeZone(TimeZone value)

Установка заданного часового пояса.
Date

Класс, представляющий дату и время.

public Date()

public Date(long date)

Устанавливает текущее значение времени
или заданное в миллисекундах от полночи 1
января 1970 года.

public long getTime()

public void setTime(long time)

Чтение и установка значений времени.
Random

Генератор псевдослучайных последовательностей.

public Random()

public Random(long seed)

Два экземпляра этого класса, инициализированные
одинаковыми значениями возвратят одинаковые
последовательности. По умолчанию
инициализируется текущим временем в
миллисекундах.

public void setSeed(long seed)

Инициализировать последовательность.
Random

protected int next(int bits)

Следующее псевдослучайное число.
Задается число младших бит, значение
которых будет вычислено.

public int nextInt()

Аналог next(32).

public long nextLong()

Возвращает псевдослучайное значение типа
long, составленное из двух 32-разрядных
значений.
Домашнее задние
Реализовать приложение, которое
выполняет 10 операций из стандартного
калькулятора.
Литература

http://docs.oracle.com/javase/1.5.0/docs/api/

http://www.log4j.ru/
Спасибо за внимание!

More Related Content

PPTX
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
PPTX
PDF
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
PPT
паскаль 10кл 14
PDF
C++ осень 2012 лекция 6
PDF
C++ Базовый. Занятие 13.
PPT
PDF
C++ STL & Qt. Занятие 09.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
паскаль 10кл 14
C++ осень 2012 лекция 6
C++ Базовый. Занятие 13.
C++ STL & Qt. Занятие 09.

What's hot (20)

PPTX
VAMR ACADEMY Второе занятие
PPT
Владислав Шаклеин. Смешивание управляемого и неуправляемого C++ кода в Micros...
PDF
C++ Базовый. Занятие 04.
PDF
20100321 virtualization igotti_lecture08
PDF
C++ осень 2013 лекция 2
PPT
переменные в Python
PPT
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
PPT
Типы данных
PPTX
переменные в Python
PPSX
PDF
Candidates for-php-developers-tests
PDF
C++ Базовый. Занятие 02.
PDF
Применение статического анализа при разработке программ
PDF
C++ Базовый. Занятие 03.
PDF
C++ STL & Qt. Занятие 06.
PDF
ИРБИС: Редактирование конвертора Rusm-Irbis
PPS
Язык программирования Pascal
PDF
C++ весна 2014 лекция 5
PPT
039
PDF
C++ Базовый. Занятие 01.
VAMR ACADEMY Второе занятие
Владислав Шаклеин. Смешивание управляемого и неуправляемого C++ кода в Micros...
C++ Базовый. Занятие 04.
20100321 virtualization igotti_lecture08
C++ осень 2013 лекция 2
переменные в Python
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
Типы данных
переменные в Python
Candidates for-php-developers-tests
C++ Базовый. Занятие 02.
Применение статического анализа при разработке программ
C++ Базовый. Занятие 03.
C++ STL & Qt. Занятие 06.
ИРБИС: Редактирование конвертора Rusm-Irbis
Язык программирования Pascal
C++ весна 2014 лекция 5
039
C++ Базовый. Занятие 01.
Ad

Viewers also liked (20)

PDF
PDF
PDF
Scala: что, как и зачем?
PDF
PDF
PDF
Scala for android
PDF
PDF
PDF
PDF
Backend: Пишем на Scala для браузера
PDF
Under the hood of scala implicits (kl10tch 10.03.2015)
PDF
PDF
Under the hood of scala implicits (Scala eXchange 2014)
PDF
Scala lecture #4
PDF
Feature suggester
PDF
Scala training
PPTX
Scala для всех (РИФ 2015)
Scala: что, как и зачем?
Scala for android
Backend: Пишем на Scala для браузера
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (Scala eXchange 2014)
Scala lecture #4
Feature suggester
Scala training
Scala для всех (РИФ 2015)
Ad

More from Alexander Rusin (6)

Lec 15

  • 1. Курс по Java/Android Занятие 6 Александр Русин e-mail: alexander.rusin@simbirsoft.com Android Developer
  • 2. Mаth  Во-первых, идеальное представление вещественных чисел является бесконечным, в то время как представление в Java ограничено числом бит.  Во вторых использовании двоичного, а не десятичного представления чисел  Дроби как, например, 1/5 и 7/50, которые точно представимы в десятичной нотации (0.2 и 0.14 соответственно) оказываются периодическими в двоичном коде. Эта проблема аналогична трудностям в представлении периодических дробей, например 1/3 в десятичном коде (0.3333333...).
  • 3. Логарифмы по основанию 10 Значением логарифма является число, в степень которого должно быть возведено основание, чтобы получить заданный результат. public class Logarithms { public static void main(String[] args) { for (int i = 1; i <= 100; i++) { System.out.println(i + "t" + Math.log10(i) + "t" + Math.log(i)+ "t" + lg(i)); } } public static double lg(double x) { return Math.log(x) / Math.log(2.0); } }
  • 4. Кубические корни public class CubeRoots { public static void main(String[] args) { for (int i = -5; i <= 5; i++) { System.out.println(Math.cbrt(i)); } } }
  • 5. Список функций  public static int abs(int a)  public static long abs(long a)  public static int max(int a, int b)  public static long max(long a, long b)  public static int min(int a, int b)  public static long min(long a, long b)  Список всех функций можно найти  http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html
  • 6. Логирование  Зачем нужно логирование?  Log4j  Наиболее известная библиотека для логирования сообщений. Она позволяет написать в java коде вызовы библиотеки и далее гибко настраивать, не изменяя уже написанный код.
  • 7. Пример import org.apache.log4j.Logger; public class LogApp { /** * Hello world! */ public final static Logger LOG = Logger.getLogger(LogApp.class); public static void main(String[] args) { LOG.info("Hello World!"); } }
  • 8. Логеры  Экземпляры класса org.apache.log4j.Logger, вызывая методы которых в подсистему log4j посылается сообщение для логгинга.  Приоритет  FATAL - произошла фатальная ошибка - у этого сообщения наивысший приоритет  ERROR - в программе произошла ошибка  WARN - предупреждение в программе что-то не так  INFO - информация. К сведению трудящися.  DEBUG - детальная информация для отладки  TRACE - наиболее полная информация. трассировка выполнения программы. Наиболее низкий приоритет.
  • 9. Аппендеры  Объект который определяет что нужно делать с логируемыми сообщениями.  Описываются в файле настроек (log4j.xml)чтобы вывод логов в процессе эксплуатации приложения можно было легко менять.
  • 10. Стандартные аппендеры.  org.apache.log4j.ConsoleAppender - наиболее часто используемый во время разработки аппендер. Выводит сообщения на консоль.  org.apache.log4j.FileAppender - просто записывает логируемые сообщения в файл.  org.apache.log4j.DailyRollingFileAppender - тоже записывает сообщения в файл но каждый день создаёт новый файл с таким же именем.  org.apache.log4j.net.SMTPAppender - посылает сообщения по электронной почте.
  • 11. Util  Классы даты и времени  java.util.Calendar,  java.util.Date,  java.util.TimeZone.
  • 12. Calendar  Абстрактный класс для работы с датами и временем. Содержит большое количество констант для дней недели и месяцев.  protected Calendar()  public static Calendar getInstance()  public static Calendar getInstance(TimeZone zone)  Создает экземпляр, настроенный на текущий часовой пояс и локализацию дат.
  • 13. Calendar  public final Date getTime()  public final void setTime(Date date)  protected long getTimeInMillis()  protected void setTimeInMillis(long millis)  Чтение и установка времени.  public final int get(int field)  public final void set(int field, int value)  Чтение и установка конкретного поля даты.  public void setTimeZone(TimeZone value)  Установка заданного часового пояса.
  • 14. Date  Класс, представляющий дату и время.  public Date()  public Date(long date)  Устанавливает текущее значение времени или заданное в миллисекундах от полночи 1 января 1970 года.  public long getTime()  public void setTime(long time)  Чтение и установка значений времени.
  • 15. Random  Генератор псевдослучайных последовательностей.  public Random()  public Random(long seed)  Два экземпляра этого класса, инициализированные одинаковыми значениями возвратят одинаковые последовательности. По умолчанию инициализируется текущим временем в миллисекундах.  public void setSeed(long seed)  Инициализировать последовательность.
  • 16. Random  protected int next(int bits)  Следующее псевдослучайное число. Задается число младших бит, значение которых будет вычислено.  public int nextInt()  Аналог next(32).  public long nextLong()  Возвращает псевдослучайное значение типа long, составленное из двух 32-разрядных значений.
  • 17. Домашнее задние Реализовать приложение, которое выполняет 10 операций из стандартного калькулятора.