Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

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-разрядных
    значений.

17

Выпускное задание
Реализовать приложение, которое
максимально повторяет функциональность
стандартного калькулятора Android.

18

Литература

    http://docs.oracle.com/javase/1.5.0/docs/api/

    http://www.log4j.ru/

19

Спасибо за внимание!

More Related Content

Лекция 6

  • 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-разрядных значений.
  • 17. Выпускное задание Реализовать приложение, которое максимально повторяет функциональность стандартного калькулятора Android.
  • 18. Литература  http://docs.oracle.com/javase/1.5.0/docs/api/  http://www.log4j.ru/