JavaRush /Blog Java /Random-PL /Poziom 33. Odpowiedzi na pytania podczas rozmowy kwalifik...
Afli
Poziom 41
Санкт-Петербург

Poziom 33. Odpowiedzi na pytania podczas rozmowy kwalifikacyjnej na temat poziomu

Opublikowano w grupie Random-PL
Pytania/dodatki/krytyka są mile widziane. Poziom 33. Odpowiedzi na pytania z rozmowy kwalifikacyjnej na temat poziomu - 1
  1. Co to jest JSON?

    JSON (JavaScript Object Notation) to prosty format wymiany danych oparty na podzbiorze języka programowania JavaScript.

  2. Jakie są różnice między Javą a JavaScriptem?

    Są to 2 różne języki programowania, pomimo podobieństwa ich nazw. Oba mają składnię podobną do języka C. Różnice są następujące:

    • Java implementuje podejście OOP bazujące na klasach, JavaScript na prototypach;
    • Java ma pisanie statyczne, JavaScript ma pisanie dynamiczne;
    • Java jest ładowana ze skompilowanego kodu bajtowego; JavaScript jest interpretowany bezpośrednio z pliku.

    Twój tekst do linku...

  3. Jakie są różnice między JSON i XML?

    JSON to format wymiany danych.

    XML to język znaczników (w którym można określić składnię, strukturę, typy danych i ogólnie ich model).

    Obydwa mogą służyć do przesyłania danych. Oczywiście do pracy z obydwoma standardami używane są różne frameworki i inna składnia.

  4. Jakie znasz frameworki do pracy z JSON?

    Poziom 33 wprowadził nas w framework Jacksona. Dodatkowo podam jeszcze 3 i link do artykułu, w którym są one porównane:

    1. Jacksona przez FasterXML
    2. JSON.simple autorstwa Yidong Fanga
    3. GSON od Google
    4. JSONP firmy Oracle

    Porównanie bibliotek Java do pracy z JSON: JSON.simple, GSON, Jackson i JSONP

  5. Jakie znasz frameworki do pracy z XML?

    Ponieważ XML jest formatem reprezentacji danych, istnieją bardziej zróżnicowane technologie umożliwiające pracę z nim. Podam technologie używane do serializacji obiektów Java do XML:

    1. JAXB (zawarty w J w JDK)
    2. Xstream

    Link z krótkim przeglądem różnych frameworków do pracy z XML: JAVA + XML

  6. Jakie adnotacje Jacksona znasz?

    Przyjrzyjmy się tym, które były wykorzystywane na wykładach:

    • @JsonAutoDetect - umieszczony przed klasą. Mówi Jacksonowi, aby używał pól tej klasy podczas pisania lub czytania. W nawiasie można ustawić parametr (fieldVisibility = JsonAutoDetect.Visibility.ANY) umożliwiający skonfigurowanie widoczności pól, które będą używane (domyślnie używane są tylko pola publiczne).
    • @JsonIgnore - umieszczony przed polem. Mówi Jacksonowi, aby ignorował to pole podczas czytania/pisania.
    • @JsonProperty - Umieszczany przed polem, pobierającym lub ustawiającym. Umożliwia określenie innej nazwy pola podczas serializacji.
    • @JsonWriteNullProperties - Umieszczony przed klasą. Pola obiektów o wartości null nie będą ignorowane.
    • @JsonPropertyOrder — Umieszczony przed klasą. pozwala zdefiniować kolejność, w jakiej pola obiektu Java będą serializowane do formatu JSON.
    • @JsonDeserialize — Umieszczony przed polem. Umożliwia zdefiniowanie klasy, do której deserializowany jest obiekt JSON. Na przykład w Javie tablice i listy są serializowane w tablice, a podczas deserializacji możemy wybrać, co dokładnie chcemy otrzymać.

    Oto link do strony z pewnymi adnotacjami: Jackson Adnotations

  7. Jakie adnotacje JAXB znasz?

    Przeanalizuję także tylko te, które zostały wykorzystane na wykładzie:

    • @XmlRootElement — umieszczany przed klasą. Wskazuje, że obiekt ten może być elementem najwyższego poziomu, tj. wszystkie inne elementy znajdują się w nim.
    • @XmlType — umieszczany przed klasą. Dodaje dodatkowe informacje do schematu XML. Możesz określić niektóre atrybuty, takie jak kolejność elementów, nazwa itp.
    • @XmlElement — umieszczany przed polem. Umożliwia ustawienie nazwy elementu XML, wartości domyślnej itp.
    • @XmlAttribute — umieszczany przed polem. Pole będzie reprezentowane jako atrybut XML.
    • @XmlElementWrapper — umieszczany przed polem lub getterem. Umożliwia utworzenie znacznika obramowania dla grupy elementów.
    • @XmlJavaTypeAdapter — umieszczany przed klasą. Pomocnicza klasa adaptera wymagana do zestawiania/unmarshalowania tej klasy jest podana w nawiasach.
    • @XmlEnum — umieszczane przed wyliczeniem. W nawiasach możesz określić typ, w jakim będą reprezentowane wartości wyliczeniowe.
    • @XmlEnumValue — Umieszczony przed wartością wyliczeniową. Umożliwia określenie specjalnej wartości dla danej wartości wyliczeniowej.

    Oto link do strony z pewnymi adnotacjami (przepraszam, że nie jestem w stanie stworzyć prawidłowego tłumaczenia adnotacji, informacje są zrozumiałe, ale zupełnie nie mam pojęcia, jak to poprawnie powiedzieć po rosyjsku): https: // jaxb.java.net/tutorial/index .html

  8. Jaka jest różnica między serializacją a deserializacją w JSON?

    Nie zrozumiałem istoty pytania. Nie widzę sensu porównywania 2 wzajemnych procesów. Być może miało to na celu porównanie JSON i XML; link do tego tematu znajduje się w następnym pytaniu.

  9. Co jest lepsze JSON czy XML? Dlaczego?

    Oto świetny artykuł porównujący JSON i XML: JSON i XML. Co lepsze?

    Być może nie da się powiedzieć, że coś jest lepsze. Przy wyborze warto przyjrzeć się samemu zadaniu i temu, co będzie skuteczniejsze w użyciu. Ponadto wybór może zależeć od osobistych preferencji programisty.

  10. Co to jest DTO?

    DTO (Data Transfer Object) to wzorzec projektowy zawierający dane bez żadnej logiki umożliwiającej pracę z nimi. DTO są zwykle używane do przesyłania danych między różnymi aplikacjami lub między warstwami w tej samej aplikacji. Można je traktować jako repozytorium informacji, którego jedynym celem jest przekazanie tych informacji odbiorcy.

Poziom 33. Odpowiedzi na pytania z rozmowy kwalifikacyjnej na temat poziomu - 2
Aktualizacja 11.10.2016 o godzinie 15.50

pytania nr 2, nr 3 poprawione, zgodnie z komentarzem

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION