-
คุณรู้จักระบบควบคุมเวอร์ชันใด
Git, SVN, บาซาร์, Mercurial
-
SVN และ Git แตกต่างกันอย่างไร
-
GIT เป็น VCS แบบกระจาย แต่ SVN ไม่ใช่ กล่าวอีกนัยหนึ่ง หากมีนักพัฒนาหลายคนทำงานกับพื้นที่เก็บข้อมูล แต่ละคนจะมีสำเนาทั้งหมดของพื้นที่เก็บข้อมูลนี้บนเครื่องภายในของตน แน่นอนว่ายังมีเครื่องกลางที่คุณสามารถโคลนพื้นที่เก็บข้อมูลได้ สิ่งนี้ทำให้นึกถึง SVN ข้อได้เปรียบหลักของ Git คือหากคุณไม่สามารถเข้าถึงอินเทอร์เน็ตโดยฉับพลัน คุณยังคงสามารถทำงานกับพื้นที่เก็บข้อมูลได้ จากนั้นเพียงทำการซิงโครไนซ์เพียงครั้งเดียวแล้วนักพัฒนารายอื่นทั้งหมดจะได้รับประวัติทั้งหมด
-
GIT จัดเก็บการเปลี่ยนแปลงข้อมูลเมตา ในขณะที่ SVN จัดเก็บไฟล์ทั้งหมด ช่วยประหยัดพื้นที่และเวลา
-
-
GitHub คืออะไร? คุณมีโปรเจ็กต์บน GitHub หรือไม่?
GitHub เป็นบริการโฮสต์โครงการบนเว็บโดยใช้ระบบควบคุมเวอร์ชัน git รวมถึงเครือข่ายโซเชียลสำหรับนักพัฒนา ผู้ใช้สามารถสร้างพื้นที่เก็บข้อมูลได้ไม่จำกัดจำนวน โดยแต่ละแห่งมี Wiki มีระบบติดตามปัญหาให้ สามารถตรวจสอบโค้ดได้ ฯลฯ นอกจาก Git แล้ว บริการนี้ยังรองรับการรับและแก้ไขโค้ดผ่าน SVN และ Mercurial
-
ทำไมเราต้องมีระบบควบคุมเวอร์ชัน?
VCS ช่วยให้สามารถคืนไฟล์แต่ละไฟล์กลับไปเป็นรูปแบบก่อนหน้า คืนทั้งโปรเจ็กต์เป็นสถานะก่อนหน้า ดูการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป กำหนดว่าใครเป็นคนสุดท้ายที่ทำการเปลี่ยนแปลงโมดูลที่หยุดทำงานกะทันหัน ใครและเมื่อแนะนำบางประเภท ของข้อผิดพลาดในโค้ด ฯลฯ .. โดยทั่วไปหากใช้ VCS คุณทำลายทุกอย่างหรือสูญเสียไฟล์ทุกอย่างก็สามารถกู้คืนได้อย่างง่ายดาย
-
ทั่วไปคืออะไร? มีการนำไปใช้งานใน Java อย่างไร?
ข้อมูลทั่วไปเป็นประเภทที่กำหนดพารามิเตอร์ ด้วยความช่วยเหลือของพวกเขา คุณสามารถประกาศคลาส อินเทอร์เฟซ และวิธีการ โดยระบุประเภทข้อมูลเป็นพารามิเตอร์ ข้อมูลทั่วไปเพิ่มความปลอดภัยของประเภทให้กับภาษา
ตัวอย่างการใช้งาน:
class MyClass<T>{ T obj; public MyClass(T obj){ this.obj = obj; } } class MyClass<T>วงเล็บมุมใช้Tซึ่งเป็นชื่อของพารามิเตอร์ประเภท ชื่อนี้ใช้เป็นตัวยึดสำหรับชื่อของประเภทจริงที่ส่งไปยังชั้นเรียน
MyClassเมื่อสร้างประเภทจริง นั่นคือ พารามิเตอร์ typeTถูกใช้ในคลาสทุกครั้งที่ต้องการพารามิเตอร์ type วงเล็บเหลี่ยมระบุว่าพารามิเตอร์สามารถสรุปได้ คลาสนั้นเรียกว่าคลาสทั่วไปหรือประเภทที่กำหนดพารามิเตอร์ถัดไปประเภท
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рные типы вроде
intorchar.*Так же считаю нужным упомянуть generic методы. Это методы вида:
модификаторы <T, ...> возвращаемыйТип method name(T t, ...)
Как я понял, если в качестве типа в сигнатуре метода используются параметры, необходимо перед типом возвращаемого значения их перечислить. Верно ли это?
Более подробную информацию можно посмотреть по следующим linkм:
-
What такое стирание типов?
Внутри класса-дженерика не хранится информация о его типе параметре. Это и называется стиранием типов. На стадии компиляции происходит приведение an object класса к типу, который был указан при объявлении.
Пример:
![ระดับ 35 คำตอบสำหรับคำถามสัมภาษณ์ในหัวข้อระดับ - 2]()
-
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.
Afli
ระดับ
ระดับ 35 คำตอบสำหรับคำถามสัมภาษณ์ในหัวข้อระดับ
ยินดีต้อนรับคำถาม/เพิ่มเติม/คำวิจารณ์

GO TO FULL VERSION