JavaRush /Java Blog /Random-TK /Dereje 35. Dereje derejesindäki soraglara jogap
Afli
Dereje
Санкт-Петербург

Dereje 35. Dereje derejesindäki soraglara jogap

Toparda çap edildi
Soraglar / goşmaçalar / tankytlar kabul edilýär. 35-nji dereje. Dereje derejesi boýunça söhbetdeşlik soraglaryna jogaplar - 1
  1. Haýsy wersiýa dolandyryş ulgamlaryny bilýärsiňiz?

    Git, SVN, Bazar, Merkurial

  2. SVN we Git nähili tapawutlanýar?

    1. GIT paýlanan VCS, ýöne SVN ýok. Başga bir söz bilen aýdylanda, ammar bilen işleýän birnäçe işläp düzüjiler bar bolsa, olaryň hersinde ýerli ammarda bu ammaryň DÖWLET nusgasy bolar. Elbetde, ammary klonlap boljak merkezi maşyn hem bar. Bu SVN-ni ýada salýar. Git-iň esasy artykmaçlygy, birden internete girip bilmeseňiz, ammar bilen işleşip bilersiňiz. Soňra diňe bir gezek sinhronizasiýa ediň we beýleki ähli döredijiler doly taryhy alarlar.

    2. GIT dükanlary meta-maglumaty üýtgedýär, SVN bolsa ähli faýllary saklaýar. Bu ýer we wagt tygşytlaýar.

  3. GitHub näme? GitHub-da taslamalaryňyz barmy?

    GitHub, git wersiýasyna gözegçilik ulgamyny, şeýle hem döredijiler üçin sosial ulgamy ulanyp, web esasly taslama hosting hyzmatydyr. Ulanyjylar çäklendirilmedik mukdarda ammar döredip bilerler, olaryň her biri üçin wiki berilýär, meseläni yzarlamak ulgamy üpjün edilýär, kod gözden geçirmek mümkin we ş.m. Gitden başga-da, hyzmat SVN we Mercurial arkaly kod almagy we redaktirlemegi goldaýar.

  4. Näme üçin wersiýa gözegçilik ulgamlary gerek?

    VCS aýry-aýry faýllary öňki görnüşine gaýtaryp bermäge, ähli taslamany öňki ýagdaýyna gaýtarmaga, wagtyň geçmegi bilen bolup geçýän üýtgeşmeleri görmäge, birden işlemegini bes eden modula kimiň soňky we kim tarapyndan girizilendigini kesgitlemäge mümkinçilik berýär. koda ýalňyşlyk we ş.m. .. Umuman aýdanyňda, VCS ulanyp, hemme zady zaýalasaňyz ýa-da faýllary ýitirseňiz, hemme zat aňsat dikeldilip bilner.

  5. Umumy näme? Java-da nähili amala aşyrylýar?

    Generika parametrleşdirilen görnüşlerdir. Olaryň kömegi bilen maglumatlaryň görnüşi parametr hökmünde görkezilen synplary, interfeýsleri we usullary yglan edip bilersiňiz. Generika dilde görnüş howpsuzlygyny goşdy.

    Mysal ýerine ýetirişi:

    class MyClass<T>{
      T obj;
      public MyClass(T obj){
        this.obj = obj;
      }
    }
    class MyClass<T>

    Burç ýaýlary , görnüş parametriniň ady T ulanýar. MyClassBu at hakyky görnüşleri döredeninde synpa geçen hakyky görnüşiň ady üçin ýer eýesi hökmünde ulanylýar . .Agny, görnüş parametri Tzerur bolanda synp parametri synpda ulanylýar. Burç ýaýlary parametriň umumylaşdyrylyp bilinjekdigini görkezýär. Synpyň özüne umumy synp ýa-da parametrleşdirilen görnüş diýilýär.

    Ondan soň, görnüşi Tobýektiň adyny yglan etmek üçin ulanylýar obj:

    T obj;

    Munuň ýerine, Tsynpyň obýekti döredilende kesgitlenjek hakyky görnüş çalşylar MyClass. Obýekt objgörnüş parametrinde geçen görnüşiň obýekti bolar T. TGörnüşi parametr hökmünde geçirseňiz , Stringmysal objgörnüşi bolar String.

    Gurluşyga serediň MyClass():

    public MyClass(T obj){
      this.obj = obj;
    }

    Параметр obj имеет тип T. Это значит, что реальный тип параметра obj определяется типом, переданным параметром типа T при создании an object класса MyClass.

    Параметр типа T также может быть использован для указания типа возвращаемого значения метода.

    В именах переменных типа принято использовать заглавные буквы. Обычно для коллекций используется буква E, буквами K и V — типы ключей и meaning (Key/Value), а буквой T (и при необходимости буквы S и U) — любой тип.

    Обобщения работают только с an objectми. Поэтому нельзя использовать в качестве параметра elementрные типы вроде int or char.

    *Так же считаю нужным упомянуть generic методы. Это методы вида:

    модификаторы <T, ...> возвращаемыйТип method name(T t, ...)

    Как я понял, если в качестве типа в сигнатуре метода используются параметры, необходимо перед типом возвращаемого значения их перечислить. Верно ли это?

    Более подробную информацию можно посмотреть по следующим linkм:

  6. What такое стирание типов?

    Внутри класса-дженерика не хранится информация о его типе параметре. Это и называется стиранием типов. На стадии компиляции происходит приведение an object класса к типу, который был указан при объявлении.

    Пример:

    35-nji dereje. 2-nji dereje temasyndaky söhbetdeşlik soraglaryna jogaplar
  7. What такое wildcard?

    Wildcard — это дженерик вида <?>, что означает, что тип может быть чем угодно. Используется, например, в коллекциях, где для всех коллекций базовым типом является Сollection<?>.

    Полезная link: Теория и практика Java. Эксперименты с generic-методами

  8. Расскажите про extends и super в Generic'ах?

    Whatбы наложить ограничение на wildcard необходимо использовать конструкции типа:

    • ? extends SomeClass — означает, что может быть использован любой класс-наследник SomeClass
    • ? super SomeClass — означает, что может быть использован класс SomeClass, либо класс-родитель (or интерфейс) SomeClass

    Это называется bounded wildcard.

    Для того, чтобы определиться с выбором между extends и super был придуман метод PECS.

    Подробно про это можно прочитать по ссылке ниже: Использование generic wildcards для повышения удобства Java API

  9. Как использовать wildcard?

    Пример использования wildcard:

    List<?> numList = new ArrayList<Integer>();

    Вопрос я не понял, но в принципе использование wildcard’ов рассматривается в материалах по linkм выше.

  10. В чем отличие ArrayList и ArrayList<?>

    Запись вида ArrayList называется raw type (обычный тип). Она эквивалентна записи вида ArrayList<T> и используется для обратной совместимости, т.к. до Java 1.5 не было дженерик коллекций. По возможности такой формы записи следует избегать.

    ArrayList<?> является супертипом для ArrayList.

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