JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #58 20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer...

คอฟฟี่เบรค #58 20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer ควรรู้ ประโยชน์ของการรู้ภาษาโปรแกรมหลายภาษา

เผยแพร่ในกลุ่ม

20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer ควรรู้

ที่มา: Dev.toคอฟฟี่เบรค #58  20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer ควรรู้  ประโยชน์ของการรู้ภาษาโปรแกรมหลายภาษา - 1

1. ข้อยกเว้นสองประเภทใน Java คืออะไร? ความแตกต่างระหว่างพวกเขาคืออะไร?

คำตอบ: มีข้อยกเว้นสองประเภทใน Java: ข้อยกเว้นที่เลือกและไม่ถูกตรวจสอบ
  1. ข้อยกเว้นที่ไม่ได้ตรวจสอบไม่จำเป็นต้องประกาศในคำสั่งคีย์เวิร์ดของเมธอดหรือคอนสตรัคเตอร์ หากสามารถส่งออกได้เมื่อเมธอดหรือคอนสตรัคเตอร์ดำเนินการและเผยแพร่เกินขอบเขตของเมธอดหรือคอนสตรัคเตอร์
  2. ในทางกลับกัน ข้อยกเว้นที่เลือกจะต้องประกาศในเมธอดของคอนสตรัคเตอร์หรือคำสั่งคีย์เวิร์ด

2. JVM คืออะไร? เหตุใด Java จึงถูกเรียกว่า "ภาษาโปรแกรมอิสระของแพลตฟอร์ม"

ตอบ Java Virtual Machine (JVM) เป็นกระบวนการเครื่องเสมือนที่สามารถรัน Java bytecode ได้ ไฟล์ต้นฉบับ Java แต่ละไฟล์จะถูกคอมไพล์เป็นไฟล์ bytecode ซึ่งดำเนินการโดย JVM ภาษา Java ได้รับการออกแบบมาเพื่อสร้างโปรแกรมแอปพลิเคชันที่สามารถทำงานบนแพลตฟอร์มใดก็ได้ โดยไม่จำเป็นต้องเขียนใหม่หรือคอมไพล์ใหม่สำหรับแต่ละแพลตฟอร์ม Java Virtual Machine ช่วยให้สิ่งนี้เป็นไปได้เนื่องจากทราบถึงความยาวคำสั่งเฉพาะและคุณสมบัติอื่นๆ ของแพลตฟอร์มฮาร์ดแวร์พื้นฐาน

3. แอพเพล็ตและแอปพลิเคชัน Java แตกต่างกันอย่างไร

คำตอบ:
  • Applets ทำงานในหน้าต่างเบราว์เซอร์ที่เปิดใช้งาน Java
  • แอปพลิเคชัน Java เป็นโปรแกรม Java แบบสแตนด์อโลนที่สามารถทำงานนอกเบราว์เซอร์ได้
ทั้งคู่ต้องการ Java Virtual Machine (JVM) อย่างไรก็ตาม แอปพลิเคชัน Java ต้องการวิธีการหลักที่มีลายเซ็นเฉพาะเพื่อเริ่มดำเนินการ แอปเพล็ต Java ไม่จำเป็นต้องใช้วิธีการดังกล่าวเพื่อเริ่มดำเนินการ นอกจากนี้ แอปเพล็ต Java มักใช้นโยบายความปลอดภัยที่เข้มงวด ในขณะที่แอปพลิเคชัน Java มักใช้นโยบายความปลอดภัยที่ผ่อนปรนมากกว่า

4. JDK และ JRE แตกต่างกันอย่างไร?

คำตอบ:
  • Java Runtime Environment (JRE)โดยพื้นฐานแล้วคือ Java Virtual Machine (JVM) ที่รันโปรแกรม Java ของคุณ นอกจากนี้ยังมีปลั๊กอินของเบราว์เซอร์เพื่อเรียกใช้แอปเพล็ต
  • Java Development Kit (JDK)เป็นชุดพัฒนาซอฟต์แวร์ที่มีคุณสมบัติครบถ้วนสำหรับภาษา Java รวมถึง JRE คอมไพเลอร์ และเครื่องมือ (เช่น JavaDoc และ Java Debugger) เพื่อให้ผู้ใช้สามารถพัฒนา คอมไพล์ และรันแอปพลิเคชัน Java

