// API callback
related_results_labels_thumbs({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388"},"updated":{"$t":"2024-12-19T05:31:42.519+02:00"},"category":[{"term":"Interview"},{"term":"Java Developer"},{"term":"Front-End Developer Other"},{"term":"Java Developer (advanced)"},{"term":"JSP Servlets JSTL"},{"term":"Java core"},{"term":"Java Collections Framework"},{"term":"Spring Framework"},{"term":"Apache Ant"},{"term":"Bootstrap"},{"term":"Java 8"},{"term":"Java Persistence API"},{"term":"Java Questions List"},{"term":"Java Server Faces"},{"term":"JavaScript"},{"term":"Maven"},{"term":"Multithreading"},{"term":"ORM Hibernate"},{"term":"SQL"},{"term":"jQuery"},{"term":"Потоки ввода\/вывода в java"},{"term":"AngularJS"},{"term":"CSS"},{"term":"Front-End. Questions List"},{"term":"HTML"},{"term":"JDBC"},{"term":"JMS"},{"term":"JSON"},{"term":"Java Advanced. Questions List"},{"term":"Log4j"},{"term":"MongoDB"},{"term":"OOP"},{"term":"UML"},{"term":"Web services"},{"term":"XML"},{"term":"design patterns"},{"term":"Базы данных"},{"term":"Основы WEB"},{"term":"Сериализация"},{"term":"Тестирование JUNIT"}],"title":{"type":"text","$t":"Вопросы на собеседование Junior Java Developer."},"subtitle":{"type":"html","$t":"Вопросы и ответы на собеседование Java Junior Developer."},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/-\/Java+Developer?alt=json-in-script\u0026max-results=8"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/search\/label\/Java%20Developer"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"},{"rel":"next","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/-\/Java+Developer\/-\/Java+Developer?alt=json-in-script\u0026start-index=9\u0026max-results=8"}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"32"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"8"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-7783622977873258717"},"published":{"$t":"2016-12-20T08:02:00.001+02:00"},"updated":{"$t":"2016-12-20T08:02:44.394+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java core"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование Java core (часть 4)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli style=\"text-align: left;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EЧто такое рефлексия?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРефлексия используется для получения или модификации информации о типах во время выполнения программы. Этот механизм позволяет получить сведения о классах, интерфейсах, полях, методах, конструкторах во время исполнения программы. При этом не нужно знать имена классов, методов или интерфейсов. Также этот механизм позволяет создавать новые объекты, выполнять методы и получать и устанавливать значения полей.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli style=\"text-align: left;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EЧто произойдет со сборщиком мусора (GC), если во время выполнения метода finalize() некоторого объекта произойдет исключение?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВо время старта JVM запускается поток finalizer, который работает в фоне. Этот поток имеет метод runFinalizer, который игнорирует все исключения методов finalize объектов перед сборкой мусора.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EТо есть если во время выполнения метода finalize возникнет исключительная ситуация, его выполнение будет остановлено и это никак не скажется на работоспособности самого сборщика мусора (garbage collector).\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое интернационализация, локализация?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИнтернационализация (internationalization, а для краткости - i18n) - такой способ создания приложений, при котором их можно легко адаптировать для разных аудиторий, говорящих на разных языках.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЛокализацияlocalization а для краткости - l10n) - \u0026nbsp;адаптация интерфейса приложения под несколько языков. Добавление нового языка может внести определенные сложности в локализацию интерфейса.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003EЧто такое Аннотации в Java?\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\n\u003C\/span\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАннотации - это своего рода метатеги, которые добавляются к коду и применяются к объявлению пакетов, классов, конструкторов, методов, полей, параметров и локальных переменных. Аннотации всегда обладают некоторой информацией и связывают эти \"дополнительные данные\" и все перечисленные конструкции языка.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EФактически аннотации представляют собой их дополнительные модификаторы, применение которых не влечет за собой изменений ранее созданного кода.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие функции выполняет Аннотации?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EАннотация выполняет следующие функции:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Col\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eдает необходимую информацию для компилятора;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eдает информацию различным инструментам для генерации другого кода, конфигураций и т. д.;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eможет использоваться во время работы кода;\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EСамая часто встречаемая аннотация, которую встречал любой программист, даже начинающий это @Override.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие встроенные аннотации в Java вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ языке Java SE определено несколько встроенных аннотаций, большинство из их являются специализированными. Четыре типа @Retention, @Documented, @Target и @Inherited - из пакета java.lang.annotation.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИз оставшиеся выделяются - @Override, @Deprecated, @SafeVarargs и @SuppressWarnings - из пакета java.lang. Широкое использование аннотаций в различных технологиях и фреймворках обуславливается возможностью сокращения кода и снижения его связанности.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто делают аннотации @Retention, @Documented, @Target и @Inherited?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EЭти аннотации, имеют следующее значение:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Retention - эта аннотация предназначена для применения только в качестве аннотации к другим аннотациям, позволяет указать жизненный цикл аннотации: будет она присутствовать только в исходном коде, в скомпилированном файле, или она будет также видна и в процессе выполнения. Выбор нужного типа зависит от того, как вы хотите использовать аннотацию.\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Documented - это маркер-интерфейс, который сообщает инструменту, что аннотация должна быть документирована.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target - эта аннотация задает тип объявления, к которым может быть применима аннотация. Принимает один аргумент, который должен быть константой из перечисления ElementType, это может быть поле, метод, тип и т.д. Например, чтобы указать, что аннотация применима только к полям и локальным переменным: @Targer({ ElementType.FIELD, ElementTyle.LOCAL_VARIABLE } )\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Inherited - это аннотация-маркер, которая может применяться в другом объявление аннотации, она касается только тех аннотаций, что будут использованы в объявлениях классов. Эта аннотация позволяет аннотации супер класса быть унаследованной в подклассе.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто делают аннотации @Override, @Deprecated, @SafeVarargs и @SuppressWarnings?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EЭти аннотации предназначены для:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Override - аннотация-маркер, которая может применяться только к методам. Метод, аннотированный как @Override, должен переопределять метод супер класса.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Deprecated - указывает, что объявление устарело и должно быть заменено более новой формой.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@SafeVarargs - аннотация-маркер, применяется к методам и конструкторам. Она указывает, что никакие небезопасные действия, связанные с параметром переменного количества аргументов, недопустимы. Применяется только к методам и конструкторам с переменным количеством аргументов, которые объявлены как static или final.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@SuppressWarnings - эта аннотация указывает, что одно или более предупреждений, которые могут быть выданы компилятором следует подавить.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой жизненный цикл аннотации можно указать с помощью @Retention?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EСуществует 3 возможные варианты чтобы указать где аннотация будет жить. Они инкапсулированы в перечисление java.lang.annotation.RetentionPolicy. Это SOURSE, CLASS, RUNTIME.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ESOURCE - содержаться только в исходном файле и отбрасываются при компиляции.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECLASS - сохраняются в файле, однако они недоступны JVM во время выполнения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ERUNTIME - сохраняются в файле во время компиляции и остаются доступными JVM во время выполнения.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EК каким элементам можно применять аннотацию, как это указать?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EДля того чтобы ограничить использование аннотации её нужно проаннотировать. Для этого существует аннотация @Target.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.PACKAGE) - только для пакетов;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.TYPE) - только для классов;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.CONSTRUCTOR) - только для конструкторов;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.METHOD) - только для методов;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.FIELD) - только для атрибутов(переменных) класса;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.PARAMATER) - только для параметров метода;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@Target(ElementType.LOCAL_VARIABLE) - только для локальных переменных.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EВ случае если вы хотите, что бы ваша аннотация использовалась больше чем для одного типа параметров, то можно указать @Target следующим образом:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi9pCn_HX_e-A3fE-xkiRugUibBJobFi0u9OTcRgkupxzVTQim9vgJjzXlYvf1R7udR5jKXUPzImNYnvqoDiPSBWwk1IT2RDuBPbcwgokciXOqoU8DXNiOre0zwdstW-CzAqAhTTs9WKnY\/s1600\/q075_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cimg border=\"0\" height=\"26\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi9pCn_HX_e-A3fE-xkiRugUibBJobFi0u9OTcRgkupxzVTQim9vgJjzXlYvf1R7udR5jKXUPzImNYnvqoDiPSBWwk1IT2RDuBPbcwgokciXOqoU8DXNiOre0zwdstW-CzAqAhTTs9WKnY\/s640\/q075_p01.jpg\" width=\"640\" \/\u003E\u003C\/span\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eтут мы говорим, аннотацию можно использовать только для параметров метода и для локальных переменных.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак создать свою Аннотацию?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EНаписать свою аннотацию не так сложно, как могло бы казаться. В следующем коде приведено объявление аннотации.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi5NbFr9hBOjK-xu2XxGDggpJeOiLpzmkcGwzbwCV39DRlhaP-xkG8JEHJ9ksJZM1t724zFuXtRZ6tSOoU7tP5maUcCf1E3Egy2sDaDhnS44X6hhXsq48qON0o1-IIaGOaGKvvnDMIIl8s\/s1600\/q076_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cimg border=\"0\" height=\"64\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi5NbFr9hBOjK-xu2XxGDggpJeOiLpzmkcGwzbwCV39DRlhaP-xkG8JEHJ9ksJZM1t724zFuXtRZ6tSOoU7tP5maUcCf1E3Egy2sDaDhnS44X6hhXsq48qON0o1-IIaGOaGKvvnDMIIl8s\/s640\/q076_p01.jpg\" width=\"640\" \/\u003E\u003C\/span\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eкак вы видите на месте где обычно пишут class или interface у нас написано @interface.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтруктура практически та же, что и у интерфейсов, только пишется @interface.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E@interface - указывает на то, что это аннотация\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Edefault - говорит про то, что метод по умолчанию будет возвращать определённое значение.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАннотация готова теперь ею можно пользоваться, также аннотацию можно сконфигурировать.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАтрибуты каких типов допустимы в аннотациях?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: left;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EАтрибуты могут иметь только следующие типы:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eпримитивы\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EString\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EClass или «any parameterized invocation of Class»\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eenum\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eannotation\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eмассив элементов любого из вышеперечисленных типов\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПоследний пункт надо понимать как то, что допустимы только одномерные массивы.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое \u0026nbsp;JMX?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУправленческие расширения Java (Java Management Extensions, JMX) - \u0026nbsp;API при помощи которого можно контролировать работу приложений и управлять различными параметрами удаленно в реальном времени. Причем управлять можно фактически чем угодно - лишь бы это было написано на Java. Это может быть микро-устройство типа считывателя отпечатка или система, включающая тысячи машин, каждая из которых предоставляет определенные сервисы. Данные ресурсы представляются MBean-объектами (управляемый Java Bean). JMX вошла в поставку Java начиная с версии 5.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие выгоды предлагает JMX?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВот как эти выгоды описывает Sun\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПростота реализации. Архитектура JMX основана на понятии \"сервера управляемых объектов\" который выступает как управляющий агент и может быть запущен на многих устройствах\/компьютерах, которые поддерживают JAVA.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМасштабируемость. Службы агентов JXM являются независимыми и могут быть встроены наподобие plug-in’ов в агента JMX. Компонентно-основанаая система позволяет создавать масштабируемые решения от крохотных устройств до очень крупных систем.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВозможность расширять концепцию в будущем. JMX позволяет создавать гибкие решения. Например, JMX позволяет создавать удобные решения, которые могут находить различные сервисы.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКонцентрация на управлении. JMX предоставляет сервися, разработанные для работы в распределенных средах и его API спроектировано для решений, которые управляют приложениями, сетями, сервисами и т.д.\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто еще умеет JMX кроме дистанционного управления?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJMX делает гораздо больше, чем просто предоставляет рабочую оболочку для дистанционного управления. Она обеспечивает дополнительные услуги (services), способные занять ключевое место в процессе разработки. Приведу лишь краткое описание:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EEvent notification: Интерфейсы оповещают исполнителей и слушателей о событиях типа изменения атрибута, что позволяет MBean-компонентам общаться с другими MBean-компонентами или удалённым \"командным пунктом\" и докладывать об изменениях своего состояния\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EMonitor service: Monitor MBeans может посылать уведомления о событиях зарегистрированным слушателям. Слушателем может выступать другой MBean или управляющее приложение. В качестве основных атрибутов, для которых используется данное свойство, являются counter, gauge или string.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ETimer service: Timer MBean будет посылать уведомления зарегистрированным слушателям, с учётом определённого числа или временного промежутка.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EM-let service: М-let service может создавать и регистрировать экземпляры MBean-серверов. Список MBean-компонентов и имён из классов определяются в m-let-файле с помощью MLET -меток. URL указывает на месторасположения m-let-файла.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое MBean?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EMBeans - это Java-объекты, которые реализуют определенный интерфейс. Интерфейс включает:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Col\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eнекие величины, которые могут быть доступны;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eоперации, которые могут быть вызваны;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eизвещения, которые могут быть посланы;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eконструкторы.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие типы MBeans существуют?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСуществует 4 типа MBeans:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EStandard MBeans. Самые простые бины. Их управляющий интерфейс определяется набором методов\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EDynamic MBeans. Они реализуют специализированный интерфейс, который делают доступным во время исполнения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EOpen MBeans. Это Dynamic MBeans, которые используют только основные типы данных для универсального управления.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EModel MBeans. Это Dynamic MBeans, которые полностью конфигурируемы и могут показать свое описание во время исполнения (нечто вроде Reflection)\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое MBean Server?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EMBean Server - это реестр объектов, которые используются для управления. Любой объект зарегистрированный на сервере становится доступным для приложений. Надо отметить, что сервер публикует только интерфейсы и не дает прямых ссылок на объекты. Любые ресурсы, которыми вы хотите управлять должны быть зарегистрированы на сервере как MBean. Сервер предоставляет стандартный интерфейс для доступа к MBean. Интересно, что регистрировать MBean может любой другой MBean, сам агент или удаленное приложение через распределенные сервисы. Когда вы регистрируете MBean вы должны дать ему уникальное имя, которое будет использовано для обращения к даному объекту.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие механизмы обеспечивают безопасность в технологии Java?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ технологии Java безопасность обеспечивают следующие три механизма:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eструктурные функциональные возможности языка (например, проверка границ массивов, запрет на преобразования непроверенных типов, отсутствие указателей и т.д.).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eсредства контроля доступа, определяющие действия, которые разрешается или запрещается выполнять в коде (например, может ли код получать доступ к файлам, передавать данные по сети и т.д.).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eмеханизм цифровой подписи, предоставляющий авторам возможность применять стандартные алгоритмы для аутентификации своих программ, а пользователям - точно определять, кто создал код и изменился ли он с момента его подписания.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНазовите несколько видов проверок которые выполняет верификатор байт-кода Java?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНиже приведены некоторые виды проверок, выполняемых верификатором.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eинициализация переменных перед их использованием.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eсогласование типов ссылок при вызове метода.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eсоблюдение правил доступа к закрытым данным и методам.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eдоступ к локальным переменным в стеке во время выполнения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eотсутствие переполнения стека.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПри невыполнении какой-нибудь из этих проверок класс считается поврежденным и загружаться не будет.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете о \"диспетчере защиты\" в Java?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ качестве диспетчера защиты служит класс, определяющий, разрешено ли коду выполнять ту или иную операцию. Ниже перечислены операции, подпадающие под контроль диспетчера защиты. Существует немало других проверок, выполняемых диспетчером защиты в библиотеке Java.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eсоздание нового загрузчика классов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eвыход из виртуальной машины.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eполучение доступа к члену другого класса с помощью рефлексии.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eполучение доступа к файлу.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eустановление соединения через сокет.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eзапуск задания на печать.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eполучение доступа к системному буферу обмена.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eполучение доступа к очереди событий в AWT.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eобращение к окну верхнего уровня.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое JAAS?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJAAS (Java Authentication and Authorization Service - служба аутентификации и авторизации Java ) - служба JAAS, по существу, представляет собой встраиваемый прикладной интерфейс API, отделяющий прикладные программы на Java от конкретной технологии, применяемой для реализации средств аутентификации. Помимо прочего, эта служба поддерживает механизмы регистрации в UNIX и NT, механизм аутентификации Kerberos и механизмы аутентификации по сертификатам.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПосле аутентификации за пользователем может быть закреплен определенный набор полномочий. Входит в состав платформы Java начиная с версии Java SE 1.4.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое Рефакторинг?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРефакторинг - процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований..\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\n\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/7783622977873258717\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/12\/java-core-4.html#comment-form","title":"Комментарии: 6"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/7783622977873258717"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/7783622977873258717"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/12\/java-core-4.html","title":"Ответы на вопросы на собеседование Java core (часть 4)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi9pCn_HX_e-A3fE-xkiRugUibBJobFi0u9OTcRgkupxzVTQim9vgJjzXlYvf1R7udR5jKXUPzImNYnvqoDiPSBWwk1IT2RDuBPbcwgokciXOqoU8DXNiOre0zwdstW-CzAqAhTTs9WKnY\/s72-c\/q075_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"6"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-8725341604236198226"},"published":{"$t":"2016-08-02T19:29:00.000+03:00"},"updated":{"$t":"2016-12-18T15:54:09.297+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Questions List"}],"title":{"type":"text","$t":"Список вопросов и ответов на собеседование Java Junior (продолжение). "},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/blog-post_12.html\"\u003EСериализация.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое сериализация?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак исключить поля из сериализации?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003Etransient что значит?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак изменить стандартное поведение сериализации\/десериализации?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВы создали класс, чей суперкласс сериализуемый, но при этом вы не хотите чтобы ваш класс был сериализуемым, как остановить сериализацию?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак создать собственный протокол сериализации?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакая роль поля serialVersionUID в сериализации?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем проблема сериализации Singleton-ов?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/blog-post_12.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ca name='more'\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/jdbc.html\"\u003EJDBC.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JDBC?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЭтапы работы с базой данных с использованием JDBC?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак создать Connection?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличается Statement от PreparedStatement?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак вызвать хранимую процедуру?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак правильно закрыть Connection?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть уровни изоляции транзакций?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типов чтения транзакций?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/jdbc.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/jsp-servlets-jstl.html\"\u003EJSP, Servlets, JSTL.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое сервлет?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакова структура веб-проекта?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое контейнер сервлетов? Жизненный цикл сервлета.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКаковы задачи, функциональность контейнера сервлетов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличается sendRedirect() от forward()?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто вы знаете о сервлет фильтрах?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЗачем нужны слушатели в сервлетах?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак обработать исключения, выброшенные другим сервлетом в приложении?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое дескриптор развертывания?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак реализовать запуск сервлета с запуском приложения?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто представляет собой объект ServletConfig?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто представляет собой объект ServletContext?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем отличия ServletContext и ServletConfig?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИнтерфейс ServletResponse.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИнтерфейс ServletRequest.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Request Dispatcher?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак можно создать блокировку (deadlock) в сервлете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак получить адрес сервлета на сервере?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак получить информацию о сервере из сервлета?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак получить ip адрес клиента на сервере?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто вы знаете о классах обертках (wrapper) для сервлетов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКаков жизненный цикл сервлета и когда какие методы вызываются?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие методы необходимо определить при создании сервлетов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ каком случае вы будете переопределять метод service()?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЕсть ли смысл определить конструктор для сервлета, как лучше инициализировать данные?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем отличия GenericServlet и HttpServlet?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак вызвать из сервлета другой сервлет этого же и другого приложения?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EСтоит ли волноваться о “многопоточной безопасности” работая с сервлетами?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакой метод HTTP не является неизменяемым?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть методы отправки данных с клиента на сервер? Чем они отличаются?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EМетоды сервлета (обычно имеется ввиду HttpServlet).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему HttpServlet класс объявлен как абстрактный?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между методами GET и POST?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите преимущества Servlet над CGI?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКаковы наиболее распространенные задачи выполняются в Servlet контейнере?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между PrintWriter и ServletOutputStream?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EМожем ли мы получить PrintWriter и ServletOutputStream одновременно в сервлете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EРасскажите об интерфейсе SingleThreadModel.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие существуют атрибуты у сервлетов и какая сфера их применения?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему необходимо переопределить только init() метод без аргументов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто означает URL encoding? Зачем нужны методы encode() и decode()?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЗачем нужны и чем отличаются методы encodeUrl() и encodeRedirectUrl()?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие различные методы управления сессией в сервлетах вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто означает URL Rewriting?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Cookie?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак применяются Cookies в сервлетах?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак уведомить объект в сессии, что сессия недействительна или закончилась?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакой существует эффективный способ удостоверится, что все сервлеты доступны только для пользователя с валидной сессией?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак мы можем обеспечить transport layer security для нашего веб приложения?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак организовать подключение к базе данных и обеспечить логирование log4j в сервлете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие особенности Servlet 3?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКаковы различные способы аутентификации сервлета?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Java Server Pages (JSP)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EОпишите, как обрабатываются JSP страницы, начиная от запроса к серверу, заканчивая ответом пользователю.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EРасскажите об этапах (фазах) жизненного цикла jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EРасскажите о методах жизненного цикла jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие методы жизненного цикла JSP могут быть переопределены?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак можно предотвратить прямой доступ к JSP странице из браузера?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакая разница между динамическим и статическим содержимым JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак закомментировать код в jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие основные теги в JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие типы EL операторов вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВзаимодействие JSP - сервлет - JSP.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое сессия?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие скоупы переменных существуют в JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие неявные, внутренние объекты и методы есть на jsp странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему неявные объекты не доступны в обычной JSP странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто вы знаете о PageContext и какие преимущества его использования?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак сконфигурировать init параметры для JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему не рекомендуется использовать скриптовые элементы в jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличается \u0026lt;c:import\u0026gt; от \u0026lt;jsp:include\u0026gt; и директиви \u0026lt;%@include %\u0026gt;?\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто вы знаете о jsp тегах? Объясните как вы понимаете Action tag и JSP Action Elements.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JSTL (Jsp Standard tag library)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИз каких групп тегов состоит библиотека JSTL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакая разница между тегом \u0026lt;c:set\u0026gt; и \u0026lt;jsp:useBean\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите неявные, внутренние объекты JSP EL и их отличия от объектов jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак узнать имя http метода используя JSP EL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто вы знаете о написании пользовательских jsp тегов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПриведите пример использования собственных тегов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему не нужно конфигурировать стандартные JSP теги в web.xml?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак можно обработать ошибки jsp страниц?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак происходит обработка ошибок с помощью jstl?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПриведите пример конфигурации JSP в дескрипторе развертывания.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак деактивировать использование EL на JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EМожно ли использовать javascript на jsp странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВсегда ли создается объект сессии на jsp странице, можно ли отключить его создание?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакая разница между JspWriter и Servlet PrintWriter?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак можно расширить функциональность jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/jsp-servlets-jstl.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cdiv style=\"font-size: medium; font-weight: normal;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/h3\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/blog-post_13.html\"\u003EБазы данных.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое База Данных?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EМодель данных в реляционных СУБД?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое нормализация?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типы связей в базе данных. Приведите пример.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое primary key (первичный ключ)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое foreign key (внешний ключ)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое индексы в базе данных? Для чего их используют? Чем они хороши и чем плохи?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типы индекса?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cdiv\u003E\n\u003C\/div\u003E\n\u003C\/h3\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/blog-post_13.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/sql-1.html\"\u003ESQL.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое SQL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типы JOIN'ов. Кратко опишите каждый из типов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое LEFT JOIN, RIGHT JOIN? Чем они отличаются?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДля чего используется слово HAVING?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое DDL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое DML?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое TCL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое DCL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакой общий синтаксис команди SELECT?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПро NULL в SQL.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЕсли вы собираетесь соединить несколько таблиц в запросе (например, n таблиц), сколько условий соединения вам нужно использовать?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакое практическое применение временных таблиц?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак оператор GROUP BY обрабатывает значение NULL? Ли это общем трактовке таких значений?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между COUNT (*) и COUNT (столбец)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между операторами DISTINCT и GROUP BY?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЕсть таблица table1 с колонками id и datetime написать запрос который вернет максимальное значение id и значение даты для этого id.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДля чего нужны операторы UNION, INTERSECT, EXCEPT?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто лучше использовать соединение или подзапросы?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто делает функция EXISTS?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИспользование оператора PIVOT.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EОпишите разницу типов данных DATETIME и TIMESTAMP.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДля каких числовых типов недопустимо использовать операцию сложения (вычитания), а значит и функцию SUM()?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое хранимые процедуры?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EФункции ранжирования что это и какие существует?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EМожет ли значение в столбце(ах), на который наложено ограничение foreign key, равняться null?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите основные свойства транзакции.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак удалить повторяющиеся строки с использованием ключевого слова Distinct?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКогда полное сканирование таблицы выгоднее доступа по индексу? Опишите вкратце общие принципы, как оптимизатор выбирает производить ли полное сканирование таблицы или доступ по индексу.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИмеет ли смысл индексировать поля таблицы, имеющих тип boolean или подобные им - с небольшим количеством возможных значений?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое агрегатная функция? Приведите примеры агрегатных функций в SQL.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДайте определение третьей нормальной форме БД.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое денормализация БД? Для чего она нужна?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое триггер?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое курсоры в базах данных?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие компромиссы предлагает использование индексов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто делает SQL операция MERGE?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем различие между выражениями HAVING и WHERE?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое целостность данных? Объясните, что такое ограничения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем отличие между кластерными индексами и некластерными?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие отличия между ограничениями primary и unique?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/sql-1.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/junit.html\"\u003EТестирование. JUNIT.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем стаб (stub) отличается от мока (mock)?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое unit testing?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Фикстуры?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть аннотации фикстур?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДля чего нужна Аннотация @Ignore?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое интеграционные тесты?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/junit.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/log4j.html\"\u003ELog4j.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИз чего состоит логгер?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть уровни сообщении в log4j?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Appender?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие основные аппендеры Log4j?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Layout?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/log4j.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/uml.html\"\u003EUML.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое UML?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Нотации и метамодель в UML?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типы диаграмм?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие отношение обобщения реа\u003C\/span\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eлизуется при наследовании классов.\u003C\/span\u003E\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/uml.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/xml.html\"\u003EXML.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое XML?\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак определяется корректность XML-документа?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем well-formed XML отличается от valid?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое пространство имен?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое простые типы в XSD?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое сложныетипы в XSD?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие элементы и атрибуты XSD Вы знаете? Кратко опишите их.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие существуют XML парсеры?\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое XPath?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое XQuery?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКаким парсером можно сделать изменения в XML структуре и сохранить в файл?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКратко опишите DOM, SAX, StAX анализаторы.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКогда следует использовать DOM, а когда - SAX, StAX анализаторы?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНедостатки XML DTD перед XML Schema\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EXML Schema - промышленный стандарт описания XML-документов\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое XSLT?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое маршаллизация и демаршализация?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JAXP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите основные пакеты JAXP.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JAXB?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/xml.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/design-patterns.html\"\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EDesign patterns.\u003C\/span\u003E\u003C\/a\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое шаблоны проектирования?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EИз каких элементов состоит шаблон?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть типы шаблонов?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите порождающие шаблоны, и кратко опишите их.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите шаблоны поведения, и кратко опишите их.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EНазовите структурные шаблоны, и кратко опишите их.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие антишаблоны вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое OOAD?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое OOD?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое OOA?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое DRY principles?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое KISS?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое YAGNI?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Yoda conditions?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое CRC cards?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое SOLID?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Single responsibility principle?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Open\/closed principle?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Liskov substitution principle?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Interface segregation principle?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Dependency inversion principle?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое GRASP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКратко опишите шаблоны GRAPS\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/design-patterns.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/html.html\"\u003EОсновы HTML.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое HTML?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое DOCTYPE и зачем он нужен?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличается div от span?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак обозначаются комментарии в HTML?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак задать адрес документа, на который следует перейти?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак сделать сcылку на имейл?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто делают теги \u0026lt;em\u0026gt;\u0026lt;\/em\u0026gt; ?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое \u0026lt;ol\u0026gt;\u0026lt;\/ol\u0026gt;, \u0026lt;ul\u0026gt;\u0026lt;\/ul\u0026gt; и \u0026lt;li\u0026gt;\u0026lt;\/li\u0026gt; ?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто пишут в теге HEAD?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЗачем нужны теги \u0026lt;dl\u0026gt;,\u0026lt;dt\u0026gt;,\u0026lt;dd\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЗачем нужны теги \u0026lt;tr\u0026gt;, \u0026lt;th\u0026gt;, \u0026lt;td\u0026gt; ?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ каком регистре лучше писать HTML-код?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EОбязательно ли писать alt в \u0026lt;img\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое entities?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/html.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/css.html\"\u003EОсновы CSS.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cul\u003E\u003C\/ul\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое CSS?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между записью #my и .my?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EВ чем разница между margin и padding?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EПочему таблицы стилей CSS называются каскадными?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое альтернативная таблица стилей?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакая разница между значениями 0 и auto в свойстве margin?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДля чего применяются свойства border-position и border-all?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакое свойство задает цвет фона?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак в CSS обозначаются комментарии?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак задать красный цвет для всех элементов, имеющих класс red?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак убрать подчеркивание для всех ссылок на странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКак сделать жирным текст во всех элементах \u0026lt;p\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто делает свойство clear?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/css.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/web.html\"\u003EОсновы WEB.\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое www?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое w3c?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое URI?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое URL?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое URN?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое интернет протокол IP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое протокол управления ТСР?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое TCP\/IP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое FTP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое UDP?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличаются HTTP и HTTPS?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое протокол передачи данных, какие вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое web server?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое web приложение?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое application server?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличаются web server и application server?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧем отличаются методы get и post?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое MIME type?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EДайте определение понятиям “авторизация” и “аутентификация”, в чем их различия?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое Ajax? Как принципиально устроена эта технология?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JSON?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое JSON Schema?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EКакие есть уровни модели OSI?\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003EЧто такое \u0026nbsp;websocket?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003Cul\u003E\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003C\/span\u003E\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\u003Ca href=\"http:\/\/jsehelper.blogspot.com\/2016\/01\/web.html\"\u003EПерейти к ответам ►►\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/8725341604236198226\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/08\/java-junior-interview-questions.html#comment-form","title":"Комментарии: 11"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/8725341604236198226"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/8725341604236198226"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/08\/java-junior-interview-questions.html","title":"Список вопросов и ответов на собеседование Java Junior (продолжение). "}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"thr$total":{"$t":"11"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-2095705036383019163"},"published":{"$t":"2016-05-25T07:52:00.000+03:00"},"updated":{"$t":"2016-11-02T19:59:46.306+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"},{"scheme":"http://www.blogger.com/atom/ns#","term":"JSP Servlets JSTL"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 4)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие скоупы переменных существуют в JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EExression Language - это переменные определенного скоупа, которые доступны через выражение ${…}, среди скоупов есть и скоуп page, но даже в этом скоупе переменная не является локальной для класса страницы. Поэтому мы просто так не можем в скриптлете обратиться к переменной из этих скоупов, в том числе и скоупа страницы. Скоупы бывают: page, request, session, application, response, out, config.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие неявные, внутренние объекты и методы есть на jsp странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP implicit objects (неявные объекты) создаются контейнером при конвертации JSP страницы в код сервлета для помощи разработчикам. Эти объекты можно использовать напрямую в скриптлетах для передачи информации в сервис методы, однако мы не можем использовать неявные объекты в JSP Declaration, т.к. такой код пойдет на уровень класса.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ca name='more'\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСуществует 9 видов неявных объектов, которые можно использовать прямо на JSP странице. Семь из них объявлены как локальные переменные вначале _jspService() метода, а два оставшихся могут быть использованы как аргументы метода _jspService().\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eout Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Erequest Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eresponse Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Econfig Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eapplication Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Esession Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EpageContext Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epage Object\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eexception Object\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПочему неявные объекты не доступны в обычной JSP странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНеявный объект исключений JSP недоступен в обычных JSP страницах и используется на страницах ошибок JSP только для того, чтобы перехватить исключение, брошенное JSP страницей и далее предоставить какую-либо полезную информацию клиенту.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете о PageContext и какие преимущества его использования?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНеявный объект JSP pageContext является экземпляром реализации абстрактного класса javax.servlet.jsp.PageContext. Мы можем использовать объект pageContext для получения и установки атрибутов с различной областью видимости и для проброса запросов к другому ресурсу. Этот объект так же обладает ссылкой на другой неявный объект. Это единственный объект, который представлен в JSP implicit objects и JSP EL implicit objects.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак сконфигурировать init параметры для JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМы можем задать параметры инициализации для JSP аналогично сервлетам в web.xml файле. Мы должны сконфигурировать init параметры JSP с элементами servlet и servlet-mapping. Единственным отличием будет указание местонахождения JSP страницы.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПочему не рекомендуется использовать скриптовые элементы в jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP страницы в основном используются для целей отображения представления, а вся бизнес логика и модели должны быть реализованы в сервлетах или классах моделях. Мы должны передавать параметры к JSP странице через атрибуты и затем использовать их для создания HTML ответа на JSP странице. Большая часть JSP содержит HTML код и для того, чтобы помочь дизайнерам понять код JSP страницы и разрабатывать их, предоставляют элементы action, JSP EL, JSP Standart Tag Library. Именно эти элементы необходимо использовать вместо скриптлетов для создания моста между JSP HTML и JSP java частями.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧем отличается \u0026lt;c:import\u0026gt; от \u0026lt;jsp:include\u0026gt; и директиви \u0026lt;%@include %\u0026gt;?\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EТег \u0026lt;c:import\u0026gt; получает доступ к источнику, чтение информации из которого происходит непосредственно без буферизации. Контент включается построчно в исходную JSP. По сравнению с action-тегом \u0026lt;jsp:include\u0026gt; и директивой \u0026lt;%@include %\u0026gt; тег \u0026lt;c:import\u0026gt; обеспечивает более совершенное включение динамических ресурсов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете о jsp тегах? Объясните как вы понимаете Action tag и JSP Action Elements.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP элементы или теги action предоставляют полезную функциональность для работы с Java Bean, вложения ресурсов, проброса запроса и создания динамических XML элементов. Элементы jsp action всегда начинаются с записи jsp: и мы можем использовать их прямо внутри страницы JSP без необходимости подключения библиотек или других настроек.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНаиболее часто используемыми элементами action являются: jsp:useBean, jsp:getProperty, jsp:setProperty, jsp:include, jsp:forward.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое JSTL (Jsp Standard tag library)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтандартная библиотека тегов JSP (англ. JavaServer Pages Standard Tag Library, JSTL) - расширение спецификации JSP, добавляющее библиотеку JSP тегов для общих нужд, таких как разбор XML данных, условная обработка, создание циклов и поддержка интернационализации.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSTL является альтернативой такому виду встроенной в JSP логики, как скриптлеты, то есть прямые вставки Java кода. Использование стандартизованного множества тегов предпочтительнее, поскольку получаемый код легче поддерживать и проще отделять бизнес-логику от логики отображения. Для использования JSTL тегов необходимо подключить библиотеку и указать на страницы пространство имен.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhksWayK33BO62ZWpm0wWEbvDyNEewbFQ5LePA6gM8ltcH7YyH5n-KtqhSaH096wJpRDjL8bztQZ5qG03buBAfVWdn24peZxEvMUU7NJqvECPGTfkXG_VYnQTLSAV7hgR3tMiuTmlBhFSg\/s1600\/q073_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhksWayK33BO62ZWpm0wWEbvDyNEewbFQ5LePA6gM8ltcH7YyH5n-KtqhSaH096wJpRDjL8bztQZ5qG03buBAfVWdn24peZxEvMUU7NJqvECPGTfkXG_VYnQTLSAV7hgR3tMiuTmlBhFSg\/s1600\/q073_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cspan style=\"text-align: justify;\"\u003EДля подключения пространства имен основных тегов JSTL необходимо указать на JSP странице код:\u003C\/span\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjp2tWXs_06OHrIGzVa5L3iZmwROBqTiqmklGJmmD2mwR-UukpzaL4vJPM_W5n-CKxKPcWhc9lSx_0uZygQr3ILk2Fl2ST-BHMlJ_DWm2V-wuzOIQqKbxunzDhh4D55K8xzCfFK4kjPANE\/s1600\/q073_p02.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" height=\"92\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjp2tWXs_06OHrIGzVa5L3iZmwROBqTiqmklGJmmD2mwR-UukpzaL4vJPM_W5n-CKxKPcWhc9lSx_0uZygQr3ILk2Fl2ST-BHMlJ_DWm2V-wuzOIQqKbxunzDhh4D55K8xzCfFK4kjPANE\/s640\/q073_p02.jpg\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИз каких групп тегов состоит библиотека JSTL?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EБиблиотека тегов JSTL состоит из пяти групп тегов:\u0026nbsp;\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECore Tags - основные теги, предоставляют возможности итерации, обработки исключений, url, forward и redirect response и т.д.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFormatting и Localization Tags - теги форматирования, предоставляют возможности по форматированию Numbers, Dates и поддержки i18n локализации и resource bundles.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ESQL Tags - теги для работы с SQL, поддержка работы с базами данных вроде MySQL, Oracle и т.д.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EXML Tags - теги для работы с XML документами. Например для парсинга XML, преобразования данных XML и выполнения выражений XPath.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSTL Functions Tags - функции-теги для обработки строк, предоставляет набор функций, которые позволяют выполнять различные операции со строками и т.п.. Например по конкатенации или разбиению строк.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакая разница между тегом \u0026lt;c:set\u0026gt; и \u0026lt;jsp:useBean\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСуществует аналогия между тегом \u0026lt;c:set\u0026gt; и тегом \u0026lt;jsp:useBean\u0026gt;. Оба создают и помещают экземпляры в заданную область видимости. Но \u0026lt;jsp:useBean\u0026gt; только непосредственно создает экземпляр конкретного типа, а \u0026lt;c:set\u0026gt;, создав ссылку, позволяет извлекать значение, например, из параметров запроса, сессии и т. д.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНазовите неявные, внутренние объекты JSP EL и их отличия от объектов jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЯзык выражений JSP предоставляет множество неявных объектов, которые можно использовать для получения атрибутов в различных областях видимости (scopes) и для значений параметров. Важно отметить, что они отличаются от неявных объектов JSP и содержат атрибуты в заданной области видимости. Наиболее часто использующийся implicit object в JSP EL и JSP page - это объект pageContext. Ниже представлена таблица неявных объектов JSP EL.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgtzMh84tHChhdLGL_28CsyqUDxbtzTJpav0qRpc7ibaKsf_TQ1nqUri0xceZba8nv-yC3XXPlT_YJER2oX02ClUgmV7wkDphdbi9Av7pxz8UhQ1RTjPFfdA6xhQSoaVEC2tWAYjNaLWfM\/s1600\/q076_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgtzMh84tHChhdLGL_28CsyqUDxbtzTJpav0qRpc7ibaKsf_TQ1nqUri0xceZba8nv-yC3XXPlT_YJER2oX02ClUgmV7wkDphdbi9Av7pxz8UhQ1RTjPFfdA6xhQSoaVEC2tWAYjNaLWfM\/s1600\/q076_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак узнать имя http метода используя JSP EL?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВот так: ${pageContext.request.method}.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете о написании пользовательских jsp тегов?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP позволяет создавать свои собственные теги с необходимой функциональностью. Мы можем добавить библиотеку тегов на страницу JSP используя указание пространства имен. Для создания своего тега мы можем использовать следующие компоненты:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP Custom Tag Handler\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСоздание файла Tag Library Descriptor (TLD)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EDeployment Descriptor конфигурацию для TLD\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПриведите пример использования собственных тегов.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНапример нам необходимо отформатировать в каком-либо стиле очень длинное число. Для этого можно использовать собственный тег вроде:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi1mw9buRQ4MlLlBFpb8k0Zq_KIOFL_7IMhsLtvo7fuJcFUgxHAUpe51g6BaPxg5QsGkK_ryhNIb7Y0XWy8pQ3t3wJxkYgoBkjswufTSsdy3YHq2Ij8ZXGyHictr46j7ZPgxBdOXEw9vDg\/s1600\/q079_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi1mw9buRQ4MlLlBFpb8k0Zq_KIOFL_7IMhsLtvo7fuJcFUgxHAUpe51g6BaPxg5QsGkK_ryhNIb7Y0XWy8pQ3t3wJxkYgoBkjswufTSsdy3YHq2Ij8ZXGyHictr46j7ZPgxBdOXEw9vDg\/s1600\/q079_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользуя входные параметры, число должно быть преобразовано на JSP странице в таком виде 123,456.79 согласно шаблону. Т.к. JSTL не предоставляет такой функциональности, то нам придется создать собственный тег для получения необходимого результата.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПочему не нужно конфигурировать стандартные JSP теги в web.xml?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНам не нужно настраивать стандартные теги JSP в web.xml, потому что TLD файлы уже находятся внутри каталога META-INF в JSTL jar файлах. Когда контейнер загружает веб-приложение и находит TLD файлы в директории META-INF в JAR файле, то он автоматически настраивает их для непосредственного использования на JSP страницах. Остается только задать пространство имен на jsp странице.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак можно обработать ошибки jsp страниц?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля обработки исключений выброшенных на jsp странице необходимо всего лишь задать страницу ошибки. Для создания страницы ошибки JSP мы должны установить значение page directive attribute isErrorPage в значение true. Тогда мы получим доступ к неявным объектам исключений в JSP и сможем передавать собственные сообщение об ошибках клиенту (обычно более информативных).\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНастройка дескриптора развертывания выглядит так.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjCZn2cPwrKsUiL75ZncTHa-up9K_KQWUfjp7-ruUf_jSwf4qSkvn0w6Jys6hpiYYyb9s_o0FrPEKWvFzpmAo-3r1iQW54lIgI4U_PSp6CXtdPZy3YUzM9NZFDGzieyOTBxFqfN_NkYzZc\/s1600\/q081_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjCZn2cPwrKsUiL75ZncTHa-up9K_KQWUfjp7-ruUf_jSwf4qSkvn0w6Jys6hpiYYyb9s_o0FrPEKWvFzpmAo-3r1iQW54lIgI4U_PSp6CXtdPZy3YUzM9NZFDGzieyOTBxFqfN_NkYzZc\/s1600\/q081_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак происходит обработка ошибок с помощью jstl?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПерехватывать исключения и обрабатывать их в служебных методах класса можно с помощью JSTL Core Tags c:catch и c:if. Тег c:catch перехватывает исключение и обертывает его в переменную exception, которую мы можем обработать в теге c:if.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E \u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg9gbPqPwV57Z0pZRpi35MJ_yNQ0Bkoxza-kvJh-8wjbNaebq80xbcmWQ31o8hDkGWz9NwfZy-WNmThgSI239S4z4VETdFouVRwC5gwWk9qVAt4ysp3AqR3PpvMphluWGTN-6ch8XBnGXA\/s1600\/q082_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg9gbPqPwV57Z0pZRpi35MJ_yNQ0Bkoxza-kvJh-8wjbNaebq80xbcmWQ31o8hDkGWz9NwfZy-WNmThgSI239S4z4VETdFouVRwC5gwWk9qVAt4ysp3AqR3PpvMphluWGTN-6ch8XBnGXA\/s1600\/q082_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОбратите внимание что используется язык выражений JSP EL в теге c:if.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПриведите пример конфигурации JSP в дескрипторе развертывания.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЭлемент jsp-config используется для настройки различных параметров jsp страниц.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУправление элементами скриптлетов на странице.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУправления выполнением в языке выражений.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОпределение шаблона URL для encoding.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОпределение размера буфера, который используется для объектов на странице.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОбозначение групп ресурсов, соответствующих шаблону URL, которые должны быть обработаны как XML документ.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjQe61-TCGKPRQ95ZDw5NXGEpo1iOa9EKzedKa7kTX7qCAWj6fpMDCE34zX0e6UeQYThxrYDaKqxiOOMpZ29E4W2PHya_n_NMLDYVBx3I4hulSX4orRobVGvpKodiXBnMLQuWm0zgDParY\/s1600\/q083_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjQe61-TCGKPRQ95ZDw5NXGEpo1iOa9EKzedKa7kTX7qCAWj6fpMDCE34zX0e6UeQYThxrYDaKqxiOOMpZ29E4W2PHya_n_NMLDYVBx3I4hulSX4orRobVGvpKodiXBnMLQuWm0zgDParY\/s1600\/q083_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак деактивировать использование EL на JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля игнорирования выполнения языка выражений на странице существует два способа:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eиспользовать директиву \u0026lt;%@ page isELIgnored=»true» %\u0026gt;,\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eнастроить web.xml (лучше подходит для отключения на EL на многих страницах)\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhycaf6nnoZQrGXN65Vqt1wAlAPx0j2R3Bkfh_HyIQfsW-caQDus92M4hLSOe4ycq0q8PqIDBGm8GXfue63uOYTXxO5cV46wpgpgGoB6-hj85nIUYg8rI-tgQSdWkLwlhG4wGav3Sj4yvY\/s1600\/q084_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhycaf6nnoZQrGXN65Vqt1wAlAPx0j2R3Bkfh_HyIQfsW-caQDus92M4hLSOe4ycq0q8PqIDBGm8GXfue63uOYTXxO5cV46wpgpgGoB6-hj85nIUYg8rI-tgQSdWkLwlhG4wGav3Sj4yvY\/s1600\/q084_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМожно ли использовать javascript на jsp странице?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДа, это возможно. Несмотря на то, что JSP серверная технология, она всё равно создает HTML страницу, на которую можно так же добавлять javascript код и css стили.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВсегда ли создается объект сессии на jsp странице, можно ли отключить его создание?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПо умолчанию jsp страница создает сессию, но иногда это не нужно. Мы можем использовать директиву page с атрибутом session для указания не создавать новую сессию по умолчанию. Для отключения создания сессии используется код, показанный ниже.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpl_fhT_A9pQhfJ07PjltU-qQG7EBsL2YV-JFThCIdxAp9aEhjJsAqQbSF_0iphoftiY_Ca9vDBCwnp0brrTZHqYDz9Z0rsycBdhhfs7YXKtfqej0wdlHKW6OqqhFefpvF0nmjTmXtmks\/s1600\/q086_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpl_fhT_A9pQhfJ07PjltU-qQG7EBsL2YV-JFThCIdxAp9aEhjJsAqQbSF_0iphoftiY_Ca9vDBCwnp0brrTZHqYDz9Z0rsycBdhhfs7YXKtfqej0wdlHKW6OqqhFefpvF0nmjTmXtmks\/s1600\/q086_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"font-family: Arial, Helvetica, sans-serif;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакая разница между JspWriter и Servlet PrintWriter?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EPrintWriter является объектом ответа для записи контента в ответе. JspWriter использует объект PrintWriter незаметно для пользователя и обеспечивают поддержку буферизации. Когда буфер заполнен или очищен, JspWriter использует объект PrintWriter для записи содержания (контента) в ответ.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\n\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак можно расширить функциональность jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМы можем расширить технологию JSP с помощью создания собственных тегов для избегания использования скриптлетов и java кода на JSP страницах.\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/2095705036383019163\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-4.html#comment-form","title":"Комментарии: 0"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/2095705036383019163"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/2095705036383019163"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-4.html","title":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 4)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhksWayK33BO62ZWpm0wWEbvDyNEewbFQ5LePA6gM8ltcH7YyH5n-KtqhSaH096wJpRDjL8bztQZ5qG03buBAfVWdn24peZxEvMUU7NJqvECPGTfkXG_VYnQTLSAV7hgR3tMiuTmlBhFSg\/s72-c\/q073_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-1081712118883095313"},"published":{"$t":"2016-05-24T07:57:00.001+03:00"},"updated":{"$t":"2016-11-02T19:59:46.272+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"},{"scheme":"http://www.blogger.com/atom/ns#","term":"JSP Servlets JSTL"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 3)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЗачем нужны и чем отличаются методы encodeUrl() и encodeRedirectUrl()?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHttpServletResponse предоставляет методы преобразования URL в HTML гиперссылки с преобразованием спец символов и пробелов, а так же добавления session id к URL. Такое поведение аналогично URLEncoder encode(), но с добавлением дополнительного параметра jsessionid в конец URL.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод HttpServletResponse encodeRedirectUrl() применяется для преобразования redirect URL в ответе. Таким образом при предоставлении поддержки URL rewriting для HTML гиперссылок необходимо использовать encodeURL(), а для редирект URL’ов использовать encodeRedirectUrl().\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие различные методы управления сессией в сервлетах вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСессия является обычным состоянием взаимодействия сервера и клиента и может содержать в себе множество запросов и ответов клиент-сервер. Т.к. HTTP и веб сервер не запоминают состояния (stateless), то единственным\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ca name='more'\u003E\u003C\/a\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E способом поддерживать сессию является пересылка уникальной информации (session id) в каждом запросе и ответе между клиентом и сервером.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСуществуют несколько распространенных способов управления сессией в сервлетах:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАутентификация пользователя\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTML hidden field (скрытое поле)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECookies\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EURL Rewriting\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ESession Management API\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто означает URL Rewriting?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля управления сессией в сервлетах мы можем использовать HTTPSession, но он работает с Cookies, а их иногда отключают. Для этого случая в сервлетах предусмотрена возможность URL Rewriting. С точки зрения программирования необходимо всего одно действие - кодирование URL. Другим достоинством является то, что этот метод является как бы запасным и включается только при выключенных куках.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПрименяя метод HttpServletResponse encodeURL() мы можем закодировать URL. Если необходим редирект к другому ресурсу, то для предоставления информации о сессии применяется метод encodeRedirectURL().\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое Cookie?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECookie - это небольшие блоки текстовой информации, которые сервер посылает клиенту для сохранения в файлах cookies. Клиент может запретить браузеру прием файлов cookies. Браузер возвращает информацию обратно на сервер как часть заголовка HTTP, когда клиент повторно заходит на тот же веб-ресурс.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак применяются Cookies в сервлетах?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECookies (куки) используются в клиент-серверном взаимодействии и они не являются чем-то конкретным в Java. Servlet API предоставляет поддержку cookies через класс javax.servlet.http.Cookie implements Serializable, Cloneable. Для получения массива cookies из запроса необходимо воспользоваться методом HttpServletRequest getCookies(). Для добавления cookies в запрос методов не предусмотрено.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАналогично HttpServletResponse addCookie(Cookie c) - может добавить cookie в response header, но не существует геттера для этого типа передачи данных.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак уведомить объект в сессии, что сессия недействительна или закончилась?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧтобы быть уверенным об оповещение объекта о прекращении сессии, объект должен реализовывать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() применяются для реализации логики при добавлении объекта в качестве атрибута к сессии и при уничтожения сессии.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой существует эффективный способ удостоверится, что все сервлеты доступны только для пользователя с валидной сессией?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСервлет фильтры используются для перехвата всех запросов между контейнером сервлетов и сервлетом. Поэтому логично использовать фильтр для проверки необходимой информации (например валидности сессии) в запросе.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак мы можем обеспечить transport layer security для нашего веб приложения?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля этого необходимо настроить SSL для вашего сервлет контейнера. Как это сделать описано в мануалах для конкретной реализации контейнера.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак организовать подключение к базе данных и обеспечить логирование log4j в сервлете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПри работе с большим количеством подключений к базе данных рекомендуется инициализировать их в servlet context listener и установить в качестве атрибута контекста для возможности использования другими сервлетами. Логирование Log4j подключается с помощью конфигурации XML (или файла property) и далее эта информация используется при конфигурировании context listener’а.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие особенности Servlet 3?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cspan lang=\"RU\" style=\"font-family: \u0026quot;arial\u0026quot; , sans-serif; font-size: 12.0pt; line-height: 115%;\"\u003EОсобенности Servlet 3.0:\u003C\/span\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EServlet Annotations. До Servlet 3 весь маппинг был в web.xml, что приводило к ошибкам и банально неудобно при большом количестве сервлетов. Примеры аннотаций: \u0026nbsp;@WebServlet, @WebInitParam, @WebFilter, @WebListener.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EWeb Fragments. С появлением веб фрагментов мы можем содержать множество модулей в одностраничном веб приложении. Все модули прописываются в fragment.xml в META-INF директории. Это позволяет разделять веб приложение на отдельные модули, включенные как JAR файлы в отдельной lib директории.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДинамическое добавление веб компонентов. Используя ServletContext объект, мы можем программно добавлять фильтры и слушатели. Это помогает построить динамическую систему, в которой необходимый объект будет вызван только по необходимости. Для этого применяются методы addServlet(), addFilter(), addListener().\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАсинхронное выполнение. Поддержка асинхронной обработки позволяет передать выполнение запроса в другой поток без удержания всего сервера занятым.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКаковы различные способы аутентификации сервлета?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКонтейнер сервлетов предоставляет различные способы аутентификации:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTTP Basic Authentication\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTTP Digest Authentication\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTTPS Authentication\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EForm Based Login\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое Java Server Pages (JSP)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP (Java Server Pages) - технология, позволяющая веб-разработчикам динамически генерировать HTML, XML и другие веб-страницы. JSP был включен в состав Java EE - программной платформы для программирования веб-приложений. Технология позволяет вставлять Java-код, в статический содержимое страницы. Также могут использоваться библиотеки JSP тегов для вставки их в JSP-страницы. Страницы компилируются JSP-компилятором в сервлеты, которые являются Java-классами, и выполняются на сервере. Сервлеты также могут быть написаны разработчиком, не используя JSP-страницы. Эти технологии дополняют друг друга.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОпишите, как обрабатываются JSP страницы, начиная от запроса к серверу, заканчивая ответом пользователю.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКогда пользователь переходит по ссылке, назовем ее index.jsp, он отправляет http запрос на сервер в виде \"GET \/index.jsp\". Затем на основе этой страницы, сервер генерирует, компилирует и выполняет Java сервлет, который приходит ответом пользователю в виде отображения этой страницы. Такой жизненный цикл можно разделить на 6 шагов:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Col\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЗапрос от пользователя.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧтение .jsp страницы сервером.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EГенерация java класса на основе этой .jsp страницы.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКомпиляция в class файл.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВыполнение class файла.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОтправка ответа пользователю в виде html страницы.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРасскажите об этапах (фазах) жизненного цикла jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЕсли посмотреть код внутри созданной JSP страницы, то он будет выглядеть как HTML и не будет похож на java класс. Конвертацией JSP страниц в HTML код занимается контейнер, который так же создает сервлет для использования в веб приложении. Жизненный цикл JSP состоит из нескольких фаз:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ETranslation - JSP контейнер проверяет код JSP страницы, парсит ее для создания кода сервлета. К примеру, в Tomcat вы можете найти классы сервлетов в директории TOMCAT\/work\/Catalina\/localhost\/WEBAPP\/org\/apache\/jsp. Если страница JSP называется home.jsp, то созданный сервлет обычно будет иметь имя home_jsp и имя файла - home_jsp.java.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECompilation - JSP контейнер компилирует исходный код jsp класса и создает класс на этой фазе.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EClass Loading - контейнер загружает классы в память на этой фазе.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EInstantiation - внедрение конструкторов без параметров созданных классов для инициализации в памяти классов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EInitialization - в контейнере вызывается init метод объекта JSP класса и инициализируется конфигурация сервлета с init параметрами, которые указаны в дескрипторе развертывания (web.xml). После этой фазы JSP способен обрабатывать запросы клиентов.Обычно эти фазы происходят после первого запроса клиента (т.е. ленивая загрузка), но можно настроить загрузку и инициализацию JSP на старте приложения по аналогии с сервлетами.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ERequest Processing - длительный жизненный цикл \u0026nbsp;обработки запросов клиента JSP страницей. Обработка является многопоточной и аналогична сервлетам - для каждого запроса создается новая нить, создаются объекты ServletRequest и ServletResponse и происходит внедрение сервис методов JSP.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EDestroy - последняя фаза жизненного цикла JSP на которой JSP класс удаляется из памяти. Обычно это происходит при выключении сервера или андеплое приложения.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРасскажите о методах жизненного цикла jsp.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетоды жизненного цикла JSP:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EjspInit() - метод объявлен в JSP странице \u0026nbsp;и реализуется с помощью реализаций контейнера. Этот метод вызывается один раз в жизненном цикле JSP для того, чтобы инициализировать конфигурационные параметры, указанные в дескрипторе развертывания. Этот метод можно переопределить с помощью определения элемента JSP scripting и указания необходимых параметров для инициализации.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E_jspService() - этот JSP метод внедряется JSP контейнером для каждого запроса клиента с помощью передачи объекта запроса и ответа. Отметьте, что имя метода начинается с нижнего подчеркивания и отличается от других методов жизненного цикла тем, что его невозможно переопределить. Весь JSP код проходит через этот метод и он переопределен по умолчанию. Этот метод определен в HttpJspPage интерфейсе.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EjspDestroy() - метод вызывается контейнером JSP для удаления объекта из памяти (на последней фазе жизненного цикла JSP - Destroy). Метод вызывается только один раз и мы можем его переопределить для очищения любых ресурсов, которые были созданы в JSP init методе.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие методы жизненного цикла JSP могут быть переопределены?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМы можем переопределить jspInit() и jspDestroy() методы с помощью использования скриптов JSP. Метод jspInit() переопределяется для создания общих ресурсов, которые мы хотели бы использовать в методе обслуживания JSP, а jspDestroy() метод переопределяется, чтобы освободить общие ресурсы на фазе уничтожения.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак можно предотвратить прямой доступ к JSP странице из браузера?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДиректория WEB-INF не имеет прямого доступа из веб приложения. Поэтому мы можем положить JSP страницы внутри этой папки и тем самым запретить доступ к странице из браузера. Однако в этом случае необходимо настраивать дескриптор развертывания наподобие сервлетов. Простая конфигурация дескриптора web.xml показана ниже.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpmEIUv7ciujc0v41BALUsqXSIzBHKQe3uvOrdh92T2kBWrw2xHruxv0jrvu1G-vhXzStOG6DIamdbSsoz-uRe_x5Y6B8t2pJQ0SeuyscxUKdWn4j3qi9D51pqRhY80HI2AXcfjpTUtkw\/s1600\/q058_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpmEIUv7ciujc0v41BALUsqXSIzBHKQe3uvOrdh92T2kBWrw2xHruxv0jrvu1G-vhXzStOG6DIamdbSsoz-uRe_x5Y6B8t2pJQ0SeuyscxUKdWn4j3qi9D51pqRhY80HI2AXcfjpTUtkw\/s1600\/q058_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакая разница между динамическим и статическим содержимым JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДинамические ресурсы. Результаты их деятельности изменяются во время выполнения приложения. Обычно представлены в виде выражений Expression Language, библиотек тегов и тегов разработчика.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтатические ресурсы. Не изменяются сами в процессе работы (HTML, JavaScript, изображения и т. д.).\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак закомментировать код в jsp?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP предоставляет две возможности закомментировать код:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTML комментарии - \u0026lt;-- HTML Comment --\u0026gt; . Такие комментарии будут видны клиенту при просмотре кода страницы.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EJSP комментарии - \u0026lt;%-- JSP Comment --%\u0026gt;. Такие комментарии создаются в созданном сервлете и не посылаются клиенту. Для любых комментариев по коду или отладочной информации необходимо использовать этот тип комментариев.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие основные теги в JSP?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ спецификации JSP 1.2 были объявлены только пять основных тегов:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;%@ директива %\u0026gt; - используется для установки параметров серверной страницы JSP;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;%! объявление %\u0026gt; - (нежелателен в современном программировании) содержит поля и методы, которые вызываются в expression-блоке и становятся полями и методами генерируемого сервлета.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;% скриптлет %\u0026gt; - (нежелателен) вживление java-кода в JSP-страницу. Скриптлеты обычно используют маленькие блоки кода и выполняются во время обработки запроса клиента.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;%= вычисляемое выражение %\u0026gt; - (нежелателен) содержит операторы языка Java, которые вычисляются, после чего результат вычисления преобразуется в строку String и посылается в поток out;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;%-- JSP-комментарий --%\u0026gt; - комментарий, который не отображается в исходных кодах JSP-страницы после этапа выполнения.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие типы EL операторов вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтандартные операторы отношения:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E== (или eq), != (или ne), \u0026lt; (или lt), \u0026gt; (или gt), \u0026lt;= (или le), \u0026gt;= (или ge).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАрифметические операторы: +, -, *, \/ (или div), % (или mod).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЛогические операторы: \u0026amp;\u0026amp; (или and), || (или or), ! (или not).\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВзаимодействие JSP - сервлет - JSP.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EТакая архитектура построения приложений носит название MVC (Model\/View\/Controller). Model - классы бизнес-логики и длительного хранения, View - страницы JSP, Controller - сервлет.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое сессия?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСессия \u0026nbsp;- это сеанс между клиентом и сервером, устанавливаемая на определенное время, за которое клиент может отправить на сервер сколько угодно запросов. Сеанс устанавливается непосредственно между клиентом и веб-сервером в момент получения первого запроса к веб-приложению. Каждый клиент устанавливает с сервером свой собственный сеанс, который сохраняется до окончания работы с приложением.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Ca href=\"https:\/\/jsehelper.blogspot.nl\/2016\/05\/jsp-servlets-jstl-4.html\"\u003EJSP, Servlets, JSTL (часть 4).\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/1081712118883095313\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-3.html#comment-form","title":"Комментарии: 0"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/1081712118883095313"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/1081712118883095313"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-3.html","title":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 3)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjpmEIUv7ciujc0v41BALUsqXSIzBHKQe3uvOrdh92T2kBWrw2xHruxv0jrvu1G-vhXzStOG6DIamdbSsoz-uRe_x5Y6B8t2pJQ0SeuyscxUKdWn4j3qi9D51pqRhY80HI2AXcfjpTUtkw\/s72-c\/q058_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-205019333111557215"},"published":{"$t":"2016-05-23T08:36:00.000+03:00"},"updated":{"$t":"2016-11-02T19:59:46.302+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"},{"scheme":"http://www.blogger.com/atom/ns#","term":"JSP Servlets JSTL"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 2)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКаков жизненный цикл сервлета и когда какие методы вызываются?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКонтейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЗагрузка класса сервлета - когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов конструктора без параметров.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИнициализация класса сервлета - после того как класс загружен контейнер инициализирует объект ServletContext для этого сервлета и внедряет его через init() метод. Это и есть место где сервлет класс преобразуется из обычного класса в сервлет.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОбработка запросов - после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новую нить (поток) и вызывает метод service() путем передачи ссылки на объект ответы и запроса.\u003Ca name='more'\u003E\u003C\/a\u003E\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУдаление из Service - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова destroy() метода.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМожно описать как последовательность вызова методов: init(), service(), destroy().\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epublic void init(ServletConfig config) - используется контейнером для инициализации сервлета. Вызывается один раз за время жизни сервлета.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epublic void service(ServletRequest request, ServletResponse response) - вызывается для каждого запроса. Метод не может быть вызван раньше выполнения init() метода.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epublic void destroy() - вызывается для уничтожения сервлета (один раз за время жизни сервлета).\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие методы необходимо определить при создании сервлетов?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧтобы создать сервлет, необходимо описать сервлет с помощью:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj_2qKB5h8LE-Ii1LHaPaXbOyFM6IQHMvZVvLWYpA083GY-3Tul0n-3_V1b9CH1HgTRiaRA2VnN6XvBVU2LAxobKUwH4xgUrbPUJobzfJ-jit_XOz-O1C71wU8M5pXN8kn5FhwCbz7PdVs\/s1600\/q023_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj_2qKB5h8LE-Ii1LHaPaXbOyFM6IQHMvZVvLWYpA083GY-3Tul0n-3_V1b9CH1HgTRiaRA2VnN6XvBVU2LAxobKUwH4xgUrbPUJobzfJ-jit_XOz-O1C71wU8M5pXN8kn5FhwCbz7PdVs\/s1600\/q023_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЗатем расширить класс сервлета от класса HttpServlet.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРеализовать метод service() или doGet(), doPost() (или первый или вторые).\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ каком случае вы будете переопределять метод service()?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод service() переопределяется, когда мы хотим, чтобы сервлет обрабатывал как GET так и POST запросы в одном методе. Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода service(), который в свою очередь вызывает doGet(), doPost() методы, основанные на HTTP методе запроса. Есть мнение, что метод service() переопределять особого смысла нет, кроме указанного вначале случая использования одного метода на два типа запросов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЕсть ли смысл определить конструктор для сервлета? Как лучше инициализировать данные?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EТакая возможность есть, но считается бессмысленной. Инициализировать данные лучше переопределив метод init(), в котором получить доступ к параметрам инициализации сервлета через использование объекта ServletConfig.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ чем отличия GenericServlet и HttpServlet?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАбстрактный класс GenericServlet - независимая от используемого протокола реализация интерфейса Servlet. HttpServlet, как понятно из название, реализация интерфейса сервлета для протокола HTTP. Следует отметить, что HttpServlet extends GenericServlet.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вызвать из сервлета другой сервлет этого же и другого приложения?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЕсли необходимо вызывать сервлет из того же приложения, то необходимо использовать механизм внутренней коммуникации сервлетов. Мы можем вызвать другой сервлет с помощью RequestDispatcher forward() и include() методов для доступа к дополнительным атрибутам в запросе для использования в другом сервлете. Метод forward() используется для передачи обработки запроса в другой сервлет. Метод include() используется, если мы хотим вложить результат работы другого сервлета в возвращаемый ответ.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЕсли необходимо вызывать сервлет из другого приложения, то использовать RequestDispatcher уже не получится (определен для приложения). Поэтому можно использовать ServletResponse sendRedirect() метод и предоставить полный URL из другого сервлета. Для передачи данных можно использовать cookies как часть ответа сервлета, а потом использовать их в нашем сервлете.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтоит ли волноваться о \"многопоточной безопасности\" работая с сервлетами?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетоды класса HTTPServlet init() и destroy() вызываются один раз за жизненный цикл сервлета - поэтому по поводу них беспокоиться не стоит. Методы doGet(), doPost() вызываются на каждый запрос клиента и т.к. сервлеты используют многопоточность, то здесь нужно задумываться о потокобезопасной работе.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ случае наличия локальных переменных в этих методах нет необходимости думать о многопоточной безопасности, т.к. они будут созданы отдельно для каждой нити. Но если используются глобальные ресурсы, то необходимо использовать синхронизацию как и в любом многопоточном приложении Java.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой метод HTTP не является неизменяемым?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EHTTP метод называется неизменяемым, если он всегда возвращает одинаковый результат. HTTP методы GET, PUT, DELETE, HEAD, OPTIONS являются неизменяемыми. Необходимо реализовывать приложение так, чтобы эти методы возвращали одинаковый результат. К изменяемым методам относится HTTP метод POST. Post метод используется для реализации чего-либо, что изменяется при каждом запросе.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EК примеру, для доступа к HTML странице или изображению необходимо использовать метод GET, т.к. он возвращает одинаковый результат. Но если нам необходимо сохранить информацию о заказе в базе данных, то нужно использовать POST метод. Неизменяемые методы так же известны как безопасные методы и нет необходимости заботится о повторяющихся запросах от клиента для этих методов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие есть методы отправки данных с клиента на сервер? Чем они отличаются?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод doGet() - используется для запроса содержимого указанного ресурса, изображения или гипертекстового документа. Вместе с за просом могут передаваться дополнительные параметры как часть URI, значения могут выбираться из полей формы или передаваться непосредственно через URL. При этом запросы кэшируются и имеют ограничения на размер. Этот метод является основным методом взаимодействия браузера клиента и веб-сервера.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод doPost() - используется для передачи пользовательских данных в содержимом HTTP-запроса на сервер. Пользовательские данные упакованы в тело запроса согласно полю заголовка Content-Type и\/или включены в URI запроса. При использовании метода POST под URI подразумевается ресурс, который будет обрабатывать запрос.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетоды сервлета (обычно имеется ввиду HttpServlet).\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ спецификации HTTP определены методы: GET, HEAD, POST, PUT, DELETE, OPTIONS и TRACE.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод GET (method=\"GET\") используется для запроса содержимого указанного ресурса, изображения или гипертекстового документа. Вместе с запросом могут передаваться дополнительные параметры как часть URI, значения могут выбираться из полей формы или передаваться непосредственно через URL. При этом запросы кэшируются и имеют ограничения на размер. Этот метод является основным методом взаимодействия браузера клиента и веб-сервера.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод POST используется для передачи пользовательских данных в содержимом HTTP-запроса на сервер. Пользовательские данные упакованы в тело запроса согласно полю заголовка Content-Type и\/или включены в URI запроса. При использовании метода POST под URI подразумевается ресурс, который будет обрабатывать запрос.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод PUT схож с методом POST за тем исключением, что здесь URI подразумевает ресурс, который будет создан или сохранен на сервере в результате выполнения PUT-запроса.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод DELETE предназначен для удаления целевого ресурса.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОба эти действия на некоторых серверах могут запрещаться из-за угрозы внутренней безопасности.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод HEAD предполагает возврат сервером такого же ответа, как и при использовании GET, но без тела ответа. Метод обычно используется для того, чтобы проверить существование ресурса либо узнать, изменился ли запрашиваемый ресурс с момента последнего обращения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод OPTIONS должен возвращать информацию о возможностях вебсервера или параметрах соединения для конкретного ресурса.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод TRACE возвращает клиенту запрос в том виде, в каком он пришел на сервер - используется для отладки, определяя заголовки, добавляемые промежуточными серверами, а также для тестирования настроек соединения.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПочему HttpServlet класс объявлен как абстрактный?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКласс HTTPServlet предоставляет реализацию HTTP протокола сервлета (а следовательно помогает избежать постоянного кодинга повторяющейся информации), но он не имеет реализованных методов doGet() и doPost() (у них по умолчанию возвращение HTTP 405 Method Not Implemented error), а следовательно объявлен абстрактным. Реализация этих методов перекладывается на разработчика.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ чем разница между методами GET и POST?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОсновные отличия:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EGET метод является неизменяемым, тогда как POST - изменяемый.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EС помощью метода GET можно посылать ограниченное кол-во данных, которые будут пересланы в заголовке URL. В случае POST метода мы можем пересылать большие объемы данных, т.к. они будут находится в теле метода.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДанные GET метода передаются в открытом виде, что может использоваться в зловредных целях. POST данные передаются в теле запроса и скрыты от пользователя.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EGET метод является HTTP методом по умолчанию, а POST метод необходимо указывать явно, чтобы отправить запрос.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EGET метод используется гиперссылками на странице.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНазовите преимущества Servlet над CGI?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EТехнология сервлетов была создана для преодоления недостатков Common Gateway Interface (общий интерфейс шлюза). Можно выделить следующие преимущества сервлетов над CGI:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСервлеты предоставляют лучшую производительность в условиях обработки запросов, лучшее использование памяти за счет использования преимущества многопоточности (на каждый запрос создается новая нить, что быстрее выделения памяти под новый объект для каждого запроса, как это происходит в CGI).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСервлеты, платформа и система являются независимыми. Таким образом веб приложение написанное с использованием сервлетов может быть запущена в любом контейнере сервлетов, реализующим стандарт и в любой операционной системе.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользование сервлетов повышает надежность программы, т.к. контейнер сервлетов самостоятельно заботится о жизненном цикле сервлетов (а значит и за утечками памяти), безопасности и сборщике мусора.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСервлеты относительно легки в изучении и поддержке, т.к. разработчику необходимо заботится только о бизнес логике приложения, а не внутренней реализации веб технологий.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКаковы наиболее распространенные задачи выполняются в Servlet контейнере?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНекоторые из них:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПоддержка обмена данными. Контейнер сервлетов предоставляет легкий способ обмена данными между веб клиентом (браузером) и сервлетом. Благодаря контейнеру нет необходимости создавать слушателя сокета на сервере для отслеживания запросов от клиента, а также разбирать запрос и генерировать ответ. Все эти важные и комплексные задачи решаются с помощью контейнера и разработчик может сосредоточиться на бизнес логике приложения.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУправления жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПоддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПоддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРазличные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ чем разница между PrintWriter и ServletOutputStream?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Ch3\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EPrintWriter - это класс для работы с символьным потоком, а ServletOutputStream - класс для работы байтовым потоком. PrintWriter используется для записи информации на основе символов, вроде массива символов или строки в ответ, в то время как ServletOutputStream используется для записи в ответ массива байтов. Для получения экземпляра ServletOutputStream используется метод ServletResponse getOutputStream(), а для PrintWriter - метод ServletResponse getWriter().\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМожем ли мы получить PrintWriter и ServletOutputStream одновременно в сервлете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМы не можем создать два объекта этих классов в одном сервлете. При попытке внедрить оба метода getWriter() и getOutputStream() в ответе, мы получим исключение java.lang.IllegalStateException с сообщением, что уже другой метод был вызван для этого ответа.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРасскажите об интерфейсе SingleThreadModel.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИнтерфейс был создан, чтобы гарантировать потокобезопасность и невозможность создания двух нитей в сервис методе сервлета. Однако интерфейс SingleThreadModel не решает всех проблем потокобезопасности. Например, атрибуты сессии или статические переменные могут быть доступны различным запросам в различных потоках в одно и тоже время (даже при использовании этого интерфейса). Интерфейс объявлен deprecated начиная с Servlet 2.4.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие существуют атрибуты у сервлетов и какая сфера их применения?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАтрибуты сервлетов используются для внутренней коммуникации сервлетов. Мы можем использовать атрибуты set, get, remove в веб приложении.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИнтерфейсы ServletRequest, HttpSession и ServletContext предоставляют методы для get(), set(), remove() атрибутов из request scope, session scope, application scope.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПочему необходимо переопределить только init() метод без аргументов?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЕсли нам необходимо инициализировать какие-то ресурсы до того как сервлет начнет обрабатывать запросы, то необходимо переопределить метод init(). Если переопределить метод init(ServletConfig config), то первым должен быть вызван метод super(config), который обеспечит вызов метода init(ServletConfig config) суперкласса. Именно поэтому GenericServlet предоставляет другой метод init() без параметров, который будет вызываться в конце метода init(ServletConfig config). Разработчик должен использовать переопределенный метод init() без параметров для инициализации переменных для избежания каких-либо проблем, например не указав вызов super() в переопределенном методе init(ServletConfig config).\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто означает URL encoding? Зачем нужны методы encode() и decode()?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EURL Encoding - процесс преобразования данных в форму CGI (Common Gateway Interface), который позволит путешествовать по сети без проблем. URL Encoding разделяет пробелы и заменяет специальные символы с помощью escape-символов. Например, для кодирования строки используется метод \u0026nbsp;java.net.URLEncoder.encode(String str, String unicode). Обратная операция декодирования возможна благодаря методу java.net.URLDecoder.decode(String str, String unicode). Пример работы метода: строка “ Java programing language” будет преобразована в “Java%20programing%20language ”.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Ca href=\"https:\/\/jsehelper.blogspot.nl\/2016\/05\/jsp-servlets-jstl-3.html\"\u003EJSP, Servlets, JSTL (часть 3).\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/205019333111557215\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-2.html#comment-form","title":"Комментарии: 1"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/205019333111557215"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/205019333111557215"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/jsp-servlets-jstl-2.html","title":"Ответы на вопросы на собеседование JSP, Servlets, JSTL (часть 2)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj_2qKB5h8LE-Ii1LHaPaXbOyFM6IQHMvZVvLWYpA083GY-3Tul0n-3_V1b9CH1HgTRiaRA2VnN6XvBVU2LAxobKUwH4xgUrbPUJobzfJ-jit_XOz-O1C71wU8M5pXN8kn5FhwCbz7PdVs\/s72-c\/q023_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"1"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-3452701928965522448"},"published":{"$t":"2016-05-17T18:45:00.001+03:00"},"updated":{"$t":"2016-11-02T19:59:46.314+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java 8"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование Java 8 (часть 2)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое StringJoiner?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EStringJoiner используется, чтобы создать последовательность символов, разделенных разделителем, может (но это не обязательно) начинаться с префикса и заканчиваться суффиксом. Пример:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEirTqbqlixeGGaXOqVzLq-oSnOB_XhtNCtiwczTkkAaxPbUShT9C0-DTr4RkozIAarkWqKVHTD6R4wSiFJXaLGWHZYIZacf7xQYumQMv6oXrPiwDGcC2ukQMkC9eTOjJrPoxB2VJzJIOEE\/s1600\/q052_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEirTqbqlixeGGaXOqVzLq-oSnOB_XhtNCtiwczTkkAaxPbUShT9C0-DTr4RkozIAarkWqKVHTD6R4wSiFJXaLGWHZYIZacf7xQYumQMv6oXrPiwDGcC2ukQMkC9eTOjJrPoxB2VJzJIOEE\/s1600\/q052_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое default методы?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНачиная с Java 8 мы можем использовать в интерфейсах стандартные методы (default methods) и статические методы (static methods).\u0026nbsp;\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EDefault метод - это метод в интерфейсе с по умолчанию реализованной логикой, который не требуется обязательно\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ca name='more'\u003E\u003C\/a\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E определять в реализации этого интерфейса.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjHOyRRx7tAeJW_dgwj9eMBxHuW98bepTphI_9kTWNayWTU60a-5X6zm-_xUc_dP5eewAuov-BJ6R1mZ0Yy7n89ENgyi96rw0YapdiPHZc3Djqni_jUFPhpPueFzaeYID7JxOnaG5dclFA\/s1600\/q053_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjHOyRRx7tAeJW_dgwj9eMBxHuW98bepTphI_9kTWNayWTU60a-5X6zm-_xUc_dP5eewAuov-BJ6R1mZ0Yy7n89ENgyi96rw0YapdiPHZc3Djqni_jUFPhpPueFzaeYID7JxOnaG5dclFA\/s1600\/q053_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое static методы?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EStatic-методы в интерфейсе - это по существу то же самое, что static-методы в абстрактном классе.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтатические методы в интерфейсе являются частью интерфейса, мы не можем использовать его для объектов класса реализации.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтатические методы в интерфейсе хороши для обеспечения вспомогательных методов, например, проверки на null, сортировки коллекций и т.д.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтатические методы в интерфейсе помогают обеспечивать безопасность, не позволяя классам, которые реализуют интерфейс, переопределить их.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli style=\"text-align: justify;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМы не можем определить статические методы для методов класса Object, потому что получим ошибку компиляции.\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вызывать default-метод интерфейса в классе?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользуя ключевое слово super вместе с именем интерфейса.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgvfZmI3ogtqPLiQXqjPwWoQJXdGWyZ9K5bnzqCCiHcJTewbZEJHDqnfsjPYXiie46juCjjmr98UCwTbtLaQYTstk8G_CUA_hsQl-NyAuCg-UV108V0N04mbFXLeIFkNeTFwCg6qInSqWg\/s1600\/q055_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgvfZmI3ogtqPLiQXqjPwWoQJXdGWyZ9K5bnzqCCiHcJTewbZEJHDqnfsjPYXiie46juCjjmr98UCwTbtLaQYTstk8G_CUA_hsQl-NyAuCg-UV108V0N04mbFXLeIFkNeTFwCg6qInSqWg\/s1600\/q055_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вызывать static-метод интерфейса в классе?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользуя имя интерфейса.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjbk4-ezDooEac8ZEtHZ-c4O7LSagzlrbs3XsIBBjTH0hHhn1euuYKwPZnzn-1QPkHnmIQR9d-7yWP_4oL01zhdztu7FJc0e_JXnlaBs0TsLOkjZDlH9aM6Vj24eAZGWS1UGKvOPDfPLck\/s1600\/q056_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjbk4-ezDooEac8ZEtHZ-c4O7LSagzlrbs3XsIBBjTH0hHhn1euuYKwPZnzn-1QPkHnmIQR9d-7yWP_4oL01zhdztu7FJc0e_JXnlaBs0TsLOkjZDlH9aM6Vj24eAZGWS1UGKvOPDfPLck\/s1600\/q056_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое потоки(stream) в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejava.util.stream - введен для поддержки распараллеливания вычислений в потоках. Предоставляет возможность обрабатывать последовательность элементов исполняя одну или несколько операций, которые могут выполняться либо последовательно либо паралельно. Потоки делятся на последовательные и параллельные. Самая большая польза от этого - в работе с коллекциями.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОперации над потоком относятся либо к промежуточным, либо к терминальным. Все промежуточные операции возвращают поток, так что мы можем объединять несколько промежуточных операций без использования точки с запятой. Терминальные операции возвращают void или непотоковый результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен метод collect Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EБольшинство операций класса Stream, которые модифицируют набор данных, возвращают этот набор в виде потока. Однако бывают ситуации, когда хотелось бы получить данные не в виде потока, а в виде обычной коллекции, например, ArrayList или HashSet. И для этого у класса Stream определен метод collect. Метод принимает в качестве параметра функцию преобразования к коллекции:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u0026lt;R,A\u0026gt; R collect(Collector\u0026lt;? super T,A,R\u0026gt; collector)\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПараметр R представляет тип результата метода, параметр Т - тип элемента в потоке, а параметр А - тип промежуточных накапливаемых данных. В итоге параметр collector представляет функцию преобразования потока в коллекцию.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ чем разница между коллекцией(Collection) и потоком(Stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EРазница между коллекцией(Collection) данных и потоком(Stream) из новой JDK8 в том что коллекции позволяют работать с элементами по-отдельности, тогда как поток(Stream) не позволяет. Например, с использованием коллекций, вы можете добавлять элементы, удалять, и вставлять в середину. Поток(Stream) не позволяет манипулировать отдельными элементами из набора данных, но вместо этого позволяет выполнять функции над данными как одним целом.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего предназначен метод forEach в потоках(stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод void forEach(Consumer\u0026lt;? super T\u0026gt; action) - для каждого элемента выполняется действие action. forEach является терминальной операцией, используется для перебора каждого элемента потока.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EforEach не гарантирует последовательности вывода элементов в параллельном stream-е, для этого используется метод forEachOrdered - он это гарантирует.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вывести на экран 10 случайных чисел, используя forEach?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003E\u003Cspan style=\"text-align: left;\"\u003EСледующий фрагмент кода показывает, как вывести 10 случайных чисел с помощью forEach.\u003C\/span\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiUo_ITz31i4kgZH4wbKi2ra2tm13CB6Q77VJH1Mnnvr5j3zxDs7auoLpK5bt6B4tt173P7FAzP5KukoGWeo34dVUafVWltNQ79EzFJ6mNeh6tvHp2wau5qcLpjfDSLo5yiTPiCFL6aDj0\/s1600\/q061_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiUo_ITz31i4kgZH4wbKi2ra2tm13CB6Q77VJH1Mnnvr5j3zxDs7auoLpK5bt6B4tt173P7FAzP5KukoGWeo34dVUafVWltNQ79EzFJ6mNeh6tvHp2wau5qcLpjfDSLo5yiTPiCFL6aDj0\/s1600\/q061_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего предназначен метод map в потоках(stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод \u0026lt;R\u0026gt; Stream\u0026lt;R\u0026gt; map(Function\u0026lt;? super T,? extends R\u0026gt; mapper) - преобразует элементы типа T в элементы типа R и возвращает поток с элементами R. map является промежуточной операцией, метод используется для преобразования элементов в другой объект при помощи переданной функции.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак можно вывести на экран уникальные квадраты чисел используя метод map?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EСледующий фрагмент кода демонстрирует это, используя метод map.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi-WFjLHoh_wOUJqXNCnimpaAz0I4lzKfztE-VbcC6-L70y9U5DRJVxnZiCtkU_IVxeR7eoysomb41np3KpOkrgqP81l-7BM_DtjcdDLZRqZtH0AVABfJWUiXOv4dpDwZjw7iAOt9a8Kfg\/s1600\/q063_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" height=\"40\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi-WFjLHoh_wOUJqXNCnimpaAz0I4lzKfztE-VbcC6-L70y9U5DRJVxnZiCtkU_IVxeR7eoysomb41np3KpOkrgqP81l-7BM_DtjcdDLZRqZtH0AVABfJWUiXOv4dpDwZjw7iAOt9a8Kfg\/s640\/q063_p01.jpg\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакова цель метода filter в потоках(stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод Stream\u0026lt;T\u0026gt; filter(Predicate\u0026lt;? super T\u0026gt; predicate) - фильтрует элементы в соответствии с условием в предикате. filter является промежуточной операцией, используется для фильтрации массива через функцию.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНа самом деле filter, не выполняет фильтрацию, вместо этого он создается новый поток, который по завершению формирования, содержит элементы исходного потока, которые соответствуют заданному предикату.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вывести на экран количество пустых строк с помощью метода filter?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий фрагмент кода демонстрирует это с помощью метода filter.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhy8K47qcB1gaGjxZki1F4hFhU1-iZ7AwcOieMqSZwl0lyGuPoCRcGIRIjOl7dTsq33uBPjrb_a5C8tsK5_mvqq6XecnBTtvImzyHnAEV1ZvQEGdzFDTNni_a9XU89LF7X_8nvKN7FUu3I\/s1600\/q065_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" height=\"52\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhy8K47qcB1gaGjxZki1F4hFhU1-iZ7AwcOieMqSZwl0lyGuPoCRcGIRIjOl7dTsq33uBPjrb_a5C8tsK5_mvqq6XecnBTtvImzyHnAEV1ZvQEGdzFDTNni_a9XU89LF7X_8nvKN7FUu3I\/s640\/q065_p01.jpg\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего предназначен метод limit в потоках(stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод Stream\u0026lt;T\u0026gt; limit(long maxSize) - оставляет в потоке только maxSize элементов. limit является промежуточной операцией, используется для выборки первых maxSize элементов потока. Этот метод также возвращает модифицированный поток, в котором не более maxSize элементов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего предназначен метод sorted в потоках(stream)?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод Stream\u0026lt;T\u0026gt; sorted()\/Stream\u0026lt;T\u0026gt; sorted(Comparator\u0026lt;? super T\u0026gt; comparator) - возвращает отсортированный поток. sorted является промежуточной операцией, метод используется для сортировки потока используя естественный порядок сравнения его элементов. Существует также второй метод sorted(), принимающий либо экземпляр Comparable, либо соответствующее ему лямбда-выражение.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак вывести на экран 10 случайных чисел в отсортированном порядке в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий фрагмент кода демонстрирует это:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjnaGLscANtl9exKj5JZ3kS9FdswEu7w0ZTa47khLHNKzSCPb-0g6KEG2_H7mtG6zXcnd2hi6FawHLtxjO_4amxtfJdzU2LVFKiWn4kFzvKbb7XSJTKXYXBD2S-5FbHKBUlJ9M0nBtRUl4\/s1600\/q068_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjnaGLscANtl9exKj5JZ3kS9FdswEu7w0ZTa47khLHNKzSCPb-0g6KEG2_H7mtG6zXcnd2hi6FawHLtxjO_4amxtfJdzU2LVFKiWn4kFzvKbb7XSJTKXYXBD2S-5FbHKBUlJ9M0nBtRUl4\/s1600\/q068_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПараллельная обработка в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧтобы сделать обычный последовательный поток параллельным, надо вызвать у объекта Stream метод parallel. Кроме того, можно также использовать метод parallelStream() интерфейса Collection для создания параллельного потока из коллекции.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ то же время если рабочая машина не является многоядерной, то поток будет выполняться как последовательный.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий фрагмент кода, выводит количество пустых строк с помощью метода parallelStream.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgkP9bPm4O-d78UksJyf1Qamhd3vfhNP1u97ToOt4_72hpAA3hcFVbusXDYwytQH8b28On7TxMbIeGfE0pegBbH-3IrBTkUry-k8Z89QKf7O_kTFS6wUHLQHwywlcDvZV2AU4KVnWiCYUw\/s1600\/q069_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgkP9bPm4O-d78UksJyf1Qamhd3vfhNP1u97ToOt4_72hpAA3hcFVbusXDYwytQH8b28On7TxMbIeGfE0pegBbH-3IrBTkUry-k8Z89QKf7O_kTFS6wUHLQHwywlcDvZV2AU4KVnWiCYUw\/s1600\/q069_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак найти максимальное число в списке Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код выводит наибольшее число которое присутствует в списке.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg7Hpk_470ShO-8ZqUnoQnGFRrxU1yFWMlfHCe2uzKffucd2TPsCNR_haaKJij77Yz4SahkFmYumqBgup6KE-9RVsJFbFymwPllr9KpBV-aBlKyTSJrr5693a3crGr0v61WIAinpS2LHFo\/s1600\/q070_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg7Hpk_470ShO-8ZqUnoQnGFRrxU1yFWMlfHCe2uzKffucd2TPsCNR_haaKJij77Yz4SahkFmYumqBgup6KE-9RVsJFbFymwPllr9KpBV-aBlKyTSJrr5693a3crGr0v61WIAinpS2LHFo\/s1600\/q070_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак найти минимальное число в списке Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EСледующий код выводит минимальное число которое присутствует в списке.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXCQvt0zLePhZw0lLF3HJSEvuTx-qxOUDhDIg8621l-0vpjztlf5G3dSjNzQdMw-wagLdaCdCVjGEgIUw59nwwwIXQ6r-2dxEexhI3PGiTg-gOX_nPqtEySU8JvXD9_B6UGBffbT5Zbe0\/s1600\/q071_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXCQvt0zLePhZw0lLF3HJSEvuTx-qxOUDhDIg8621l-0vpjztlf5G3dSjNzQdMw-wagLdaCdCVjGEgIUw59nwwwIXQ6r-2dxEexhI3PGiTg-gOX_nPqtEySU8JvXD9_B6UGBffbT5Zbe0\/s1600\/q071_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить сумму всех чисел в списке, используя Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif; text-align: justify;\"\u003EСледующий код выведет сумму всех чисел.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjOiOlAWXRFEel-KS0qmrlpGIZWb6xJFKa1NTPla9IrSMmWH7kKPmtvYqjhb1yPeunHyNX3gSQEybAbkgLh_zJNfy7xcTKXiAqSPj4ZtSlTPJa3TSEv9Jd2_9oEbytzNG5kYKfaEZCADsg\/s1600\/q072_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjOiOlAWXRFEel-KS0qmrlpGIZWb6xJFKa1NTPla9IrSMmWH7kKPmtvYqjhb1yPeunHyNX3gSQEybAbkgLh_zJNfy7xcTKXiAqSPj4ZtSlTPJa3TSEv9Jd2_9oEbytzNG5kYKfaEZCADsg\/s1600\/q072_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить среднее значение всех чисел, в списке, используя Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код выведет среднее значение всех чисел.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgA1NocIgRvPRFYdoPG7ksdCqNhxvLaD4kjAGG0vZd7N0GMWlYWIL2_x62RbJuEzuZUjpF4YcedaPfvRIVA18XBZOnBeJ28kZM60jJOq8WJLiBQX90OaOAqLXRebJYGzdDwTie-fJlT4aE\/s1600\/q073_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgA1NocIgRvPRFYdoPG7ksdCqNhxvLaD4kjAGG0vZd7N0GMWlYWIL2_x62RbJuEzuZUjpF4YcedaPfvRIVA18XBZOnBeJ28kZM60jJOq8WJLiBQX90OaOAqLXRebJYGzdDwTie-fJlT4aE\/s1600\/q073_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое Optional?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EOptional - это контейнер объекта, он может содержать значение или некоторый тип Т, или просто быть null. Он предоставляет много полезных методов избавляющие от добавления повторяющихся if null\/notNull проверок, что позволяет нам сфокусироваться на том, что мы хотим сделать.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод isPresent() возвращает true если экземпляр Optional содержит не null значение и false в противном случае. Метод orElseGet() содержит запасной механизм результата, если Optional содержит null, принимая функции для генерации значения по умолчанию. Метод map() преобразует текущее значение Optional и возвращает новый экземпляр Optional. Метод orElse() похож на orElseGet(), но вместо функции он принимает значение по умолчанию.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое Nashorn?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ENashorn - это движок JavaScript, разрабатываемый полностью на Java компанией Oracle. \u0026nbsp;Он призван дать возможность встраивать код JavaScript в приложения Java. В сравнении с Rhino, который поддерживается Mozilla \u0026nbsp;Foundation, Nashorn обеспечивает от 2 до 10 раз более высокую производительность, так как он непосредственно компилирует код в памяти и передает байт-код виртуальной машине Java. Nashorn умеет компилировать код JavaScript и генерировать классы Java, которые загружаются специальным загрузчиком. Возможен вызов кода Java прямо из JavaScript.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое jjs в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ENashorn поставляется с cmd-утилитой jjs, которая позволяет исполнять JavaScript прямо в консоли. jjs принимает список JavaScript файлов исходного кода и запускает их. Чтобы запустить файл давайте передадим его как аргумент в jjs:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejjs fileName.js\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое LocalDateTime в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ELocalDateTime объединяет вместе LocaleDate и LocalTime и содержит дату и время, но без часового пояса в календарной системе ISO-8601. Время хранится с точностью до наносекунды, так что в LocalTime можно хранить, например, величину \"13:45.30.123456789\". Есть множество удобных методов, таких как plusMinutes, plusHours, isAfter, toSecondOfDay и т.д.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое ZonedDateTime в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EZonedDateTime - аналог java.util.Calendar. Это самый мощный класс с полной информацией о временном контексте, включает временную зону. Он содержит дату и время в календарной системе ISO-8601.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить текущую дату с использованием time API из Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код выводит текущую дату.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiB7Bn4WbBTdENSkSxdh2UeHB_UpQpBEgFijXN6pl8fmwtPPPG3g-yMEhaaJ_GTOmPzWqn4UiXAMFtgz_h0wzaEcYsSap9D_DzrmyD-m8GCNnKhRGF_ysSyUGvrY5YemRSKuEgnmqizSxg\/s1600\/q079_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiB7Bn4WbBTdENSkSxdh2UeHB_UpQpBEgFijXN6pl8fmwtPPPG3g-yMEhaaJ_GTOmPzWqn4UiXAMFtgz_h0wzaEcYsSap9D_DzrmyD-m8GCNnKhRGF_ysSyUGvrY5YemRSKuEgnmqizSxg\/s1600\/q079_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак добавить 1 неделю к текущей дате с использованием time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код добавляет 1 неделю к текущей дате.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgo1TEcD7e8pw39eAhe0B3XFrosWrdTUSZzcghG5TCKVc3Uk3_C9jkeWjPMu-smHVeuwsDn3LFNDFIJ57A9_6YXUMoY4Rw2L5eAtZtUgSB_EhW_GdM7-15N5FWlO4VOB73Ou3xfvXGDVpk\/s1600\/q080_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgo1TEcD7e8pw39eAhe0B3XFrosWrdTUSZzcghG5TCKVc3Uk3_C9jkeWjPMu-smHVeuwsDn3LFNDFIJ57A9_6YXUMoY4Rw2L5eAtZtUgSB_EhW_GdM7-15N5FWlO4VOB73Ou3xfvXGDVpk\/s1600\/q080_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак добавить 1 месяц к текущей дате с использованием time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код добавляет 1 месяц к текущей дате.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi1gXmVmeTc7rTp8MiYv7siZFWFKgWGsMB10zoKSSyW-A2aVat37q7iCBlkOnN1FaJJHmQs7cQM0z3RNLYBWnDAgGnTO6crxIm88LpCNglAmMYcaWJBcCnxT36iTXFP2vDcojJSqiuleOc\/s1600\/q081_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi1gXmVmeTc7rTp8MiYv7siZFWFKgWGsMB10zoKSSyW-A2aVat37q7iCBlkOnN1FaJJHmQs7cQM0z3RNLYBWnDAgGnTO6crxIm88LpCNglAmMYcaWJBcCnxT36iTXFP2vDcojJSqiuleOc\/s1600\/q081_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак добавить 1 год к текущей дате с использованием time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код добавляет 1 год к текущей дате.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjtXJX3qsFDJgf-iM_9jWM8EAnV4n9F25oHk8cHMUuWc31KIBMhxT27h7c9_XUUafV4rtR4rNx9hjHLqH8X7hXZCBHkGNYpuwHBm9JbaVNBHy4eWzxG1Juecnn0pSQkODFbKyz0oBfDzuc\/s1600\/q082_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjtXJX3qsFDJgf-iM_9jWM8EAnV4n9F25oHk8cHMUuWc31KIBMhxT27h7c9_XUUafV4rtR4rNx9hjHLqH8X7hXZCBHkGNYpuwHBm9JbaVNBHy4eWzxG1Juecnn0pSQkODFbKyz0oBfDzuc\/s1600\/q082_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак добавить 10 лет к текущей дате с использованием time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код добавляет 10 лет к текущей дате.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg32JNrPJ1PUH6tVireV2dGtAFYvOnZ7EvVNbw-_-RzkrTPhRJ39Qq2X8wY_Xm25dInod3HJS0Te-tvsYXNXfQs3nntbgebpG9kZV-iI7uoyuczW-wLPgYyplC7EU13IUsCkKbVU3fkz08\/s1600\/q083_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg32JNrPJ1PUH6tVireV2dGtAFYvOnZ7EvVNbw-_-RzkrTPhRJ39Qq2X8wY_Xm25dInod3HJS0Te-tvsYXNXfQs3nntbgebpG9kZV-iI7uoyuczW-wLPgYyplC7EU13IUsCkKbVU3fkz08\/s1600\/q083_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить следующий вторник используя time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код возвращает следующий вторник.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiJGLybq2X2cr4sbK2NvOowkKXIwkRSvnxnh3ABtu9LZuxO_p4S47VUjeLFKHnVO6QzRj9B_jaxWWQnHzvuHHI43ddk1jrUD_iMpcdl8pXZi1tqGMpTOu7hmV2N7R93uF0lSGzxgycJ0dc\/s1600\/q084_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiJGLybq2X2cr4sbK2NvOowkKXIwkRSvnxnh3ABtu9LZuxO_p4S47VUjeLFKHnVO6QzRj9B_jaxWWQnHzvuHHI43ddk1jrUD_iMpcdl8pXZi1tqGMpTOu7hmV2N7R93uF0lSGzxgycJ0dc\/s1600\/q084_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить вторую субботу текущего месяца используя time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код демонстрирует это.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh6mCCdoasOIONG_EipyUdoeNSVa7mK-ahUPHGI_RiaVxtyigwBwXfWva_dgYtVK4vT3SChncz_YoIcUguDaVA3196tYSwcenVgO0dnMM7lMSXPbezBT5evNeTfATQzpFY_uZGuNerBJDQ\/s1600\/q085_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh6mCCdoasOIONG_EipyUdoeNSVa7mK-ahUPHGI_RiaVxtyigwBwXfWva_dgYtVK4vT3SChncz_YoIcUguDaVA3196tYSwcenVgO0dnMM7lMSXPbezBT5evNeTfATQzpFY_uZGuNerBJDQ\/s1600\/q085_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак получить текущею дату в миллисекундах используя time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код возвращает дату в миллисекундах.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhNHKcGAYqag-JQafkKJktB6Ww9WsQi0LUcb_xSCGEZ40w6U0aSm49mM61sNPdWxKNFM23ZH5zSdJ-JQYt0pmNsHfWws5eqOEWXLI45ijJ-U_Y0KQNjl_6sYwlAv_t3rT2lDwjvhedYobA\/s1600\/q086_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhNHKcGAYqag-JQafkKJktB6Ww9WsQi0LUcb_xSCGEZ40w6U0aSm49mM61sNPdWxKNFM23ZH5zSdJ-JQYt0pmNsHfWws5eqOEWXLI45ijJ-U_Y0KQNjl_6sYwlAv_t3rT2lDwjvhedYobA\/s1600\/q086_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЯк получить текущею дату по местному времени в миллисекундах используя используя time API?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСледующий код демонстрирует это.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiC8sATA7edkkNseBvGxXXSXcjbXqaswj1y3HjcY8I961Jrffu4jUKuX-vxaZY8LJNDqIAmKusQHekcVfPsW7SmgeH1Hz47lv8s-oaOXPwjgMwE5dy6tGJe6klB29QwvaxFLu2YqZFx2Ko\/s1600\/q087_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiC8sATA7edkkNseBvGxXXSXcjbXqaswj1y3HjcY8I961Jrffu4jUKuX-vxaZY8LJNDqIAmKusQHekcVfPsW7SmgeH1Hz47lv8s-oaOXPwjgMwE5dy6tGJe6klB29QwvaxFLu2YqZFx2Ko\/s1600\/q087_p01.jpg\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: justify;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой класс появился в Java 8 для декодирования данных?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ Java 8 для этого появился класс public static class Base64.Decoder - этот класс реализует декодер для декодирования байт данных, используя схему кодирования Base64 как указано в RFC 4648 и RFC 2045, класс безопасен для использования несколькими параллельными потоками.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой класс появился в Java 8 для кодирования данных?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ Java 8 для этого появился класс public static class Base64.Encoder - этот класс реализует \u0026nbsp;кодер для кодирования байт данных, используя схему кодирования Base64 как указано в RFC 4648 и RFC 2045, класс безопасен для использования несколькими параллельными потоками.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак создать Base64 декодировщик?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользуя метод getDecoder() класса Base64 он возвращает декодировщик Base64.Decoder, который декодирует данные с помощью схемы кодирования base64.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак создать Base64 кодировщик?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИспользуя метод getEncoder() класса Base64 он возвращает кодировщик Base64.Encoder, который кодирует данные с помощью схемы кодирования base64.\u003C\/span\u003E\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/3452701928965522448\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/java-8-2.html#comment-form","title":"Комментарии: 7"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/3452701928965522448"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/3452701928965522448"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/java-8-2.html","title":"Ответы на вопросы на собеседование Java 8 (часть 2)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEirTqbqlixeGGaXOqVzLq-oSnOB_XhtNCtiwczTkkAaxPbUShT9C0-DTr4RkozIAarkWqKVHTD6R4wSiFJXaLGWHZYIZacf7xQYumQMv6oXrPiwDGcC2ukQMkC9eTOjJrPoxB2VJzJIOEE\/s72-c\/q052_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"7"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-5249980587184874632"},"published":{"$t":"2016-05-15T18:49:00.002+03:00"},"updated":{"$t":"2016-11-02T19:59:46.347+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java 8"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование Java 8 (часть 1)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие нововведения, появились в Java 8?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ Java 8 было добавлено много функций, наиболее значимые из них упомянуты ниже:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПолноценная поддержка лямбда-выражений, которая добавляет функциональные возможности обработки данных для Java.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКлючевое слово default в интерфейсах для поддержки функциональности по умолчанию(интерфейс может иметь реализацию метода по умолчанию).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылки на методы.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EФункциональные интерфейсы (предикаты, поставщики и т. д.)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПотоки (stream) для работы с коллекциями\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНовое API для работы с датами\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ENashorn движок JavaScript, разрабатываемый полностью на Java компанией Oracle.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ca name='more'\u003E\u003C\/a\u003E\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКак сортировать список строк с помощью лямбда-выражения?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cspan style=\"text-align: justify;\"\u003EСледующий код сортирует список строк с помощью лямбда-выражения Java 8:\u003C\/span\u003E\u003Cspan style=\"text-align: justify;\"\u003E\u003C\/span\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003C\/div\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEisojSd9gbzUNohCt4Wlsvc-CkC74uWZ_7MZX2E1l_rkq0aZGM5c3H1DJo3JiWpX5jCJvVXALYHsUdAoeN3jVhs1tweuH9tR0d4ZSvWnG0lAOUeesjhfGmBKXOJwoOKkdPI-5z0UDoFoew\/s1600\/q002_p01.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cimg border=\"0\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEisojSd9gbzUNohCt4Wlsvc-CkC74uWZ_7MZX2E1l_rkq0aZGM5c3H1DJo3JiWpX5jCJvVXALYHsUdAoeN3jVhs1tweuH9tR0d4ZSvWnG0lAOUeesjhfGmBKXOJwoOKkdPI-5z0UDoFoew\/s1600\/q002_p01.jpg\" \/\u003E\u003C\/span\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакова структура лямбда-выражения?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЛямбда выражение имеет следующую структуру:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E(method params) -\u0026gt; {lambda expression body}\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eгде\u0026nbsp;\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003C\/div\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Emethod params - список входящих параметров, разделенных запятой(в случаи если параметров больше одного заключаются в скобки).\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eоператор \"-\u0026gt;\" - служит разделителем между списком параметров нашего метода и телом, в котором происходит его реализация.\u0026nbsp;\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Elambda expression body - тело метода, состоящее из одного выражения или нескольких, заключенных в фигурные скобки.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EК каким переменным есть доступ у Лямбда-выражений?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЛямбда-выражения имеют доступ к переменным области видимости, в которой их определили. Но доступ возможен только при условии, что переменные являются effective final, то есть либо явно имеют модификатор final, либо не меняют своего значения после инициализации, если переменной присваивается значение во второй раз, лямбда-выражение вызывает ошибку компиляции.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Ch3 style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое ссылки на метод?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылки на метод - компактные лямбда-выражения которые позволяют передавать ссылки на методы или конструкторы. Для этого нужно использовать ключевое слово \"::\".\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылочные методы внедряют полезный синтаксис, чтобы ссылаться на существующие методы или конструкторы Java-классов или объектов (экземпляров). Совместно с лямбда-выражениями, ссылочные методы делают языковые конструкции компактными и лаконичными, делая его шаблонным.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие виды ссылок на методы вы знаете?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСуществует четыре вида ссылок на методы:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылка на статический метод(ContainingClass::staticMethodName)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылка на метод конкретного объекта(ContainingObject::instanceMethodName)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылка на метод произвольного объекта конкретного типа(ContainingType::methodName)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСсылка на конструктор(ClassName::new), для дженериков (generics) Class\u0026lt; T \u0026gt;::new.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: arial, helvetica, sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОбъясните выражение System.out::println.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВыражение System.out::println является ссылкой на статический метод println об'єкта out класа System, который эквивалентен лямбда-выражению x -\u0026gt; System.out.println(x).\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто такое функциональные интерфейсы?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EФункциональный интерфейс - это тот интерфейс, который определяет строго один абстрактный метод.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ Java 8 была введена новая аннотация @FunctionalInterface для обозначения интерфейса, функциональным, эта аннотация используется для того, чтобы избежать случайного добавления абстрактных методов в функциональный интерфейс. Она не обязательна, но является хорошей практикой написания кода.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EФункциональные интерфейсы позволяют нам использовать лямбда-выражения для создания экземпляра таких интерфейсов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЛучшим примером функционального интерфейса будет интерфейс java.lang.Runnable с одним абстрактным методом run(). Заметим, интерфейс может включать сколько угодно default методов и при этом оставаться функциональным, потому что default методы - не абстрактные.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс BiConsumer\u0026lt;T,U\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает два входных параметра, и не возвращает никакого результата.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс BiFunction\u0026lt;T,U,R\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает два аргумента и\u0026nbsp;возвращает\u0026nbsp;результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс BinaryOperator\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над двумя операндами одного и того же типа, выполняет над ними бинарную операцию и возвращает результат того же типа, что и операнды.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс BiPredicate\u0026lt;T,U\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой предикат (булеву функцию) двух аргументов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс BooleanSupplier?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой поставщика булевых результатов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс Consumer\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один входной аргумент, выполняет некоторое действие над объектом типа T, при этом ничего не возвращая.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleBinaryOperator?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над двумя операндами типа double, возвращает результат типа double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleConsumer?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа double, и не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleFunction\u0026lt;R\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа double, и возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoublePredicate?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой предикат (булеву функцию) одного аргумента типа double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleSupplier?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой поставщика double результатов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleToIntFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа double, возвращает результат типу int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleToLongFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа double, и возвращает результат типу long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cb style=\"font-family: arial, helvetica, sans-serif;\"\u003EДля чего нужен функциональный интерфейс DoubleUnaryOperator?\u003C\/b\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над одним аргументом типа double, возвращает результат типу double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс Function\u0026lt;T,R\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию перехода от объекта типа T к объекту типа R.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntBinaryOperator?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над двумя операндами типа int, возвращает результат типа int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntConsumer?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа int, и не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntFunction\u0026lt;R\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа int, возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntPredicate?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой предикат (булеву функцию) одного аргумента типа int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntSupplier?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой поставщика int результатов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntToDoubleFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа int, возвращает результат типу double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntToLongFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа int, возвращает результат типу long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс IntUnaryOperator?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над одним аргументом типа int, возвращает результат типу int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongBinaryOperator?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над двумя операндами типа long, возвращает результат типа long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongConsumer?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа long, не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongFunction\u0026lt;R\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа long, и возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongPredicate?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой предикат (булеву функцию) одного аргумента типа long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongSupplier?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой поставщика long результатов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongToDoubleFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа long, и возвращает результат типу double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongToIntFunction?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент типа long, и возвращает результат типу int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс LongUnaryOperator?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над одним аргументом типа long, возвращает результат типу long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ObjDoubleConsumer\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа object, и второй типа double, и не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ObjIntConsumer\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа object, и второй типа int, и не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ObjLongConsumer\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию, которая принимает один аргумент типа object, и второй типа long, и не возвращает результат.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс Predicate\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой предикат (булеву функцию) одного аргумента.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс Supplier\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой поставщика результатов.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToDoubleBiFunction\u0026lt;T,U\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает два аргумента, возвращает результат типу double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToDoubleFunction\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент, возвращает результат типа double.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToIntBiFunction\u0026lt;T,U\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает два аргумента, возвращает результат типу int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToIntFunction\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент, возвращает результат типа int.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToLongBiFunction\u0026lt;T,U\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает два аргумента, возвращает результат типу long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс ToLongFunction\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой функцию, которая принимает один аргумент, возвращает результат типа long.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чего нужен функциональный интерфейс UnaryOperator\u0026lt;T\u0026gt;?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПредставляет собой операцию над одним операндом, возвращает результат того же типа, что и операнд.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Ca href=\"https:\/\/jsehelper.blogspot.nl\/2016\/05\/java-8-2.html\"\u003EJava 8 (часть 2).\u003C\/a\u003E\u003C\/span\u003E\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/5249980587184874632\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/java-8-1.html#comment-form","title":"Комментарии: 1"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/5249980587184874632"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/5249980587184874632"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/05\/java-8-1.html","title":"Ответы на вопросы на собеседование Java 8 (часть 1)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEisojSd9gbzUNohCt4Wlsvc-CkC74uWZ_7MZX2E1l_rkq0aZGM5c3H1DJo3JiWpX5jCJvVXALYHsUdAoeN3jVhs1tweuH9tR0d4ZSvWnG0lAOUeesjhfGmBKXOJwoOKkdPI-5z0UDoFoew\/s72-c\/q002_p01.jpg","height":"72","width":"72"},"thr$total":{"$t":"1"}},{"id":{"$t":"tag:blogger.com,1999:blog-8798235924082241388.post-8722603169296183790"},"published":{"$t":"2016-02-07T09:28:00.002+02:00"},"updated":{"$t":"2016-11-02T20:01:24.110+02:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Interview"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Java Developer"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Потоки ввода\/вывода в java"}],"title":{"type":"text","$t":"Ответы на вопросы на собеседование потоки ввода\/вывода в java (часть 2)."},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие подклассы базового класса Writer ви знаєте, для чего они предназначены?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПодклассы базового класса Writer:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EWriter - абстрактный класс, описывающий символьный вывод\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EStringWriter - выходной поток, пишущий в строку\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EPrintWriter - выходной поток, включающий методы print() и println()\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EPipedWriter - выходной канал\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EOutputStreamWriter - выходной поток, транслирующий байты в символы\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFilterWriter - фильтрующий писатель\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFileWriter - выходной поток, пишущий в файл\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ECharArrayWriter - выходной поток, который пишет в символьный массив\u003Ca name='more'\u003E\u003C\/a\u003E\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EBufferedWriter - буферизированный выходной символьный поток\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто \u0026nbsp;такое абсолютный путь и относительный путь?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EАбсолютный путь - это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущей директории. Полный путь всегда начинается с корневого каталога.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EОтносительный путь - это путь по отношению к текущему рабочему каталогу.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ каких пакетах лежат классы-потоки?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EСтандартный классы ввода\\вывода в Java лежат в пакете java.io.*. В JDK 7 добавлен более современный способ работы с потоками под названием Java NIO или Java New IO ети классы лежат в пакете java.nio.*. Для работы с архивами используются классы из пакета java.util.*.\u003C\/span\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете о классах-надстройках?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКлассы-настройки ето классы которые добавляют к существующим потокам полезные дополнительные свойства.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПримеры классов: BufferedOutputStream, BufferedInputStrem, BufferedWriter , BufferedReader - \u0026nbsp;буферезируют поток и повышают производительность.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой класс-надстройка позволяет читать данные из входного байтового потока в формате примитивных типов данных?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля чтения байтовых данных (не строк) применяется класс DataInputStream. В этом случае необходимо использовать классы из группы InputStream.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля преобразования строки в массив байтов, пригодный для помещения в поток ByteArrayInputStream, в классе String предусмотрен метод getBytes(). Полученный ByteArrayInputStream представляет собой поток InputStream, подходящий для передачи DataInputStream.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПри побайтовом чтении символов из форматированного потока DataInputStream методом readByte() любое полученное значение будет считаться действительным, поэтому возвращаемое значение неприменимо для идентификации конца потока. Вместо этого можно использовать метод available(), который сообщает, сколько еще осталось символов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКласс DataInputStream позволяет читать элементарные данные из потока через интерфейс DataInput, который определяет методы, преобразующие элементарные значения в форму последовательности байтов. Такие потоки облегчают сохранение в файле двоичных данных.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие классы-надстройки позволяют ускорить чтение\/запись за счет использования буфера?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля этого используются классы, позволяющие буферизировать поток:\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejava.io.BufferedInputStream - буферизированный входной поток. Конструкторы: BufferedInputStream(InputStream in), BufferedInputStream(InputStream in, int size).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejava.io.BufferedOutputStream - буферизированный выходной поток. Конструкторы: BufferedOutputStream(OutputStream out), BufferedOutputStream(OutputStream out, int size).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejava.io.BufferedReader - буферизированный входной символьный поток. Конструкторы: BufferedReader(Reader r), BufferedReader(Reader in, int sz).\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Ejava.io.BufferedWriter - буферизированный выходной символьный поток. Конструкторы: BufferedWriter(Writer out), BufferedWriter(Writer out, int sz).\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие классы позволяют преобразовать байтовые потоки в символьные и обратно?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EOutputStreamWriter - это мост между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjL30K4ZFFuaKuGCg1WYCYyvYmfAcn5rxMO1cajN4eFHZgmTi9ZUT3lGwQzDwlv2ipbjLGPSWKrALA3tscLfzRIhBoMz7MEC4jyc1uxBcuUxbq704PsGlr4cK0Y7zwUSZc8sbWNtkDr-30\/s1600\/OutputStream_example.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" height=\"132\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjL30K4ZFFuaKuGCg1WYCYyvYmfAcn5rxMO1cajN4eFHZgmTi9ZUT3lGwQzDwlv2ipbjLGPSWKrALA3tscLfzRIhBoMz7MEC4jyc1uxBcuUxbq704PsGlr4cK0Y7zwUSZc8sbWNtkDr-30\/s640\/OutputStream_example.jpg\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EInputStreamReader - аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh5BEuRL_OcniprnGwhK2Yg1RGGiss5wLs40wyG9QFHXu95hLlG8-T0spLSP3m7dNv-3fF0bTOrktjeZqv7MXZi2xrbC8uPkBMBkAqvHrxGnOQj3ucIdU_oVUPYHrtdL9eAax5jKWh-KZY\/s1600\/InputStream_example.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" height=\"212\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh5BEuRL_OcniprnGwhK2Yg1RGGiss5wLs40wyG9QFHXu95hLlG8-T0spLSP3m7dNv-3fF0bTOrktjeZqv7MXZi2xrbC8uPkBMBkAqvHrxGnOQj3ucIdU_oVUPYHrtdL9eAax5jKWh-KZY\/s640\/InputStream_example.jpg\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ чем отличие класса PrintWriter от PrintStream?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EПрежде всего, в классе PrintWriter применен усовершенствованный способ работы с символами UNICODE и другой механизм буферизации вывода.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ классе PrintStream буфер вывода сбрасывался всякий раз, когда вызывался метод print или println. При использовании класса PrintWriter вы можете отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ классе PrintWriter предусмотрено два конструктора, позволяющих работать с выходными потоками класса OutputStream:\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epublic PrintWriter(OutputStream out); - создает поток без автоматического сброса буферов.\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Epublic PrintWriter(OutputStream out, boolean autoFlush); - способ сброса буферов при использовании второго конструктора зависит от значения параметра autoFlush. Если он равен true, автоматический сброс буферов выполняется, а если false - нет.\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EНабор реализаций основных методов print и println класса PrintWriter аналогичен набору реализация этих методов класса PrintStream.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЗдесь же мы упомянем только методы flush и checkError.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EМетод flush вызывает принудительный сброс буфера вывода. Если поток PrintWriter создан на базе стандартного потока вывода System.out, то записанные в него данные появятся на консоли только после выполнения сброса буфера (автоматического или сделанного методом flush).\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто же касается метода checkError, то в случае возникновения ошибок он возвращает значение true.\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой класс предназначен для работы с элементами файловой системы?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EВ отличие от большинства классов ввода\/вывода, класс File работает не с потоками, а непосредственно с файлами. Данный класс позволяет получить информацию о файле: права доступа, время и дата создания, путь к каталогу. А также осуществлять навигацию по иерархиям подкаталогов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКласс java.io.File может представлять имя определённого файла, а также имена группы файлов, находящихся в каталоге. Если класс представляет каталог, то его метод list() возвращает массив строк с именами всех файлов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля создания объектов класса File можно использовать один из следующих конструкторов.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFile(File dir, String name) - указывается объекта класса File (каталог) и имя файла\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFile(String path) - указывается путь к файлу без указания имени файла\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFile(String dirPath, Sring name) - указывается путь к файлу и имя файла\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EFile(URI url) - указывается объекта URI, описывающий файл\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакой символ является разделителем при указании пути в файловой системе?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EДля различных систем символ разделителя различается. Вытащить его можно используя file.separator, а так же в статическом поле File.separator. \u0026nbsp;Для Windows это \"\\\".\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие методы класса File ви знаєте?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EУ класса File очень много методов, перечислим некоторые.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EgetAbsolutePath() - абсолютный путь файла, начиная с корня системы. В Android корневым элементом является символ слеша (\/)\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EcanRead() - доступно для чтения\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EcanWrite() - доступно для записи\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Eexists() - файл существует или нет\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EgetName() - возвращает имя файла\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EgetParent() - возвращает имя родительского каталога\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EgetPath() - путь\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ElastModified() - дата последнего изменения\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EisFile() - объект является файлом, а не каталогом\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EisDirectory - объект является каталогом\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EisAbsolute() - возвращает true, если файл имеет абсолютный путь\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003ErenameTo(File newPath) - переименовывает файл. В параметре указывается имя нового имени файла. Если переименование прошло неудачно, то возвращается false\u003C\/span\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003Edelete() - удаляет файл. Также можно удалить пустой каталог\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\n\u003Cdiv\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EЧто вы знаете об интерфейсе FileFilter?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EИнтерфейс FileFilter применяется для проверки, попадает ли объект ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать.\u003C\/span\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003E\u003C\/span\u003E\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Ch3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EКакие классы позволяют архивировать объекты?\u003C\/span\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv style=\"text-align: justify;\"\u003E\n\u003Cspan style=\"font-family: \u0026quot;arial\u0026quot; , \u0026quot;helvetica\u0026quot; , sans-serif;\"\u003EDeflaterOutputStream, InflaterInputStream, ZipInputStream, ZipOutputStream, \u0026nbsp;GZIPInputStream, GZIPOutputStream.\u003C\/span\u003E\u003C\/div\u003E\n\u003Clink href=\"https:\/\/plus.google.com\/105527202953364202368\" rel=\"author\"\u003E\u003C\/link\u003E \u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/jsehelper.blogspot.com\/feeds\/8722603169296183790\/comments\/default","title":"Комментарии к сообщению"},{"rel":"replies","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/02\/java-2.html#comment-form","title":"Комментарии: 0"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/8722603169296183790"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/8798235924082241388\/posts\/default\/8722603169296183790"},{"rel":"alternate","type":"text/html","href":"https:\/\/jsehelper.blogspot.com\/2016\/02\/java-2.html","title":"Ответы на вопросы на собеседование потоки ввода\/вывода в java (часть 2)."}],"author":[{"name":{"$t":"vasyl1889"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06654290728126534362"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjL30K4ZFFuaKuGCg1WYCYyvYmfAcn5rxMO1cajN4eFHZgmTi9ZUT3lGwQzDwlv2ipbjLGPSWKrALA3tscLfzRIhBoMz7MEC4jyc1uxBcuUxbq704PsGlr4cK0Y7zwUSZc8sbWNtkDr-30\/s72-c\/OutputStream_example.jpg","height":"72","width":"72"},"thr$total":{"$t":"0"}}]}});