SlideShare a Scribd company logo
1 of 26
Download to read offline
Курс по Java, 2016
Логи, фасады, библиотеки
и коллекции
slf4j, maven repo, collections framework
annie.tarasenko@7bits.it, denis.nelubin@7bits.it
Курс по Java, 2016
Журналы
System.out.println("Hello");
System.err.println("World");
new Exception("stack").printStackTrace();
Hello
World
java.lang.Exception: stack
at it.sevenbits.example.logs.OutPrint.main(OutPrint.java:
8)
Не надо
так!
Курс по Java, 2016
SLF4J
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
http://www.slf4j.org/
Курс по Java, 2016
SLF4J (Simple Logging Facade for Java)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SLF4JLogSample {
final static Logger logger =
LoggerFactory.getLogger(SLF4JLogSample.class);
public static void main(String[] args) {
logger.info("Hello");
logger.warn("World");
logger.error("error", new Exception("exception"));
}
}
Курс по Java, 2016
SLF4J
SLF4J: Failed to load class "org.slf4j.impl.
StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger
implementation
SLF4J: See http://www.slf4j.org/codes.
html#StaticLoggerBinder for further details.
Курс по Java, 2016
SLF4J
Курс по Java, 2016
SLF4J SimpleLogger
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
Курс по Java, 2016
SLF4J SimpleLogger
[main] INFO it.sevenbits.example.logs.SLF4JLogSample - Hello
[main] WARN it.sevenbits.example.logs.SLF4JLogSample - World
[main] ERROR it.sevenbits.example.logs.SLF4JLogSample -
error
java.lang.Exception: exception
at it.sevenbits.example.logs.SLF4JLogSample.main
(SLF4JLogSample.java:13)
Курс по Java, 2016
Logback
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
Курс по Java, 2016
Logback
12:13:58.659 [main] INFO it.sevenbits.example.logs.
SLF4JLogSample - Hello
12:13:58.670 [main] WARN it.sevenbits.example.logs.
SLF4JLogSample - World
12:13:58.696 [main] ERROR it.sevenbits.example.logs.
SLF4JLogSample - error
java.lang.Exception: exception
at it.sevenbits.example.logs.SLF4JLogSample.main
(SLF4JLogSample.java:13)
Курс по Java, 2016
Logback configuration (logback.xml)
<configuration>
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %
logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="warn">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Курс по Java, 2016
Logback configured
13:32:20.330 [main] WARN i.s.example.logs.SLF4JLogSample -
World
13:32:20.343 [main] ERROR i.s.example.logs.SLF4JLogSample -
error
java.lang.Exception: exception
at it.sevenbits.example.logs.SLF4JLogSample.main
(SLF4JLogSample.java:13)
Курс по Java, 2016
Log level
logger.trace("трассировка");
logger.debug("отладка");
logger.info("информирование");
logger.warn("предупреждение");
logger.error("ошибка");
Курс по Java, 2016
Оптимизации
String name = "World";
if (logger.isDebugEnabled()) {
logger.debug("Hello, {}!", name);
}
Курс по Java, 2016
Фасад
Курс по Java, 2016
Maven Central http://search.maven.org/
Курс по Java, 2016
Курс по Java, 2016
Collection Framework
Набор коллекций в java.util
С Java 1.2
Generic с Java 1.5
Курс по Java, 2016
java.util.List
List<String> listOfStrings;
listOfStrings.add("abc"); // добавление элемента
listOfStrings.size(); // размер коллекции
listOfStrings.contains("abc"); // проверка наличия элемента
listOfStrings.get(0); // получение элемента
for (String item : listOfStrings) {
// цикл по элементам
}
Курс по Java, 2016
Реализации List
List<String> arrayList = new ArrayList<String>();
List<String> linkedList = new LinkedList<String>();
Курс по Java, 2016
java.util.Map
Map<Integer, String> map;
map.put(5, "five"); // добавить значение по ключу
map.size(); // получить количество значений
map.containsKey(5); // проверить наличие ключа
map.containsValue("five"); // проверить наличие значения
map.get(5); // получить значение по ключу
for (Map.Entry<Integer, String> entry : map.entrySet()) {
// цикл по ключам и значениям
entry.getKey(); // ключ
entry.getValue(); // значение
}
Курс по Java, 2016
Реализации Map
Map<Integer, String> hashMap =
new HashMap<Integer, String>();
Map<Integer, String> treeMap =
new TreeMap<Integer, String>();
Курс по Java, 2016
Hashtable
Курс по Java, 2016
Red-black tree
Курс по Java, 2016
hashCode() и equals()
public class Entry {
public Integer key;
public String value;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Entry entry = (Entry) o;
if (key != null ? !key.equals(entry.key) : entry.key != null) return false;
return value != null ? value.equals(entry.value) : entry.value == null;
}
@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
return result;
}
}
Курс по Java, 2016
Домашнее задание
В Formatter:
● Устранить замечания по коду касательно исключений, пакетов,
интерфейсов
● Использовать Logger (SLF4J) везде, где нельзя применить unit-тесты
Если хотите получать индивидуальный отзыв на работу, нужно сдать
задание до 22:00 четверга, 28 апреля 2016 года.
Следующие занятия переносятся на 5 и 12 мая!
Почитать: https://habrahabr.ru/post/113145/