5. เซิร์ฟเล็ตคืออะไร?

คำตอบ: เซิร์ฟเล็ตเป็นคลาสของภาษาการเขียนโปรแกรม Java ที่ใช้ในการประมวลผลคำขอของไคลเอ็นต์และสร้างเนื้อหาเว็บแบบไดนามิก Servlet ใช้เพื่อประมวลผลหรือจัดเก็บข้อมูลที่ส่งโดยแบบฟอร์ม HTML เป็นหลัก ให้เนื้อหาแบบไดนามิก และจัดการข้อมูลสถานะที่ไม่มีอยู่ใน HTTP ไร้สัญชาติ

6. หน้า JSP คืออะไร?

คำตอบ: Java Server Page (JSP)เป็นเอกสารข้อความที่มีข้อความสองประเภท:
  • ข้อมูลคงที่
  • องค์ประกอบเจเอสพี
ข้อมูลคงที่สามารถแสดงในรูปแบบข้อความใดก็ได้ เช่น HTML หรือ XML JSP เป็นเทคโนโลยีที่ผสมผสานเนื้อหาแบบคงที่กับเนื้อหาที่สร้างขึ้นแบบไดนามิก

7. คำสั่งคืออะไร? JSP มีคำสั่งประเภทใดบ้าง?

คำตอบ: คำสั่งคือคำสั่งที่ประมวลผลโดยเอ็นจิ้น JSP เมื่อเพจถูกคอมไพล์เป็นเซิร์ฟเล็ต คำสั่งใช้เพื่อตั้งค่าคำแนะนำระดับหน้า แทรกข้อมูลจากไฟล์ภายนอก และระบุไลบรารีแท็กที่กำหนดเอง คำสั่งถูกกำหนดไว้ระหว่าง <%@ และ %> คำสั่งประเภทต่าง ๆ แสดงไว้ด้านล่าง:
  • รวมคำสั่ง: ใช้เพื่อรวมไฟล์และรวมเนื้อหาของไฟล์กับหน้าปัจจุบัน
  • Page Directive: ใช้เพื่อกำหนดคุณลักษณะบางอย่างบนเพจ JSP เช่น หน้าข้อผิดพลาดและบัฟเฟอร์
  • Taglib: ใช้เพื่อประกาศ taglib ที่กำหนดเองซึ่งใช้บนเพจ

8. เมธอด System.gc() และ Runtime.gc() ทำหน้าที่อะไร?

คำตอบ: วิธีการเหล่านี้สามารถใช้เป็นคำแนะนำสำหรับ JVM เพื่อทริกเกอร์การรวบรวมขยะ โดยทั่วไป Java Virtual Machine (JVM) จะรันการรวบรวมขยะเป็นระยะหรือเมื่อหน่วยความจำว่างถึงระดับต่ำ

9. HashMap และ Hashtable มีความแตกต่างอะไรบ้าง?

คำตอบ: มีความแตกต่างหลายประการระหว่าง HashMap และ Hashtable ใน Java:
  1. Hashtable ได้รับการซิงโครไนซ์ในขณะที่ HashMap ไม่ใช่ สิ่งนี้ทำให้ HashMap ดีขึ้นสำหรับแอปพลิเคชันที่ไม่มีเธรด เนื่องจากโดยทั่วไปแล้วออบเจ็กต์ที่ไม่ซิงโครไนซ์จะทำงานได้ดีกว่าวัตถุที่ซิงโครไนซ์
  2. Hashtable ไม่อนุญาตให้ใช้คีย์หรือค่าว่าง HashMap อนุญาตให้คุณใช้คีย์ว่างหนึ่งคีย์และค่าว่างจำนวนเท่าใดก็ได้
  3. หนึ่งในคลาสย่อยของ HashMap คือ LinkedHashMap ดังนั้นหากคุณต้องการลำดับการวนซ้ำที่คาดเดาได้ (ลำดับการแทรกเริ่มต้น) คุณสามารถสลับ HashMap สำหรับ LinkedHashMap ได้อย่างง่ายดาย นี่จะไม่ง่ายนักหากคุณใช้ Hashtable

10. JDBC คืออะไร?

คำตอบ: JDBC เป็นเลเยอร์นามธรรมที่อนุญาตให้ผู้ใช้เลือกระหว่างฐานข้อมูล ด้วย JDBC นักพัฒนาสามารถเขียนแอปพลิเคชันฐานข้อมูลใน Java ได้โดยไม่ต้องกังวลกับรายละเอียดเบื้องหลังฐานข้อมูลใดฐานข้อมูลหนึ่ง

11. คำหลัก "คงที่" หมายถึงอะไร? คุณสามารถแทนที่วิธีส่วนตัวหรือแบบคงที่ใน Java ได้หรือไม่?

คำตอบ: คำหลักแบบคงที่ หมายความว่าสมาชิกตัวแปรหรือวิธี การสามารถเข้าถึงได้โดยไม่ต้องมีอินสแตนซ์ของคลาสที่เป็นสมาชิก ผู้ใช้ไม่สามารถแทนที่วิธีการแบบคงที่ใน Java ได้เนื่องจากการแทนที่วิธีการจะขึ้นอยู่กับการเชื่อมโยงแบบไดนามิกที่รันไทม์ และวิธีการแบบคงที่จะถูกผูกไว้อย่างถาวรในเวลารวบรวม วิธีการคงที่ไม่เชื่อมโยงกับอินสแตนซ์ใดๆ ของคลาส ดังนั้นจึงใช้แนวคิดนี้ไม่ได้

12. อะไรคือความสำคัญของการบล็อกในที่สุดเมื่อจัดการกับข้อยกเว้น?

คำตอบ: ในที่สุด บล็อก ก็จะถูกดำเนินการเสมอ โดยไม่คำนึงว่ามีข้อยกเว้นเกิดขึ้นหรือไม่ แม้ว่าจะไม่มี คำสั่ง catchและมีข้อยกเว้นเกิดขึ้น ก็ตาม สิ่งสุดท้ายที่ต้องพูดถึงคือ บล็อก สุดท้ายถูกใช้เพื่อเผยแพร่ทรัพยากร เช่น บัฟเฟอร์ I/O การเชื่อมต่อฐานข้อมูล ฯลฯ

13. ความแตกต่างระหว่างข้อยกเว้นและข้อผิดพลาดใน Java คืออะไร?

คำตอบ: ข้อผิดพลาดเป็นเงื่อนไขสำคัญที่ไม่สามารถจัดการได้ด้วยโค้ดโปรแกรม ข้อยกเว้นเป็นสถานการณ์พิเศษที่สามารถจัดการได้ด้วยโค้ดโปรแกรม

14. เมื่อใดที่วัตถุจะมีสิทธิ์สำหรับการรวบรวมขยะใน Java?

คำตอบ: อ็อบเจ็กต์ Java อยู่ภายใต้การรวบรวมขยะเมื่อไม่สามารถใช้งานได้กับโปรแกรมที่กำลังใช้งานอยู่

15. ตัววนซ้ำคืออะไร?

คำตอบ: อินเทอร์เฟซ Iteratorมีวิธีการมากมายที่สามารถวนซ้ำผ่านคอลเลกชันใด ก็ได้ ทุกคอลเลกชัน Java มี เมธอด Iteratorที่ส่งคืนอินส แตนซ์ Iterator ตัววนซ้ำสามารถลบองค์ประกอบออกจากคอลเลกชันพื้นฐานระหว่างการวนซ้ำ

16. อะไรคือการส่งผ่านโดยการอ้างอิงและการส่งผ่านด้วยค่า?

