Follow us

Вопросы на собеседование Junior Java Developer.

Вопросы и ответы на собеседование Java Junior Developer.

  • ГЛАВНАЯ
  • INTERVIEW Q/A ▾
    • Java Developer ▸
      • Список вопросов
      • OOP
      • Java core
      • Java Collections Framework
      • Java 8
      • Потоки ввода/вывода в java
      • Multithreading
      • Сериализация
      • JDBC
      • JSP, Servlets, JSTL
      • Базы данных
      • SQL
      • Тестирование, JUNIT
      • Log4j
      • UML
      • XML
      • Основы HTML
      • Основы CSS
      • Основы WEB
    • Java Developer (advanced) ▸
      • Список вопросов
      • Spring Framework
      • Java Server Faces (JSF)
      • ORM, Hibernate
      • Java Persistence API (JPA)
      • Web services
      • Design patterns
      • JMS
    • Front-End Developer, other ▸
      • Список вопросов
      • JavaScript
      • AngularJS
      • jQuery
      • JSON
      • Bootstrap
      • MongoDB
      • Maven
      • Apache Ant
  • SITEMAP
  • BLOG

  • Что такое рефлексия?

Рефлексия используется для получения или модификации информации о типах во время выполнения программы. Этот механизм позволяет получить сведения о классах, интерфейсах, полях, методах, конструкторах во время исполнения программы. При этом не нужно знать имена классов, методов или интерфейсов. Также этот механизм позволяет создавать новые объекты, выполнять методы и получать и устанавливать значения полей.

  • Что произойдет со сборщиком мусора (GC), если во время выполнения метода finalize() некоторого объекта произойдет исключение?

Во время старта JVM запускается поток finalizer, который работает в фоне. Этот поток имеет метод runFinalizer, который игнорирует все исключения методов finalize объектов перед сборкой мусора.
То есть если во время выполнения метода finalize возникнет исключительная ситуация, его выполнение будет остановлено и это никак не скажется на работоспособности самого сборщика мусора (garbage collector).

  • Что такое интернационализация, локализация?

Интернационализация (internationalization, а для краткости - i18n) - такой способ создания приложений, при котором их можно легко адаптировать для разных аудиторий, говорящих на разных языках.
Локализацияlocalization а для краткости - l10n) -  адаптация интерфейса приложения под несколько языков. Добавление нового языка может внести определенные сложности в локализацию интерфейса.

  • Что такое Аннотации в Java?

Аннотации - это своего рода метатеги, которые добавляются к коду и применяются к объявлению пакетов, классов, конструкторов, методов, полей, параметров и локальных переменных. Аннотации всегда обладают некоторой информацией и связывают эти "дополнительные данные" и все перечисленные конструкции языка.
Фактически аннотации представляют собой их дополнительные модификаторы, применение которых не влечет за собой изменений ранее созданного кода.

  • Какие функции выполняет Аннотации?

Аннотация выполняет следующие функции:
  1. дает необходимую информацию для компилятора;
  2. дает информацию различным инструментам для генерации другого кода, конфигураций и т. д.;
  3. может использоваться во время работы кода;
Самая часто встречаемая аннотация, которую встречал любой программист, даже начинающий это @Override.

  • Какие встроенные аннотации в Java вы знаете?


В языке Java SE определено несколько встроенных аннотаций, большинство из их являются специализированными. Четыре типа @Retention, @Documented, @Target и @Inherited - из пакета java.lang.annotation.
Из оставшиеся выделяются - @Override, @Deprecated, @SafeVarargs и @SuppressWarnings - из пакета java.lang. Широкое использование аннотаций в различных технологиях и фреймворках обуславливается возможностью сокращения кода и снижения его связанности.

  • Что делают аннотации @Retention, @Documented, @Target и @Inherited?

