JavaRush /Java блог /Random UA /Рівень 33. Відповіді на запитання до співбесіди на тему р...
Afli
41 рівень
Санкт-Петербург

Рівень 33. Відповіді на запитання до співбесіди на тему рівня

Стаття з групи Random UA
Запитання/доповнення/критика вітаються. Рівень 33. Відповіді на запитання до співбесіди на тему рівня - 1
  1. Що таке JSON?

    JSON (JavaScript Object Notation) — простий формат обміну даними, що базується на підмножині мови програмування JavaScript.

  2. У чому відмінності Java та JavaScript?

    Це дві різні мови програмування, незважаючи на схожість їх назв. Обидва мають С-подібний синтаксис. Відмінності такі:

    • Java реалізує ООП підхід, що базується на класах, JavaScript - на прототипах;
    • Java має статичну типізацію, JavaScript - динамічну типізацію;
    • Java завантажується зі скомпілованого байт-коду; JavaScript інтерпретується безпосередньо із файлу.

    Your text to link...

  3. У чому відмінність JSON та XML?

    JSON – формат обміну даними.

    XML — мова розмітки (у якій можна задати синтаксис, структуру, типи даних і їх модель).

    Обидва можуть бути використані передачі даних. Звичайно, для роботи з обома стандартами використовуються різні фреймворки, відрізняється синтаксис.

  4. Які фреймворки для роботи з JSON ви знаєте?

    33 Рівень познайомив нас із фрейворком jackson. На додаток я наведу ще 3 і посилання на статтю, в якій вони порівнюються:

    1. Jackson від FasterXML
    2. JSON.simple від Yidong Fang
    3. GSON від Google
    4. JSONP від ​​Oracle

    Порівнюємо Java-бібліотеки для роботи з JSON: JSON.simple, GSON, Jackson та JSONP

  5. Які фреймворки для роботи з XML ви знаєте?

    Оскільки XML є форматом представлення даних, технології для роботи з ним різноманітнішими. Я наведу технології, які використовуються для серіалізації Java об'єктів у XML:

    1. JAXB (входить до J JDK)
    2. Xstream

    Посилання з коротким оглядом різних фреймворків для роботи з XML: JAVA + XML

  6. Які інструкції Jackson ви знаєте?

    Розберемо ті, що використовувалися у лекціях:

    • @JsonAutoDetect - ставиться перед класом. Повідомляє Jackson, що необхідно використовувати поля цього класу під час запису чи читання. У дужках можна встановити параметр (fieldVisibility = JsonAutoDetect.Visibility.ANY ), для налаштування видимості полів, які будуть використовуватися (за замовчуванням використовуються тільки public поля).
    • @JsonIgnore - ставиться перед полем. Повідомляє Jackson, що це поле потрібно ігнорувати під час читання/запису.
    • @JsonProperty - Ставиться перед полем, getter'ом або setter'ом. Дозволяє встановити інше ім'я поля під час серіалізації.
    • @JsonWriteNullProperties - Ставиться перед класом. Поля об'єкта, які дорівнюють null не буде ігноруватися.
    • @JsonPropertyOrder - Ставиться перед класом. дозволяє визначити порядок, в якому поля java об'єкта будуть серіалізовані в JSON.
    • @JsonDeserialize - Ставиться перед полем. Дозволяє визначити клас, де десеріалізується JSON об'єкт. Наприклад з Java масиви та списки серіалізуються в масиви, і при десеріалізації можна вибрати, що саме ми хочемо отримати.

    Ось посилання на сайт з деякими інструкціями: Jackson Annotations

  7. Які інструкції JAXB ви знаєте?

    Також розберу тільки ті, які використовувалися в лекції:

    • @XmlRootElement - Ставиться перед класом. Вказує те що, що це об'єкт то, можливо, елементом самого верхнього рівня, тобто. решта елементів лежать у ньому.
    • @XmlType — Ставиться перед класом. Додає до XML-схеми додаткову інформацію. Можна вказати деякі атрибути, наприклад, порядок елементів ім'я і т.д.
    • @XmlElement - Ставиться перед полем. Дозволяє вказати ім'я xml-елемента, значення за промовчанням і т.д.
    • @XmlAttribute — Ставиться перед полем. Поле буде представлено як атрибут XML.
    • @XmlElementWrapper — Ставиться перед полем або гетером. Дозволяє створити обрамляючий тег для групи елементів.
    • @XmlJavaTypeAdapter — Ставиться перед класом. У дужках вказується допоміжний клас-адаптер, необхідний маршабозации/демаршализации даного класу.
    • @XmlEnum - Ставиться перед enum. У дужках можна вказати тип, у якому буде представлено значення enum.
    • @XmlEnumValue — Ставиться перед значенням enum. Дозволяє встановити спеціальне значення для даного значення enum.

    Ось посилання на сайт з деякими анотаціями (перепрошую, що не зумів скласти коректний переклад для анотацій, інформація сприймається для розуміння, але зовсім не уявляю, як це грамотно сказати російською): https://jaxb.java.net/tutorial/index .html

  8. У чому відмінність серіалізації та десеріалізації в JSON?

    Не зрозумів суть питання. Порівнювати 2 взаємозворотні процеси сенсу не бачу. Можливо було на увазі порівняння JSON і XML, на цю тему в наступному питанні наведено посилання.

  9. Що краще за JSON або XML? Чому?

    Ось чудова стаття, в якій порівнюється JSON та XML: JSON та XML. Що краще?

    Мабуть, не можна казати, що щось краще. При виборі варто дивитися на завдання і те, що буде ефективніше у використанні. Плюс вибір може залежати від особистих переваг розробника.

  10. Що таке DTO?

    DTO (Data Transfer Object) — патерн проектування, що містить дані без будь-якої логіки для роботи з ними. DTO зазвичай використовуються для передачі даних між різними програмами, або між шарами всередині однієї програми. Їх можна як сховище інформації, єдина мета якого — передати цю інформацію одержувачу.

Рівень 33. Відповіді на запитання до співбесіди на тему рівня - 2
Оновлено 10.11.2016 о 15.50

виправлено питання №2, №3, згідно з зауваженням

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