JavaRush /Блоги Java /Random-TG /Сатҳи 35. Ҷавобҳо ба саволҳои мусоҳиба дар мавзӯи сатҳ
Afli
Сатҳи
Санкт-Петербург

Сатҳи 35. Ҷавобҳо ба саволҳои мусоҳиба дар мавзӯи сатҳ

Дар гурӯҳ нашр шудааст
Саволҳо / иловаҳо / танқид қабул карда мешаванд. Сатҳи 35. Ҷавобҳо ба саволҳои мусоҳиба дар мавзӯи сатҳ - 1
  1. Кадом системаҳои идоракунии versionро медонед?

    Git, SVN, Bazaar, Mercurial

  2. SVN ва Git чӣ фарқият доранд?

    1. GIT як VCS тақсимшуда аст, аммо SVN нест. Ба ибораи дигар, агар якчанд таҳиягарон бо репозиторий кор кунанд, ҳар кадоми онҳо дар мошини маҳаллии худ як нусхаи ПУРРА аз ин анбор доранд. Албатта, инчунин як мошини марказӣ мавҷуд аст, ки аз он шумо метавонед анборро клон кунед. Ин SVN-ро ба хотир меорад. Бартарии асосии Git дар он аст, ки агар ногаҳон шумо ба Интернет дастрасӣ надошта бошед, шумо метавонед бо анбор кор кунед. Пас танҳо як маротиба ҳамоҳангсозӣ кунед ва ҳамаи таҳиягарон таърихи пурраро мегиранд.

    2. GIT метамаълумотро тағир медиҳад, дар ҳоле ки SVN тамоми файлҳоро нигоҳ медорад. Ин фазо ва вақтро сарфа мекунад.

  3. GitHub чист? Оё шумо дар GitHub лоиҳаҳо доред?

    GitHub як хидмати хостинги лоиҳа дар асоси веб мебошад, ки бо истифода аз системаи идоракунии versionи git ва инчунин як шабакаи иҷтимоӣ барои таҳиягарон. Истифодабарандагон метавонанд шумораи номаҳдуди анборҳоро эҷод кунанд, ки барои ҳар яки онҳо вики пешниҳод карда мешавад, системаи пайгирии масъалаҳо таъмин карда мешавад, баррасии codeҳо имконпазир аст ва ғайра. Илова ба Git, хидмат қабул ва таҳрир кардани codeро тавассути SVN ва Mercurial дастгирӣ мекунад.

  4. Чаро мо ба системаҳои идоракунии version ниёз дорем?

    VCS имкон медиҳад, ки файлҳои инфиродӣ ба шакли қаблии худ баргардонида шаванд, тамоми лоиҳа ба ҳолати пешинааш баргардонида шаванд, тағиротҳое, ки бо мурури замон рух медиҳанд, диданд, муайян кунед, ки кӣ охирин маротиба ба модуле, ки ногаҳон корашро қатъ кардааст, тағирот ворид кардааст, кӣ ва кай як навъро ҷорӣ кардааст хатогиҳо ба code ва ғайра .. Умуман, агар шумо бо истифода аз VCS ҳама чизро вайрон кунед ё файлҳоро гум кунед, ҳама чизро ба осонӣ барқарор кардан мумкин аст.

  5. умумӣ чист? Онҳо дар Java чӣ гуна татбиқ карда мешаванд?

    Генерикҳо навъҳои параметрӣ мебошанд. Бо ёрии онҳо шумо метавонед синфҳо, интерфейсҳо ва усулҳоро эълон кунед, ки дар он намуди маълумот ҳамчун параметр муайян карда мешавад. Генерикҳо ба забон бехатарии навъи илова карданд.

    Намунаи татбиқ:

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

    Қавсҳои кунҷӣ T истифода мебаранд , номи параметри навъи. Ин ном ҳамчун ҷойгузин барои номи навъи воқеие, ки MyClassҳангоми сохтани намудҳои воқеӣ ба синф дода мешавад, истифода мешавад. Яъне, параметри навъи Tдар синф ҳар вақте ки параметри навъи лозим аст, истифода мешавад. Қавсҳои кунҷӣ нишон медиҳанд, ки параметрро умумӣ кардан мумкин аст. Худи синфро синфи умумӣ ё навъи параметрӣ меноманд.

    Баъдан, навъи Tбарои эълон кардани an object бо ном истифода мешавад obj:

    T obj;

    Вместо T подставится реальный тип, который будет указан при создании an object класса MyClass. Объект obj будет an objectом типа, переданного в параметре типа T. Если в параметре T передать тип String, то экземпляр obj будет иметь тип String.

    Рассмотрим конструктор 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. Ҷавобҳо ба саволҳои мусоҳиба дар мавзӯи сатҳ - 2
  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.

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION