JavaRush /Blog Jawa /Random-JV /Tingkat 35. Wangsulan pitakonan wawancara babagan topik t...
Afli
tingkat
Санкт-Петербург

Tingkat 35. Wangsulan pitakonan wawancara babagan topik tingkat

Diterbitake ing grup
Pitakonan / tambahan / kritik ditampa. Level 35. Wangsulan pitakonan wawancara babagan topik level - 1
  1. Apa sistem kontrol versi sing sampeyan ngerti?

    Git, SVN, Bazaar, Mercurial

  2. Kepiye SVN lan Git beda?

    1. GIT minangka VCS sing disebarake, nanging SVN ora. Ing tembung liyane, yen ana sawetara pangembang sing nggarap repositori, saben bakal duwe salinan FULL repositori iki ing mesin lokal. Mesthi, ana uga mesin tengah saka ngendi sampeyan bisa clone repositori. Iki ngelingake SVN. Kauntungan utama Git yaiku yen dumadakan sampeyan ora duwe akses menyang Internet, sampeyan isih bisa nggarap repositori. Banjur mung nindakake sinkronisasi sapisan lan kabeh pangembang liyane bakal nampa sejarah lengkap.

    2. Toko GIT ngganti metadata, dene SVN nyimpen kabeh file. Iki ngirit ruang lan wektu.

  3. Apa iku GitHub? Apa sampeyan duwe proyek ing GitHub?

    GitHub minangka layanan hosting proyek basis web nggunakake sistem kontrol versi git, uga jaringan sosial kanggo pangembang. Pangguna bisa nggawe jumlah repositori sing ora winates, kanggo saben wiki diwenehake, sistem pelacakan masalah diwenehake, bisa nindakake review kode, lsp. Saliyane Git, layanan kasebut ndhukung nampa lan nyunting kode liwat SVN lan Mercurial.

  4. Napa kita butuh sistem kontrol versi?

    VCS ndadekake iku bisa kanggo bali file individu menyang wangun sadurungé, bali kabeh project menyang negara sadurungé, ndeleng owah-owahan kedadean liwat wektu, nemtokake sing pungkasan kanggo nggawe owahan kanggo modul sing dumadakan mandheg apa, sing lan nalika ngenalaken sawetara jinis. saka kesalahan menyang kode, etc.. Umumé, yen, nggunakake VCS, sampeyan ngrusak kabeh utawa ilang file, kabeh bisa gampang dibalèkaké.

  5. Apa generik? Kepriye anggone nindakake ing Jawa?

    Generik minangka jinis parameter. Kanthi bantuan, sampeyan bisa ngumumake kelas, antarmuka lan metode, ing ngendi jinis data kasebut minangka parameter. Generik nambahake keamanan jinis ing basa kasebut.

    Tuladha implementasine:

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

    Kurung sudut nggunakake T , jeneng parameter jinis. Jeneng iki digunakake minangka placeholder kanggo jeneng jinis nyata liwati menyang kelas MyClassnalika nggawe jinis nyata. Yaiku, parameter jinis Tdigunakake ing kelas kapan wae parameter jinis dibutuhake. Sudut kurung nuduhake yen parameter bisa umum. Kelas kasebut diarani kelas umum utawa jinis parameter.

    Sabanjure, jinis Tdigunakake kanggo ngumumake obyek kanthi jeneng obj:

    T obj;

    Nanging, Tjinis nyata bakal diganti, sing bakal ditemtokake nalika nggawe obyek saka kelas MyClass. Obyek kasebut objbakal dadi obyek saka jinis sing dilewati ing parameter jinis T. Yen Tsampeyan pass jinis minangka parameter String, Kayata objbakal duwe jinis String.

    Coba konstruktor 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 класса к типу, который был указан при объявлении.

    Пример:

    Level 35. Wangsulan pitakonan wawancara babagan topik level - 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.

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