คำตอบ:
  • เมื่อวัตถุถูกส่งผ่านค่าหมายความว่ามีการส่งสำเนาของวัตถุนั้น ด้วยวิธีนี้ แม้ว่าจะทำการเปลี่ยนแปลงกับออบเจ็กต์นี้ ก็จะไม่ส่งผลกระทบต่อค่าดั้งเดิม
  • เมื่ออ็อบเจ็กต์ถูกส่งผ่านโดย Referenceหมายความว่าอ็อบเจ็กต์นั้นไม่ได้ผ่านจริง ๆ แต่เป็นการส่งผ่านการอ้างอิงไปยังอ็อบเจ็กต์แทน ด้วยวิธีนี้ การเปลี่ยนแปลงใดๆ ที่ทำโดยวิธีการภายนอกจะมีผลในทุกที่ด้วย

17. Java applet คืออะไร?

คำตอบ: Java applet คือโปรแกรมที่สามารถรวมไว้ในเพจ HTML และดำเนินการในเบราว์เซอร์ไคลเอนต์ที่เปิดใช้งาน Java แอพเพล็ตใช้เพื่อสร้างแอปพลิเคชันเว็บแบบไดนามิกและโต้ตอบ

18. HashMap ทำงานอย่างไรใน Java?

คำตอบ: HashMap ใน Java เก็บคู่คีย์-ค่า HashMapต้องการฟังก์ชันแฮช ใช้hashCodeและ วิธี เท่ากับเพื่อตั้งค่าและดึงองค์ประกอบเข้าและออกจากคอลเลกชัน เมื่อเรียก ใช้เมธอด put HashMapจะคำนวณค่าแฮชของคีย์และจัดเก็บคู่ไว้ที่ดัชนีที่เหมาะสมภายในคอลเลกชัน หากมีคีย์อยู่ ค่าของคีย์จะถูกอัพเดตด้วยค่าใหม่ ลักษณะสำคัญบางประการของ HashMap คือความจุ ตัวประกอบการรับน้ำหนัก และการเปลี่ยนแปลงขนาดเกณฑ์

19. อินเทอร์เฟซหลักของ Java Collections Framework คืออะไร?

ตอบ Java Collections Frameworkเป็นชุดอินเทอร์เฟซและคลาสที่ออกแบบมาเพื่อรองรับการดำเนินการกับคอลเลกชันของอ็อบเจ็กต์ อินเทอร์เฟซหลักที่พบใน Java Collections Framework คือ:
  • คอลเลกชันแสดงถึงกลุ่มของวัตถุที่เรียกว่าองค์ประกอบ
  • ชุดคือคอลเลกชันที่ไม่สามารถมีองค์ประกอบที่ซ้ำกัน
  • รายการคือคอลเลกชันที่ได้รับคำสั่งซึ่งสามารถมีองค์ประกอบที่ซ้ำกัน
  • แผนที่เป็นวัตถุที่จับคู่คีย์กับค่าและไม่สามารถมีคีย์ที่ซ้ำกัน

20. Java รองรับข้อมูลประเภทใดบ้าง? Autoboxing และ Unboxing คืออะไร?

คำตอบ: ภาษาการเขียนโปรแกรม Java รองรับประเภทข้อมูลดั้งเดิมแปดประเภทต่อไปนี้:
  • ไบต์
  • สั้น
  • ภายใน
  • ยาว
  • ลอย
  • สองเท่า
  • บูลีน
  • ถ่าน
Autoboxingเป็นการแปลงอัตโนมัติที่ดำเนินการโดยคอมไพเลอร์ Java ระหว่างประเภทดั้งเดิมและคลาส wrapper อ็อบเจ็กต์ที่เกี่ยวข้อง หากการเปลี่ยนแปลงไปในทิศทางตรงกันข้าม การดำเนินการนี้จะเรียกว่าUnboxing ขอขอบคุณที่อ่านและขอให้โชคดีกับการสัมภาษณ์ทางเทคนิคของคุณ!

ประโยชน์ของการรู้ภาษาโปรแกรมหลายภาษา