Эти аннотации, имеют следующее значение:
  • @Retention - эта аннотация предназначена для применения только в качестве аннотации к другим аннотациям, позволяет указать жизненный цикл аннотации: будет она присутствовать только в исходном коде, в скомпилированном файле, или она будет также видна и в процессе выполнения. Выбор нужного типа зависит от того, как вы хотите использовать аннотацию. 
  • @Documented - это маркер-интерфейс, который сообщает инструменту, что аннотация должна быть документирована.
  • @Target - эта аннотация задает тип объявления, к которым может быть применима аннотация. Принимает один аргумент, который должен быть константой из перечисления ElementType, это может быть поле, метод, тип и т.д. Например, чтобы указать, что аннотация применима только к полям и локальным переменным: @Targer({ ElementType.FIELD, ElementTyle.LOCAL_VARIABLE } )
  • @Inherited - это аннотация-маркер, которая может применяться в другом объявление аннотации, она касается только тех аннотаций, что будут использованы в объявлениях классов. Эта аннотация позволяет аннотации супер класса быть унаследованной в подклассе.

  • Что делают аннотации @Override, @Deprecated, @SafeVarargs и @SuppressWarnings?

Эти аннотации предназначены для:
  • @Override - аннотация-маркер, которая может применяться только к методам. Метод, аннотированный как @Override, должен переопределять метод супер класса.
  • @Deprecated - указывает, что объявление устарело и должно быть заменено более новой формой.
  • @SafeVarargs - аннотация-маркер, применяется к методам и конструкторам. Она указывает, что никакие небезопасные действия, связанные с параметром переменного количества аргументов, недопустимы. Применяется только к методам и конструкторам с переменным количеством аргументов, которые объявлены как static или final.
  • @SuppressWarnings - эта аннотация указывает, что одно или более предупреждений, которые могут быть выданы компилятором следует подавить.

  • Какой жизненный цикл аннотации можно указать с помощью @Retention?

Существует 3 возможные варианты чтобы указать где аннотация будет жить. Они инкапсулированы в перечисление java.lang.annotation.RetentionPolicy. Это SOURSE, CLASS, RUNTIME.
  • SOURCE - содержаться только в исходном файле и отбрасываются при компиляции.
  • CLASS - сохраняются в файле, однако они недоступны JVM во время выполнения.
  • RUNTIME - сохраняются в файле во время компиляции и остаются доступными JVM во время выполнения.

  • К каким элементам можно применять аннотацию, как это указать?

Для того чтобы ограничить использование аннотации её нужно проаннотировать. Для этого существует аннотация @Target.
  • @Target(ElementType.PACKAGE) - только для пакетов;
  • @Target(ElementType.TYPE) - только для классов;
  • @Target(ElementType.CONSTRUCTOR) - только для конструкторов;
  • @Target(ElementType.METHOD) - только для методов;
  • @Target(ElementType.FIELD) - только для атрибутов(переменных) класса;
  • @Target(ElementType.PARAMATER) - только для параметров метода;
  • @Target(ElementType.LOCAL_VARIABLE) - только для локальных переменных.
В случае если вы хотите, что бы ваша аннотация использовалась больше чем для одного типа параметров, то можно указать @Target следующим образом:
тут мы говорим, аннотацию можно использовать только для параметров метода и для локальных переменных.

  • Как создать свою Аннотацию?

Написать свою аннотацию не так сложно, как могло бы казаться. В следующем коде приведено объявление аннотации.
как вы видите на месте где обычно пишут class или interface у нас написано @interface.
Структура практически та же, что и у интерфейсов, только пишется @interface.
  • @interface - указывает на то, что это аннотация
  • default - говорит про то, что метод по умолчанию будет возвращать определённое значение.
Аннотация готова теперь ею можно пользоваться, также аннотацию можно сконфигурировать.

  • Атрибуты каких типов допустимы в аннотациях?

Атрибуты могут иметь только следующие типы:
примитивы
  • String
  • Class или «any parameterized invocation of Class»
  • enum
  • annotation
  • массив элементов любого из вышеперечисленных типов

