1. Вводный курс в Java
Занятие 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-разрядных
значений.