ที่มา: Dev.to โดยส่วนตัวแล้วฉันเชื่อว่านักพัฒนาทุกคนควรรู้ภาษาการเขียนโปรแกรมมากกว่าหนึ่งภาษา กล่าวอีกนัยหนึ่ง หากเรากำลังพูดถึงภาษาการเขียนโปรแกรม นักพัฒนาจะต้องเป็นคนพูดได้หลายภาษาคอฟฟี่เบรค #58  20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer ควรรู้  ประโยชน์ของการรู้ภาษาโปรแกรมหลายภาษา - 2

ภาษาหลักและภาษารอง

เพื่อให้สิ่งต่าง ๆ ง่ายขึ้น ให้ฉันอธิบายคำศัพท์บางคำที่ใช้ในบทความนี้ ฉันเชื่อว่านักพัฒนาทุกคนควรมีภาษาเดียวที่เขาชอบ ฉันเรียกภาษานี้เป็นภาษาหลัก ฉันจะเรียกภาษาอื่นนอกเหนือจากภาษาหลักเสริม แน่นอนว่านักพัฒนาอาจเปลี่ยนภาษาหลักของเขา (มากกว่าหนึ่งครั้ง) ตลอดอาชีพของเขา นี่เป็นเรื่องปกติ มีสาเหตุหลายประการที่อธิบายสิ่งนี้

ผู้เชี่ยวชาญ

ในการอภิปรายเกี่ยวกับนักพัฒนาที่พูดได้หลายภาษา มักมีข้อโต้แย้งว่าความรู้ของนักพัฒนาในภาษาที่สองมาพร้อมกับความชำนาญในภาษาหลักน้อยลง ผู้เสนอแนวคิดนี้สันนิษฐานว่าการเรียนรู้ภาษาใหม่แต่ละภาษาต้องใช้เวลา และคราวนี้คุณไม่สามารถใช้เวลาไปกับการแสวงหาความรู้เกี่ยวกับภาษาหลักของคุณได้อีกต่อไป แนวความคิดนี้ดูเหมือนผิดสำหรับฉัน ฉันเห็นการเปรียบเทียบอีกอย่าง: กีฬา เป็นที่รู้กันว่าการเล่นกีฬาประเภทหนึ่งช่วยเพิ่มประสิทธิภาพของคุณในอีกประเภทหนึ่ง แน่นอนว่าคุณสามารถคว้าเหรียญทองได้ทั้งสองรายการ และการปาเป้าก็ไม่น่าจะทำให้คุณเป็นนักว่ายน้ำเก่งขึ้นได้ ในทางกลับกัน หากคุณเป็นนักปีนเขา โยคะจะช่วยให้คุณพัฒนาความยืดหยุ่นและความสมดุล ดังนั้น การฝึกโยคะจะทำให้คุณเป็นนักปีนเขาที่ดีกว่าการไม่มีโยคะ ฉันคิดว่าการเรียนรู้ภาษาเพิ่มเติมแต่ละภาษามักจะช่วยพัฒนาทักษะของคุณในภาษาอื่นๆ ที่คุณรู้จักเช่นกัน

เครื่องมือที่หลากหลายมากขึ้น

