JavaRush /جاوا بلاگ /Random-SD /ليول 35. ليول جي موضوع تي انٽرويو سوالن جا جواب
Afli
سطح
Санкт-Петербург

ليول 35. ليول جي موضوع تي انٽرويو سوالن جا جواب

گروپ ۾ شايع ٿيل
سوال/اضافو/تنقيد ڀليڪار. ليول 35. ليول جي موضوع تي انٽرويو سوالن جا جواب - 1
  1. ڪهڙو نسخو ڪنٽرول سسٽم توهان کي خبر آهي؟

    گِٽ ، سِي وي اين ، بازار ، مرڪيوريل

  2. SVN ۽ Git ڪيئن مختلف آهن؟

    1. GIT هڪ ورهايل VCS آهي، پر SVN نه آهي. ٻين لفظن ۾، جيڪڏهن اهڙا ڪيترائي ڊولپر آهن جيڪي هڪ مخزن سان ڪم ڪري رهيا آهن، هر هڪ کي پنهنجي مقامي مشين تي هن مخزن جي مڪمل ڪاپي هوندي. يقينا، اتي پڻ هڪ مرڪزي مشين آهي جنهن مان توهان مخزن کي کلون ڪري سگهو ٿا. اهو SVN جي ياد ڏياريندو آهي. Git جو بنيادي فائدو اهو آهي ته اوچتو توهان وٽ انٽرنيٽ تائين رسائي نه آهي، توهان اڃا تائين مخزن سان ڪم ڪري سگهو ٿا. پوء صرف هڪ ڀيرو هم وقت سازي ڪريو ۽ ٻيا سڀئي ڊولپر مڪمل تاريخ وصول ڪندا.

    2. GIT اسٽور ميٽا ڊيٽا کي تبديل ڪري ٿو، جڏهن ته SVN سڀني فائلن کي ذخيرو ڪري ٿو. هي خلا ۽ وقت بچائيندو آهي.

  3. GitHub ڇا آهي؟ ڇا توهان وٽ GitHub تي منصوبا آهن؟

    GitHub هڪ ويب تي ٻڌل پروجيڪٽ هوسٽنگ سروس آهي استعمال ڪندي گٽ ورزن ڪنٽرول سسٽم، انهي سان گڏ ڊولپرز لاءِ هڪ سماجي نيٽ ورڪ. صارفين لامحدود تعداد ۾ ذخيرو ٺاهي سگھن ٿا، جن مان هر هڪ لاء هڪ وڪي مهيا ڪئي وئي آهي، هڪ مسئلي جي ٽريڪنگ سسٽم مهيا ڪئي وئي آهي، اهو ممڪن آهي ڪوڊ جائزو وٺڻ، وغيره. Git کان علاوه، خدمت SVN ۽ Mercurial ذريعي ڪوڊ وصول ڪرڻ ۽ ايڊٽ ڪرڻ جي حمايت ڪري ٿي.

  4. اسان کي ورجن ڪنٽرول سسٽم جي ضرورت ڇو آهي؟

    VCS اهو ممڪن بڻائي ٿو ته انفرادي فائلن کي انهن جي پوئين فارم ڏانهن موٽائي، سڄي پروجيڪٽ کي ان جي پوئين حالت ۾ واپس آڻي، وقت سان گڏ تبديلين کي ڏسو، اهو طئي ڪيو ته ڪنهن ماڊل ۾ تبديليون ڪرڻ وارو آخري ڪير هو جنهن اوچتو ڪم ڪرڻ بند ڪيو، ڪنهن ۽ ڪڏهن متعارف ڪرايو جي غلطي جي ڪوڊ ۾، وغيره.. عام طور تي، جيڪڏهن، VCS استعمال ڪندي، توهان سڀ ڪجهه برباد ڪيو يا فائلون وڃائي ڇڏيو، هر شي کي آساني سان بحال ڪري سگهجي ٿو.

  5. عام ڇا آهي؟ اهي جاوا ۾ ڪيئن لاڳو ڪيا ويا آهن؟

    Generics parameterized قسم آهن. انهن جي مدد سان، توهان ڪلاس، انٽرفيس ۽ طريقن جو اعلان ڪري سگهو ٿا، جتي ڊيٽا جي قسم کي پيٽرولر طور بيان ڪيو ويو آهي. Generics ٻولي ۾ قسم جي حفاظت شامل ڪئي.

    مثال لاڳو ڪرڻ:

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

    زاويه بریکٹ استعمال ڪندا آهن T ، قسم جي پيٽرولر جو نالو. هي نالو هڪ جڳهه هولڊر طور استعمال ڪيو ويندو آهي حقيقي قسم جي نالي لاءِ جيڪو ڪلاس ڏانهن منتقل ڪيو ويو MyClassجڏهن حقيقي قسم ٺاهي. اهو آهي، قسم جي پيٽرولر کي Tڪلاس ۾ استعمال ڪيو ويندو آهي جڏهن به هڪ قسم جي پيٽرولر جي ضرورت هوندي آهي. زاويه بریکٹ ظاهر ڪن ٿا ته پيٽرولر کي عام ڪري سگهجي ٿو. طبقو پاڻ کي عام ڪلاس يا پيراميٽرائزڊ قسم سڏيو ويندو آهي.

    اڳيون، قسم Tاستعمال ڪيو ويندو آھي ھڪڙي اعتراض کي نالي سان بيان ڪرڻ لاء obj:

    T obj;

    ان جي بدران، Tحقيقي قسم کي متبادل بڻايو ويندو، جيڪو بيان ڪيو ويندو جڏهن ڪلاس جو هڪ اعتراض ٺاهي MyClass. اعتراض objقسم جو ھڪڙو اعتراض ھوندو جيڪو قسم جي پيٽرولر ۾ منظور ڪيو ويو آھي 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