Последний пункт надо понимать как то, что допустимы только одномерные массивы.

  • Что такое  JMX?

Управленческие расширения Java (Java Management Extensions, JMX) -  API при помощи которого можно контролировать работу приложений и управлять различными параметрами удаленно в реальном времени. Причем управлять можно фактически чем угодно - лишь бы это было написано на Java. Это может быть микро-устройство типа считывателя отпечатка или система, включающая тысячи машин, каждая из которых предоставляет определенные сервисы. Данные ресурсы представляются MBean-объектами (управляемый Java Bean). JMX вошла в поставку Java начиная с версии 5.

  • Какие выгоды предлагает JMX?

Вот как эти выгоды описывает Sun
  • Простота реализации. Архитектура JMX основана на понятии "сервера управляемых объектов" который выступает как управляющий агент и может быть запущен на многих устройствах/компьютерах, которые поддерживают JAVA.
  • Масштабируемость. Службы агентов JXM являются независимыми и могут быть встроены наподобие plug-in’ов в агента JMX. Компонентно-основанаая система позволяет создавать масштабируемые решения от крохотных устройств до очень крупных систем.
  • Возможность расширять концепцию в будущем. JMX позволяет создавать гибкие решения. Например, JMX позволяет создавать удобные решения, которые могут находить различные сервисы.
  • Концентрация на управлении. JMX предоставляет сервися, разработанные для работы в распределенных средах и его API спроектировано для решений, которые управляют приложениями, сетями, сервисами и т.д. 

  • Что еще умеет JMX кроме дистанционного управления?

JMX делает гораздо больше, чем просто предоставляет рабочую оболочку для дистанционного управления. Она обеспечивает дополнительные услуги (services), способные занять ключевое место в процессе разработки. Приведу лишь краткое описание:
  • Event notification: Интерфейсы оповещают исполнителей и слушателей о событиях типа изменения атрибута, что позволяет MBean-компонентам общаться с другими MBean-компонентами или удалённым "командным пунктом" и докладывать об изменениях своего состояния
  • Monitor service: Monitor MBeans может посылать уведомления о событиях зарегистрированным слушателям. Слушателем может выступать другой MBean или управляющее приложение. В качестве основных атрибутов, для которых используется данное свойство, являются counter, gauge или string.
  • Timer service: Timer MBean будет посылать уведомления зарегистрированным слушателям, с учётом определённого числа или временного промежутка.
  • M-let service: М-let service может создавать и регистрировать экземпляры MBean-серверов. Список MBean-компонентов и имён из классов определяются в m-let-файле с помощью MLET -меток. URL указывает на месторасположения m-let-файла.

  • Что такое MBean?

MBeans - это Java-объекты, которые реализуют определенный интерфейс. Интерфейс включает:
  1. некие величины, которые могут быть доступны;
  2. операции, которые могут быть вызваны;
  3. извещения, которые могут быть посланы;
  4. конструкторы.

  • Какие типы MBeans существуют?

Существует 4 типа MBeans:
  • Standard MBeans. Самые простые бины. Их управляющий интерфейс определяется набором методов
  • Dynamic MBeans. Они реализуют специализированный интерфейс, который делают доступным во время исполнения.
  • Open MBeans. Это Dynamic MBeans, которые используют только основные типы данных для универсального управления.
  • Model MBeans. Это Dynamic MBeans, которые полностью конфигурируемы и могут показать свое описание во время исполнения (нечто вроде Reflection)

  • Что такое MBean Server?

MBean Server - это реестр объектов, которые используются для управления. Любой объект зарегистрированный на сервере становится доступным для приложений. Надо отметить, что сервер публикует только интерфейсы и не дает прямых ссылок на объекты. Любые ресурсы, которыми вы хотите управлять должны быть зарегистрированы на сервере как MBean. Сервер предоставляет стандартный интерфейс для доступа к MBean. Интересно, что регистрировать MBean может любой другой MBean, сам агент или удаленное приложение через распределенные сервисы. Когда вы регистрируете MBean вы должны дать ему уникальное имя, которое будет использовано для обращения к даному объекту.

  • Какие механизмы обеспечивают безопасность в технологии Java?

В технологии Java безопасность обеспечивают следующие три механизма:
  • структурные функциональные возможности языка (например, проверка границ массивов, запрет на преобразования непроверенных типов, отсутствие указателей и т.д.).
  • средства контроля доступа, определяющие действия, которые разрешается или запрещается выполнять в коде (например, может ли код получать доступ к файлам, передавать данные по сети и т.д.).
  • механизм цифровой подписи, предоставляющий авторам возможность применять стандартные алгоритмы для аутентификации своих программ, а пользователям - точно определять, кто создал код и изменился ли он с момента его подписания.

  • Назовите несколько видов проверок которые выполняет верификатор байт-кода Java?

Ниже приведены некоторые виды проверок, выполняемых верификатором.
  • инициализация переменных перед их использованием.
  • согласование типов ссылок при вызове метода.
  • соблюдение правил доступа к закрытым данным и методам.
  • доступ к локальным переменным в стеке во время выполнения.
  • отсутствие переполнения стека.
При невыполнении какой-нибудь из этих проверок класс считается поврежденным и загружаться не будет.

  • Что вы знаете о "диспетчере защиты" в Java?

В качестве диспетчера защиты служит класс, определяющий, разрешено ли коду выполнять ту или иную операцию. Ниже перечислены операции, подпадающие под контроль диспетчера защиты. Существует немало других проверок, выполняемых диспетчером защиты в библиотеке Java.
  • создание нового загрузчика классов.
  • выход из виртуальной машины.
  • получение доступа к члену другого класса с помощью рефлексии.
  • получение доступа к файлу.
  • установление соединения через сокет.
  • запуск задания на печать.
  • получение доступа к системному буферу обмена.
  • получение доступа к очереди событий в AWT.
  • обращение к окну верхнего уровня.

  • Что такое JAAS?

JAAS (Java Authentication and Authorization Service - служба аутентификации и авторизации Java ) - служба JAAS, по существу, представляет собой встраиваемый прикладной интерфейс API, отделяющий прикладные программы на Java от конкретной технологии, применяемой для реализации средств аутентификации. Помимо прочего, эта служба поддерживает механизмы регистрации в UNIX и NT, механизм аутентификации Kerberos и механизмы аутентификации по сертификатам.
После аутентификации за пользователем может быть закреплен определенный набор полномочий. Входит в состав платформы Java начиная с версии Java SE 1.4.

  • Что такое Рефакторинг?

Рефакторинг - процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований..

  • Что такое JNDI?

JNDI - это API-интерфейс для доступа к службам каталогов, позволяющий клиентам осуществлять привязку и поиск объектов по имени. JNDI определяется в Java SE и не зависит от базовой реализации, то есть вы можете выполнять поиск объектов в каталоге Lightweight Directory Access Protocol (LDAP) или системе доменных имен (DNS), используя стандартный API-интерфейс.

  • Что такое JMS?

JMS, Java Message Service - это Java API (то есть набор интерфейсов и классов) для работы с Message-Oriented Middleware, изначально разработанная компанией Sun, чтобы предоставить разработчикам создавать гибкие и слабосвязанные приложения с использованием асинхронного обмена данными между приложениями (клиентами/серверами) через посредника. Асинхронность - это главная причина создания и использования JMS.
Данный набор определен в пакете javax.jms в дереве пакетов J2EE. JMS поддерживает две модели обмена сообщениями: point-to-point(точка - точка) и publish-subscribe(издатель-подписчик).

  • Что такое MOM?

MOM, Message-Oriented Middleware (промежуточное программное обеспечение) - подпрограммное обеспечение промежуточного слоя, ориентированное на обмен сообщениями в распределённом окружении. Прежде всего предназначено для реализации отложенного обмена сообщениями, на основе которого и строится Messaging System.
В отличие от традиционных систем,  в Messaging System приложения общаются не напрямую, а посредством MOM. Если один компонент системы хочет послать сообщение другому компоненту, он посылает данное сообщение MOM, а MOM затем пересылает его адресату.

  • Из каких компонентов состоит архитектура обмена сообщениями?

На высоком уровне архитектура обмена сообщениями состоит из следующих компонентов.
  • Поставщик. JMS - это только API, поэтому он нуждается в реализации способа обмена сообщениями, то есть в поставщике (также известном как брокер сообщений). Поставщик обрабатывает буферизацию и доставку сообщений.
  • Клиенты. Клиентом является любое приложение Java или компонент, который производит или потребляет сообщение с помощью поставщика. "Клиент" - это общий термин для производителя, отправителя, издателя, потребителя, приемника и подписчика.
  • Сообщения. Это объект, которые клиенты отправляют или получают от поставщика.
  • Администрируемые объекты. Брокер сообщений должен предоставить клиенту администрируемые объекты (фабрики подключений и места назначения) с помощью поиска JNDI или внедрения (как вы увидите далее).

  • Какие модели обмена сообщениями в JMS вы знаете? Опишите их.

Существует две "основных" модели обмена сообщениями:
  • Модель Точка-Точка (Point-to-Point, P2P) - в этой модели место назначения, используемое для хранения сообщений, называется очередью. Объект Queue. В этой модели один клиент помещает сообщение в очередь, а другой получает сообщение. Как только получение сообщения подтверждено, поставщик сообщений удаляет его из очереди.
  • Модель Подписчик-Издатель (Publisher-Subscriber) - место назначения называется темой. Объект Topic. При использовании данной модели клиент публикует сообщение в теме и все абоненты этой темы получают сообщение.


  • Назовите основные интерфейсы JMX, для чего они предназначены.

Рассмотрим главные интерфейсы:
  • ConnectionFactory - это обьект, ответственный за создание JMS Connection. Администратор МОМ создает данный обьект и связывает его с деревом JNDI, так что клиент JMS может получить доступ к ConnectionFactory используя стандартный JNDI lookup-механизм. В параметре инициализации нужно передавать данные вашего JMS сервера. В случае point-to-point модели используется javax.jms.QueueConnectionFactory, в случае pub-sub модели - javax.jms.TopicConnectionFactor
  • Connection - абстрактное представление реального соединения между клиентом JMS и MOM. Создает объект Session. В случае point-to-point модели используется javax.jms.QueueConnection, в случае pub-sub модели - javax.jms.TopicConnection.
  • Session - обьект, создаваемый JMS Connection и используемый клиентами для посылки и принятия сообщений. В случае point-to-point используется javax.jms.QueueSession, в случае pub-sub - javax.jms.TopicSession. Фактически, это главная "рабочая лошадка" JMS.
  • Destination - это либо queue, либо topic - в зависимости от используемой модели: javax.jms.Queue или javax.jms.Topic. Как и ConnectionFactory, destination связывается с деревом JNDI.
  • MessageProducer - обьект, который, собственно, и посылает сообщения. В случае point-to-point модели это javax.jms.QueueSender, в случае pub-sub - javax.jms.TopicPublisher.
  • MessageConsumer - обьект, принимающий сообщения. В случае point-to-point модели это javax.jms.QueueReceiver, в случае pub-sub - javax.jms.TopicSubscriber.
  • Message - сообщение. О типах сообщений будет сказано ниже.


  • Как выглядит алгоритм создания программ, работающих с JMS?

Весь алгоритм, можно просчитать по таблице интерфейсов. Выглядит он так:
  • Подключаемся к серверу, используя ConnectionFactory.
  • Получаем соединение Connection из ConnectionFactory.
  • Создаем однопоточный контекст Session из соединения.
  • Получаем буфер Destination привязанный к определенному адресу для создания интерфейсов отправки и получения сообщений.
  • Создание объектов MessageProducer для отправки или MessageConsumer для получения сообщений.
  • Отдельно идет этап создания сообщения для отправки.

  • Какие стандартные типы сообщений определены JMX?

В JMX определены следующие стандартные типы сообщений:
  • StreamMessage - это поток примитивных типов Java. Считывать можно со стандартных интерфейсов ввода/вывода.
  • MapMessage - содержит информацию на подобии коллекций в виде ключ-значение (String, Object).
  • TextMessage - обычное текстовое сообщение содержащее строку
  • ObjectMessage - для передачи Serializable-объектов.
  • ByteMessage - список не интерпретированных байт. С его помощью можно передавать файлы.
Кроме того, некоторые имплементации (например, OpenFusion и WebLogic) предоставляют еще один "почти стандартный" тип:
  • XMLMessage - расширение TextMessage, используется для доставки XMLсообщений
Все типы сообщений являются подклассами javax.jms.Message.

  • Из каких частей JMS сообщение?

Любое JMS сообщение имеет в себе 3 составные части:
  • Заголовок (header). Набор свойств, поставляемый по умолчанию для любого сообщения, содержит стандартную информацию для идентификации и маршрутизации сообщений.
  • Свойства (properties). Пары «имя/значение», которые приложение может установить или считать; свойства также позволяют месту назначения фильтровать сообщения на основе их значений.
  • Тело (body). фактически содержит сообщение и может иметь один из нескольких форматов (текст, байты, объект и т. д.).

  • Какие параметры может содержать заголовок сообщения?

Заголовок сообщения содержит дополнительную информацию, которую разработчик может использовать в своем приложении. JMS предоставляет get и set методы для каждого поля заголовка. Некоторые из них устанавливаются автоматически, другие могут быть использованы разработчиком приложения.
  • JMSDestination(тип String) - содержит имя destination, в который посылается сообщение.
  • JMSDeliveryMode (тип int) - определяет, является ли сообщение сохраняемым или нет. Может иметь только два значения: DeliveryMode.PERSISTENT и DeliveryMode.NON_PERSISTENT. Персистентное сообщение доставляется "один раз и только один раз"; не персистентное сообщение доставляется "не более одного раза". "Не более одного раза" подразумевает возможность отсутствия доставки.
  • JMSExpiration (тип long) - определяет, когда сообщение устареет и будет удалено из системы. 0 - означает что сообщение будет жить пока оно не будет доставлено.
  • JMSPriority (тип int) - как и следует из названия, определяет приоритет сообщения (от 0 до 9). По умолчанию равно 4.
  • JMSMessageID (тип String) - уникальный идентификатор сообщения
  • JMSTimestamp (тип long)- содержит информацию, когда именно MOM приняла сообщение от producer.
  • JMSCorrelationID (тип String) - может быть использовано разработчиком для согласования сообщений: например, если вы хотите переслать ряд сообщений, обьединенных в одну логическую группу (такую как набор товаров в заказе, при этом в каждое сообщение о товаре вы можете добавить в данное поле заголовка номер заказа).
  • JMSReplyTo (тип Destination) - может быть использовано разработчиком для того, чтобы consumer знал, кому (то есть в какой destination) при желании отсылать ответ.
  • JMSType (тип String) - поле может быть использовано разработчиком для того, чтобы дать приложению информацию, как обращаться с данным сообщением. Тип здесь понимается как application-specific type, а не тот, что использован выше в разделе "типы сообщений".
  • JMSRedelivered (тип Boolean) - означает, что сообщение было доставлено получателю, но он не подтвердил прием сообщения.


  • Какие модели подтверждения получения сообщения вы знаете?

JMS поддерживает три "основных" модели подтверждения получения сообщения.
  • AUTO_ACKNOWLEDGE - в случае синхронного получения сообщений, подтверждение получения будет произведено автоматически, когда метод receive() возвратит значение не вызвав никакой исключительной ситуации. В случае асинхронного получения сообщений, подтверждение получения будет произведено, когда метод onMessage() вернет значение.
  • DUPS_OK_ACKNOWLEDGE - работа по подтверждению получения сообщения перекладывается на Session. Сообщения будут вновь доставлены в случае возникновения ошибки или "гибели" системы.
  • CLIENT_ACKNOWLEDGE - клиент должен вызвать метод acknowledge() интерфейса javax.jms.Message для того, чтобы явно подтвердить получение сообщения. При вызове данного метода будет подтверждено получение текущего и всех предадущих полученных сообщений.

  • Краткое описание основных задач категории Archive Tasks.

Наиболее часто встречающиеся задачи представлены ниже:
  • jar - упаковывает в Jar набор файлов.
  • unzip - распаковывает zip архивы.
  • zip - создает zip архивы.

  • Краткое описание основных задач категории Compile Tasks.

Наиболее часто встречающиеся задачи представлены ниже:
  • javac - компилирует определенные исходные файлы внутри запущенной Ant’ом VM или с помощью новой VM, если fork атрибут определенилятор.

  • Что такое Apache Ant?

Apache Ant - это основанный на Java набор инструментов для сборки приложений. Большое преимущество Ant в его платформонезависимости. Все инструкции командной строки, используемые для развертывания приложения, представляются простыми XML-элементами. Ant можно использовать на любой операционной системе, на которой работает Java. Ant, в отличие от другого сборщика проектов Apache Maven, обеспечивает императивную, а не декларативную сборку проекта.

  • Как начать использовать ant?

Это очень просто.
  • Загрузите последнюю версию ant из Apache. Распакуйте в папку на Вашей машине.

Сериализация.

  • Что такое сериализация?
  • Как исключить поля из сериализации?
  • transient что значит?
  • Как изменить стандартное поведение сериализации/десериализации?
  • Вы создали класс, чей суперкласс сериализуемый, но при этом вы не хотите чтобы ваш класс был сериализуемым, как остановить сериализацию?
  • Как создать собственный протокол сериализации?
  • Какая роль поля serialVersionUID в сериализации?
  • В чем проблема сериализации Singleton-ов?

Перейти к ответам ►►


Подписаться на: Сообщения ( Atom )
‹ ›

Популярные публикации

  • Ответы на вопросы на собеседование ООП.
  • Список вопросов и ответов на собеседование Java Junior.
  • Введение.
  • Ответы на вопросы на собеседование Java core (часть 1).
  • Ответы на вопросы на собеседование Java core (часть 2).
  • Ответы на вопросы на собеседование Java core (часть 3).

Категории

  • JSP Servlets JSTL
  • Java core
  • Java Collections Framework
  • Spring Framework
  • Apache Ant
  • Bootstrap
  • Java 8
  • Java Persistence API
  • Java Server Faces
  • JavaScript
  • Maven
  • Multithreading
  • ORM Hibernate
  • SQL
  • jQuery
  • Потоки ввода/вывода в java
  • AngularJS
  • CSS
  • HTML
  • JDBC
  • JSON
  • Log4j
  • MongoDB
  • OOP
  • UML
  • Web services
  • XML
  • design patterns
  • Базы данных
  • Основы WEB
  • Сериализация
  • Тестирование JUNIT

Обо мне

vasyl1889
Просмотреть профиль
Технологии Blogger.

Популярные публикации

  • Ответы на вопросы на собеседование ООП.
  • Список вопросов и ответов на собеседование Java Junior.
  • Введение.

Основные категории

Front-End Developer Other Java Developer Java Developer (advanced)
© 2015- jsehelper.blogspot.com Все права защищены.
Blogger Technologies.
⇧
⇩