JavaRush /جاوا بلاگ /Random-UR /لیول 35۔ لیول کے موضوع پر انٹرویو کے سوالات کے جوابات
Afli
سطح
Санкт-Петербург

لیول 35۔ لیول کے موضوع پر انٹرویو کے سوالات کے جوابات

گروپ میں شائع ہوا۔
سوالات/اضافے/تنقید کا استقبال ہے۔ لیول 35۔ لیول - 1 کے موضوع پر انٹرویو کے سوالات کے جوابات
  1. آپ کون سا ورژن کنٹرول سسٹم جانتے ہیں؟

    گٹ، ایس وی این، بازار، مرکریئل

  2. SVN اور Git کیسے مختلف ہیں؟

    1. GIT ایک تقسیم شدہ VCS ہے، لیکن SVN نہیں ہے۔ دوسرے لفظوں میں، اگر ایک ریپوزٹری کے ساتھ کام کرنے والے کئی ڈویلپرز ہیں، تو ہر ایک کی مقامی مشین پر اس ریپوزٹری کی مکمل کاپی ہوگی۔ یقینا، ایک مرکزی مشین بھی ہے جس سے آپ ذخیرہ کو کلون کرسکتے ہیں۔ یہ SVN کی یاد تازہ کرتا ہے۔ گٹ کا سب سے بڑا فائدہ یہ ہے کہ اگر اچانک آپ کو انٹرنیٹ تک رسائی حاصل نہ ہو تو بھی آپ ریپوزٹری کے ساتھ کام کر سکتے ہیں۔ پھر صرف ایک بار ہم وقت سازی کریں اور دیگر تمام ڈویلپرز کو پوری تاریخ مل جائے گی۔

    2. GIT اسٹورز میٹا ڈیٹا کو تبدیل کرتے ہیں، جبکہ SVN پوری فائلوں کو اسٹور کرتا ہے۔ اس سے جگہ اور وقت کی بچت ہوتی ہے۔

  3. GitHub کیا ہے؟ کیا آپ کے پاس GitHub پر پروجیکٹ ہیں؟

    GitHub ایک ویب پر مبنی پروجیکٹ ہوسٹنگ سروس ہے جو گٹ ورژن کنٹرول سسٹم کے ساتھ ساتھ ڈویلپرز کے لیے ایک سوشل نیٹ ورک کا استعمال کرتی ہے۔ صارفین لامحدود تعداد میں ذخیرے تشکیل دے سکتے ہیں، جن میں سے ہر ایک کے لیے ایک ویکی فراہم کیا گیا ہے، ایک ایشو ٹریکنگ سسٹم فراہم کیا گیا ہے، کوڈ کے جائزے کا انعقاد ممکن ہے، وغیرہ۔ Git کے علاوہ، سروس SVN اور Mercurial کے ذریعے کوڈ وصول کرنے اور اس میں ترمیم کرنے میں معاونت کرتی ہے۔

  4. ہمیں ورژن کنٹرول سسٹم کی ضرورت کیوں ہے؟

    VCS انفرادی فائلوں کو ان کی سابقہ ​​شکل میں واپس کرنا، پورے پروجیکٹ کو اس کی سابقہ ​​حالت میں واپس کرنا، وقت کے ساتھ ساتھ ہونے والی تبدیلیوں کو دیکھنا، اس بات کا تعین کرتا ہے کہ اچانک کام کرنا بند کرنے والے ماڈیول میں تبدیلیاں کرنے والا آخری کون تھا، کس نے اور کب کسی قسم کا تعارف کرایا۔ کوڈ وغیرہ میں غلطی کی وجہ سے.. عام طور پر، اگر VCS کا استعمال کرتے ہوئے، آپ سب کچھ برباد کر دیتے ہیں یا فائلیں کھو دیتے ہیں، تو سب کچھ آسانی سے بحال کیا جا سکتا ہے۔

  5. عام کیا ہے؟ وہ جاوا میں کیسے لاگو ہوتے ہیں؟

    جنرک پیرامیٹرائزڈ اقسام ہیں۔ ان کی مدد سے، آپ کلاسز، انٹرفیس اور طریقوں کا اعلان کر سکتے ہیں، جہاں ڈیٹا کی قسم کو پیرامیٹر کے طور پر بیان کیا گیا ہے۔ جنرک نے زبان میں قسم کی حفاظت کا اضافہ کیا۔

    مثال کے نفاذ:

    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، تو مثال میں objtype ہوگا 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