-
Anong mga version control system ang alam mo?
Git, SVN, Bazaar, Mercurial
-
Paano naiiba ang SVN at Git?
-
Ang GIT ay isang ipinamahagi na VCS, ngunit ang SVN ay hindi. Sa madaling salita, kung mayroong ilang developer na nagtatrabaho sa isang repositoryo, bawat isa ay magkakaroon ng BUONG kopya ng repositoryong ito sa kanilang lokal na makina. Siyempre, mayroon ding sentral na makina kung saan maaari mong i-clone ang repositoryo. Ito ay nagpapaalala sa SVN. Ang pangunahing bentahe ng Git ay kung biglang wala kang access sa Internet, maaari ka pa ring magtrabaho kasama ang repositoryo. Pagkatapos ay gawin lamang ang pag-synchronize nang isang beses at lahat ng iba pang mga developer ay makakatanggap ng buong kasaysayan.
-
Ang mga tindahan ng GIT ay nagbabago ng metadata, habang ang SVN ay nag-iimbak ng mga buong file. Makakatipid ito ng espasyo at oras.
-
-
Ano ang GitHub? Mayroon ka bang mga proyekto sa GitHub?
Ang GitHub ay isang web-based na serbisyo sa pagho-host ng proyekto gamit ang git version control system, pati na rin ang isang social network para sa mga developer. Ang mga gumagamit ay maaaring lumikha ng isang walang limitasyong bilang ng mga imbakan, para sa bawat isa kung saan ang isang wiki ay ibinigay, isang sistema ng pagsubaybay sa isyu ay ibinigay, posible na magsagawa ng mga pagsusuri sa code, atbp. Bilang karagdagan sa Git, sinusuportahan ng serbisyo ang pagtanggap at pag-edit ng code sa pamamagitan ng SVN at Mercurial.
-
Bakit kailangan natin ng mga version control system?
Ginagawang posible ng VCS na ibalik ang mga indibidwal na file sa kanilang dating form, ibalik ang buong proyekto sa dati nitong estado, tingnan ang mga pagbabagong nagaganap sa paglipas ng panahon, tukuyin kung sino ang huling gumawa ng mga pagbabago sa isang module na biglang huminto sa paggana, kung sino at kailan ipinakilala ang ilang uri ng error sa code, atbp. .. Sa pangkalahatan, kung, gamit ang VCS, sinira mo ang lahat o nawala ang mga file, ang lahat ay madaling maibalik.
-
Ano ang generic? Paano sila ipinatupad sa Java?
Ang mga generic ay mga uri ng parameter. Sa kanilang tulong, maaari mong ideklara ang mga klase, interface at pamamaraan, kung saan ang uri ng data ay tinukoy bilang isang parameter. Ang mga generic ay nagdagdag ng uri ng kaligtasan sa wika.
Halimbawang pagpapatupad:
class MyClass<T>{ T obj; public MyClass(T obj){ this.obj = obj; } } class MyClass<T>
Ang mga angle bracket ay gumagamit ng T , ang pangalan ng uri ng parameter. Ginagamit ang pangalang ito bilang isang placeholder para sa pangalan ng totoong uri na ipinasa sa klase
MyClass
kapag gumagawa ng mga tunay na uri. Iyon ay, ang uri ng parameterT
ay ginagamit sa klase kapag ang isang uri ng parameter ay kinakailangan. Ang mga angle bracket ay nagpapahiwatig na ang parameter ay maaaring pangkalahatan. Ang klase mismo ay tinatawag na generic na klase o parameterized na uri.Susunod, ang uri
T
ay ginagamit upang ipahayag ang isang bagay sa pamamagitan ng pangalanobj
:T obj;
Sa halip,
T
ang tunay na uri ay papalitan, na tutukuyin kapag lumilikha ng isang bagay ng klaseMyClass
. Ang bagayobj
ay magiging isang bagay ng uri na ipinasa sa uri ng parameterT
. KungT
ipapasa mo ang uri bilang isang parameterString
, ang halimbawaobj
ay magkakaroon ng uriString
.Isaalang-alang ang tagabuo
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
orchar
.*Так же считаю нужным упомянуть generic методы. Это методы вида:
модификаторы <T, ...> возвращаемыйТип method name(T t, ...)
Как я понял, если в качестве типа в сигнатуре метода используются параметры, необходимо перед типом возвращаемого значения их перечислить. Верно ли это?
Более подробную информацию можно посмотреть по следующим linkм:
-
What такое стирание типов?
Внутри класса-дженерика не хранится информация о его типе параметре. Это и называется стиранием типов. На стадии компиляции происходит приведение an object класса к типу, который был указан при объявлении.
Пример:
-
What такое wildcard?
Wildcard — это дженерик вида <?>, что означает, что тип может быть чем угодно. Используется, например, в коллекциях, где для всех коллекций базовым типом является Сollection<?>.
Полезная link: Теория и практика Java. Эксперименты с generic-методами
-
Расскажите про extends и super в Generic'ах?
Whatбы наложить ограничение на wildcard необходимо использовать конструкции типа:
? extends SomeClass
— означает, что может быть использован любой класс-наследник SomeClass? super SomeClass
— означает, что может быть использован класс SomeClass, либо класс-родитель (or интерфейс) SomeClass
Это называется bounded wildcard.
Для того, чтобы определиться с выбором между
extends
иsuper
был придуман метод PECS.Подробно про это можно прочитать по ссылке ниже: Использование generic wildcards для повышения удобства Java API
-
Как использовать wildcard?
Пример использования wildcard:
List<?> numList = new ArrayList<Integer>();
Вопрос я не понял, но в принципе использование wildcard’ов рассматривается в материалах по linkм выше.
-
В чем отличие ArrayList и ArrayList<?>
Запись вида ArrayList называется raw type (обычный тип). Она эквивалентна записи вида ArrayList<T> и используется для обратной совместимости, т.к. до Java 1.5 не было дженерик коллекций. По возможности такой формы записи следует избегать.
ArrayList<?> является супертипом для ArrayList.
Antas 35. Mga sagot sa mga tanong sa panayam sa antas ng paksa
Ang mga tanong/dagdag/pagpuna ay malugod na tinatanggap.
GO TO FULL VERSION