More Related Content

What's hot

Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиDotNetConf
 
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...CodeFest
 
RxJava
RxJavaRxJava
RxJavaAnjLab
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3Technopark
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Noveo
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаAnton Arhipov
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в SpringUnguryan Vitaliy
 
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Noveo
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.Igor Shkulipa
 
C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.Igor Shkulipa
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5Technopark
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsNoveo
 
Konstantin slisenko - Spring Framework
Konstantin slisenko - Spring FrameworkKonstantin slisenko - Spring Framework
Konstantin slisenko - Spring Frameworkbeloslab
 
Обработка ошибок и исключений
Обработка ошибок и исключенийОбработка ошибок и исключений
Обработка ошибок и исключенийitclub_kz
 
Загрузчики классов в Java - коллекция граблей
Загрузчики классов в Java - коллекция граблейЗагрузчики классов в Java - коллекция граблей
Загрузчики классов в Java - коллекция граблейAnton Arhipov
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Anton Moiseenko
 

What's hot (20)

Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметки
 
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...
CodeFest 2012. Захаров М. — Опыт разработки и внедрения решений интеграционно...
 
RxJava
RxJavaRxJava
RxJava
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
 
Scala On Rest
Scala On RestScala On Rest
Scala On Rest
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчика
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
 
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
 
C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.C++ STL & Qt. Занятие 05.
C++ STL & Qt. Занятие 05.
 
JSP
JSPJSP
JSP
 
C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
 
Konstantin slisenko - Spring Framework
Konstantin slisenko - Spring FrameworkKonstantin slisenko - Spring Framework
Konstantin slisenko - Spring Framework
 
Обработка ошибок и исключений
Обработка ошибок и исключенийОбработка ошибок и исключений
Обработка ошибок и исключений
 
Загрузчики классов в Java - коллекция граблей
Загрузчики классов в Java - коллекция граблейЗагрузчики классов в Java - коллекция граблей
Загрузчики классов в Java - коллекция граблей
 
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 5. Concurrency.
 

Viewers also liked

курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения7bits
 
Стажировка-2015. Разработка. Занятие 14. Twitter Flight
Стажировка-2015. Разработка. Занятие 14. Twitter FlightСтажировка-2015. Разработка. Занятие 14. Twitter Flight
Стажировка-2015. Разработка. Занятие 14. Twitter Flight7bits
 
Стажировка-2015. Разработка. Занятие 13. Сборка фронтенда
Стажировка-2015. Разработка. Занятие 13. Сборка фронтендаСтажировка-2015. Разработка. Занятие 13. Сборка фронтенда
Стажировка-2015. Разработка. Занятие 13. Сборка фронтенда7bits
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий7bits
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...7bits
 
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.7bits
 
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...7bits
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring7bits
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP7bits
 
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БДСтажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД7bits
 
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practicesСпецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices7bits
 
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open sourceСпецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source7bits
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод7bits
 
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)7bits
 
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.7bits
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения7bits
 
Стажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEMСтажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEM7bits
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты7bits
 
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки
Cпецкурс 2014, занятие 9 (1 часть). Языки разметкиCпецкурс 2014, занятие 9 (1 часть). Языки разметки
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки7bits
 
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.7bits
 

Viewers also liked (20)

курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения
 
Стажировка-2015. Разработка. Занятие 14. Twitter Flight
Стажировка-2015. Разработка. Занятие 14. Twitter FlightСтажировка-2015. Разработка. Занятие 14. Twitter Flight
Стажировка-2015. Разработка. Занятие 14. Twitter Flight
 
Стажировка-2015. Разработка. Занятие 13. Сборка фронтенда
Стажировка-2015. Разработка. Занятие 13. Сборка фронтендаСтажировка-2015. Разработка. Занятие 13. Сборка фронтенда
Стажировка-2015. Разработка. Занятие 13. Сборка фронтенда
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
 
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
Спецкурс-2015. Занятие 03. Абстракции, именование, документирование.
 
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP
 
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БДСтажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
 
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practicesСпецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
 
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open sourceСпецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
 
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
 
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
 
Стажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEMСтажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEM
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
 
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки
Cпецкурс 2014, занятие 9 (1 часть). Языки разметкиCпецкурс 2014, занятие 9 (1 часть). Языки разметки
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки
 
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
 

Similar to Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции

Обзор ES2015(ES6)
Обзор ES2015(ES6)Обзор ES2015(ES6)
Обзор ES2015(ES6)Alex Filatov
 
Модули в Java
Модули в JavaМодули в Java
Модули в JavaZheka Kozlov
 
Android - 01 - Java Basics
Android - 01 - Java BasicsAndroid - 01 - Java Basics
Android - 01 - Java BasicsNoveo
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
 
I tmozg js_school_jquery
I tmozg js_school_jqueryI tmozg js_school_jquery
I tmozg js_school_jqueryITmozg
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системеRoman Brovko
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт GuavaEgor Chernyshev
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
Scala: что, как и зачем?
Scala: что, как и зачем?Scala: что, как и зачем?
Scala: что, как и зачем?Roman Timushev
 
JPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerJPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerAnton Arhipov
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9JavaDayUA
 
2012.11.06 машинное обучение с помощью vw
2012.11.06 машинное обучение с помощью vw2012.11.06 машинное обучение с помощью vw
2012.11.06 машинное обучение с помощью vwИлья Трофимов
 
Илья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwИлья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwPavel Mezentsev
 
implementation of 'go'-like language constructions in scala (russian)
implementation of 'go'-like language constructions in scala (russian)implementation of 'go'-like language constructions in scala (russian)
implementation of 'go'-like language constructions in scala (russian)Ruslan Shevchenko
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentAnton Kirillov
 

Similar to Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции (20)

Обзор ES2015(ES6)
Обзор ES2015(ES6)Обзор ES2015(ES6)
Обзор ES2015(ES6)
 
Модули в Java
Модули в JavaМодули в Java
Модули в Java
 
Android - 01 - Java Basics
Android - 01 - Java BasicsAndroid - 01 - Java Basics
Android - 01 - Java Basics
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
 
I tmozg js_school_jquery
I tmozg js_school_jqueryI tmozg js_school_jquery
I tmozg js_school_jquery
 
Laravel 4 fwdays
Laravel 4 fwdaysLaravel 4 fwdays
Laravel 4 fwdays
 
Scala Rock-Painting
Scala Rock-PaintingScala Rock-Painting
Scala Rock-Painting
 
course js day 2
course js day 2course js day 2
course js day 2
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт Guava
 
Bytecode
BytecodeBytecode
Bytecode
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
Scala: что, как и зачем?
Scala: что, как и зачем?Scala: что, как и зачем?
Scala: что, как и зачем?
 
JPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerJPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profiler
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9
 
2012.11.06 машинное обучение с помощью vw
2012.11.06 машинное обучение с помощью vw2012.11.06 машинное обучение с помощью vw
2012.11.06 машинное обучение с помощью vw
 
Илья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vwИлья Трофимов - машинное обучение с помощью vw
Илья Трофимов - машинное обучение с помощью vw
 
Kotlin
KotlinKotlin
Kotlin
 
implementation of 'go'-like language constructions in scala (russian)
implementation of 'go'-like language constructions in scala (russian)implementation of 'go'-like language constructions in scala (russian)
implementation of 'go'-like language constructions in scala (russian)
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application Development
 

More from 7bits

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? 7bits
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта7bits
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать7bits
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи 7bits
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE 7bits
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT7bits
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web7bits
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java7bits
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub7bits
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию7bits
 
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...7bits
 
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложений
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложенийСтажировка-2015. Разработка. Занятие 11. Безопасность web-приложений
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложений7bits
 

More from 7bits (12)

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию
 
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
 
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложений
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложенийСтажировка-2015. Разработка. Занятие 11. Безопасность web-приложений
Стажировка-2015. Разработка. Занятие 11. Безопасность web-приложений
 

Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции

  • 1. Курс по Java, 2016 Логи, фасады, библиотеки и коллекции slf4j, maven repo, collections framework annie.tarasenko@7bits.it, denis.nelubin@7bits.it
  • 2. Курс по Java, 2016 Журналы System.out.println("Hello"); System.err.println("World"); new Exception("stack").printStackTrace(); Hello World java.lang.Exception: stack at it.sevenbits.example.logs.OutPrint.main(OutPrint.java: 8) Не надо так!
  • 3. Курс по Java, 2016 SLF4J <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> http://www.slf4j.org/
  • 4. Курс по Java, 2016 SLF4J (Simple Logging Facade for Java) import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SLF4JLogSample { final static Logger logger = LoggerFactory.getLogger(SLF4JLogSample.class); public static void main(String[] args) { logger.info("Hello"); logger.warn("World"); logger.error("error", new Exception("exception")); } }
  • 5. Курс по Java, 2016 SLF4J SLF4J: Failed to load class "org.slf4j.impl. StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes. html#StaticLoggerBinder for further details.
  • 6. Курс по Java, 2016 SLF4J
  • 7. Курс по Java, 2016 SLF4J SimpleLogger <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.21</version> </dependency>
  • 8. Курс по Java, 2016 SLF4J SimpleLogger [main] INFO it.sevenbits.example.logs.SLF4JLogSample - Hello [main] WARN it.sevenbits.example.logs.SLF4JLogSample - World [main] ERROR it.sevenbits.example.logs.SLF4JLogSample - error java.lang.Exception: exception at it.sevenbits.example.logs.SLF4JLogSample.main (SLF4JLogSample.java:13)
  • 9. Курс по Java, 2016 Logback <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.7</version> </dependency>
  • 10. Курс по Java, 2016 Logback 12:13:58.659 [main] INFO it.sevenbits.example.logs. SLF4JLogSample - Hello 12:13:58.670 [main] WARN it.sevenbits.example.logs. SLF4JLogSample - World 12:13:58.696 [main] ERROR it.sevenbits.example.logs. SLF4JLogSample - error java.lang.Exception: exception at it.sevenbits.example.logs.SLF4JLogSample.main (SLF4JLogSample.java:13)
  • 11. Курс по Java, 2016 Logback configuration (logback.xml) <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level % logger{36} - %msg%n</pattern> </encoder> </appender> <root level="warn"> <appender-ref ref="STDOUT" /> </root> </configuration>
  • 12. Курс по Java, 2016 Logback configured 13:32:20.330 [main] WARN i.s.example.logs.SLF4JLogSample - World 13:32:20.343 [main] ERROR i.s.example.logs.SLF4JLogSample - error java.lang.Exception: exception at it.sevenbits.example.logs.SLF4JLogSample.main (SLF4JLogSample.java:13)
  • 13. Курс по Java, 2016 Log level logger.trace("трассировка"); logger.debug("отладка"); logger.info("информирование"); logger.warn("предупреждение"); logger.error("ошибка");
  • 14. Курс по Java, 2016 Оптимизации String name = "World"; if (logger.isDebugEnabled()) { logger.debug("Hello, {}!", name); }
  • 15. Курс по Java, 2016 Фасад
  • 16. Курс по Java, 2016 Maven Central http://search.maven.org/
  • 18. Курс по Java, 2016 Collection Framework Набор коллекций в java.util С Java 1.2 Generic с Java 1.5
  • 19. Курс по Java, 2016 java.util.List List<String> listOfStrings; listOfStrings.add("abc"); // добавление элемента listOfStrings.size(); // размер коллекции listOfStrings.contains("abc"); // проверка наличия элемента listOfStrings.get(0); // получение элемента for (String item : listOfStrings) { // цикл по элементам }
  • 20. Курс по Java, 2016 Реализации List List<String> arrayList = new ArrayList<String>(); List<String> linkedList = new LinkedList<String>();
  • 21. Курс по Java, 2016 java.util.Map Map<Integer, String> map; map.put(5, "five"); // добавить значение по ключу map.size(); // получить количество значений map.containsKey(5); // проверить наличие ключа map.containsValue("five"); // проверить наличие значения map.get(5); // получить значение по ключу for (Map.Entry<Integer, String> entry : map.entrySet()) { // цикл по ключам и значениям entry.getKey(); // ключ entry.getValue(); // значение }
  • 22. Курс по Java, 2016 Реализации Map Map<Integer, String> hashMap = new HashMap<Integer, String>(); Map<Integer, String> treeMap = new TreeMap<Integer, String>();
  • 23. Курс по Java, 2016 Hashtable
  • 24. Курс по Java, 2016 Red-black tree
  • 25. Курс по Java, 2016 hashCode() и equals() public class Entry { public Integer key; public String value; @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Entry entry = (Entry) o; if (key != null ? !key.equals(entry.key) : entry.key != null) return false; return value != null ? value.equals(entry.value) : entry.value == null; } @Override public int hashCode() { int result = key != null ? key.hashCode() : 0; result = 31 * result + (value != null ? value.hashCode() : 0); return result; } }
  • 26. Курс по Java, 2016 Домашнее задание В Formatter: ● Устранить замечания по коду касательно исключений, пакетов, интерфейсов ● Использовать Logger (SLF4J) везде, где нельзя применить unit-тесты Если хотите получать индивидуальный отзыв на работу, нужно сдать задание до 22:00 четверга, 28 апреля 2016 года. Следующие занятия переносятся на 5 и 12 мая! Почитать: https://habrahabr.ru/post/113145/