นอกจากนี้การรู้ภาษาการเขียนโปรแกรมหลายภาษาช่วยปรับปรุงคลังแสงของคุณในฐานะนักพัฒนาได้อย่างมาก มันขยายขอบเขตอันไกลโพ้นของคุณและช่วยให้คุณมองบางสิ่งจากมุมมองที่แตกต่างกัน ลองยกตัวอย่างจากชีวิตประจำวัน หากคุณเคยใช้ไขควง คุณจะคุ้นเคยกับสกรูหัวแฉก เมื่อมองแวบแรก สกรูหัวแฉกทั้งหมดจะเหมือนกัน และดูเหมือนว่าจะสามารถขันให้แน่นได้ด้วยไขควงเพียงตัวเดียว ใช่ มันเกิดขึ้นที่เป็นการยากสำหรับคุณที่จะขันหรือคลายเกลียวสกรูบางตัว แต่โดยทั่วไปแล้ว ไขควงอันเดียวก็เพียงพอสำหรับคุณ คอฟฟี่เบรค #58  20 คำถามสัมภาษณ์ที่สำคัญที่ Java Developer ควรรู้  ประโยชน์ของการรู้ภาษาโปรแกรมหลายภาษา - 3แต่วันหนึ่งคุณเดินเข้าไปในร้านขายเครื่องมือ ดูไขควงสวยๆ พวกนั้น และพบว่าไขควง Phillips มีหลายประเภท คุณจะเห็นว่าไขควงที่คุณมีอยู่แล้วคือ Phillips (PH) และตัดสินใจซื้อ Pozidriv (PZ) ซึ่งเป็นน้องสาวฝาแฝดของมัน ทันใดนั้นปรากฎว่าสำหรับสกรูบางตัวตัวหนึ่งเหมาะกว่าและสำหรับตัวอื่น - อีกตัวหนึ่ง มีลักษณะเหมือนกันแต่ไม่สามารถใช้แทนกันได้ (หากคุณสงสัยว่าตัวอักษร PH และ PZ บนไขควงหมายถึงอะไร ตอนนี้คุณรู้แล้ว) ด้วยความรู้ที่มากขึ้นและเครื่องมือพิเศษ คุณจะสามารถทำงานได้ดีขึ้นในครั้งต่อไปที่คุณต้องขันสกรูหัวแฉกให้แน่น เช่นเดียวกับภาษาการเขียนโปรแกรม

คุณไม่จำเป็นต้องจ่ายเงินสำหรับความรู้เพิ่มเติม

ดังนั้นโดยส่วนตัวแล้วฉันไม่เห็นคุณค่าของการเรียนรู้ภาษาการเขียนโปรแกรมเพิ่มเติม คุณจะเก่งทั้งสองภาษาเท่ากันหรือไม่? อาจจะไม่ใช่แต่ไม่น่าเป็นไปได้ที่นั่นคือเป้าหมายของคุณ คุณเรียนรู้อะไรใหม่เกี่ยวกับภาษาหลักของคุณหรือไม่? ฉันมั่นใจเรื่องนี้อย่างแน่นอน การรู้ภาษาใหม่จะเผยให้เห็นความแตกต่างระหว่างพวกเขา และสิ่งนี้จะช่วยปลุกความอยากรู้อยากเห็นของคุณ คุณจะสงสัยว่าทำไมสิ่งต่างๆ ในภาษาใหม่จึงทำแตกต่างออกไป และสิ่งที่พวกเขาทำ โดยสรุปผมจะยกตัวอย่างจากชีวิต ฉันใช้เครื่องมือบรรทัดคำสั่งหนึ่งรายการที่เขียนด้วยภาษา Python ทุกครั้งที่ฉันติดตั้งเครื่องมือนี้ในเครื่องใหม่ มีปัญหาเกิดขึ้น และทุกครั้งที่อัปเดต จำนวนปัญหาก็เพิ่มขึ้น หากคุณมี Go ในกล่องเครื่องมือ คุณจะสังเกตเห็นความได้เปรียบของมันทันทีในสถานการณ์นี้ Go ช่วยให้คุณสามารถรวบรวมสิ่งประดิษฐ์ของมันให้เป็นไบนารี่ในตัวเอง คุณสามารถมั่นใจได้ว่าเมื่อคอมไพล์แล้ว ไบนารี่จะทำงานบนทุกเครื่องที่คุณคอมไพล์ไว้ ดังนั้นฉันจึงย้าย Python CLI to Go ด้วยเวอร์ชันใหม่นี้ ฉันไม่ต้องกังวลกับการเปลี่ยนแปลงรันไทม์หรือการพึ่งพาของบุคคลที่สามอีกต่อไป นี่เป็นตัวอย่างที่ดีในการเลือกเครื่องมือที่เหมาะสมที่สุดสำหรับงาน และเพื่อที่จะสามารถเลือกได้ คุณจะต้องเป็นนักพัฒนาที่พูดได้หลายภาษา
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION