คำถามและคำตอบสัมภาษณ์สถาปนิก Java 16 อันดับแรก

เผยแพร่แล้ว: 2021-10-15

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

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

สารบัญ

หัวข้อสำคัญสำหรับงานที่เกี่ยวข้องกับ Java

มีบางหัวข้อสำคัญที่คุณต้องไม่ข้ามไปในขณะที่เตรียมงานที่เกี่ยวข้องกับ Java หรือการสัมภาษณ์ในทุกความกว้าง บางประเด็นดังกล่าวรวมถึง:

  • ภาพรวมการเขียนโปรแกรม Java
  • รายละเอียดเกี่ยวกับ Java และกระบวนทัศน์ที่ทำงานบน (OOPS)
  • JDK, JRE, JIT, JVM - คอมไพเลอร์ Java
  • ตัวแปรและตัวดำเนินการใน Java
  • ลูปและวิธีการ
  • โครงสร้างข้อมูล – รวมถึง Array, Lists, Heaps, Trees เป็นต้น
  • ชั้นเรียนและวัตถุ
  • คำหลักที่สำคัญ เช่น 'นี่' 'สุดยอด' และอื่นๆ
  • คลาสนามธรรมและอินเทอร์เฟซ
  • เซิร์ฟเล็ตในภาษาจาวา
  • มัลติเธรดใน Java
  • แนวคิดขั้นสูงใน Java

ไม่สามารถถามคำถามจากหัวข้อทั้งหมดในบล็อกนี้ ดังนั้น ขอแนะนำอย่างยิ่งให้คุณสำรวจหัวข้อที่กล่าวถึงข้างต้นและรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับหัวข้อเหล่านี้

คำถามและคำตอบสัมภาษณ์สถาปนิก Java

เราแสดงรายการคำถามสัมภาษณ์สถาปนิกสัมภาษณ์ Java 17 อันดับแรกตามหัวข้อส่วนใหญ่ที่กล่าวถึงข้างต้น โปรดจำไว้ว่านี่ไม่ใช่รายการคำถามที่ครอบคลุม แต่เป็นการเสนอสิ่งที่คุณสามารถคาดหวังได้ คุณจะต้องทำการขุดมากขึ้นเนื่องจาก Java ต้องการเวลา!

1. ตัวระบุการเข้าถึงคืออะไร และตัวระบุการเข้าถึงประเภทใดบ้างที่มีอยู่ใน Java

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

  • สาธารณะ
  • มีการป้องกัน
  • ค่าเริ่มต้น
  • ส่วนตัว

2. inner class และ subclass ต่างกันอย่างไรใน Java?

คลาสภายในคือคลาสที่ซ้อนกันภายในคลาสอื่น ดังนั้นคลาสภายในจึงมีสิทธิ์เข้าถึงตัวแปรและเมธอดทั้งหมดของประเภทภายนอก

ในทางกลับกัน ซับคลาสเป็นคลาสพิเศษที่สืบทอดคุณลักษณะจากคลาสอื่นที่เรียกว่าซูเปอร์คลาส คลาสย่อยสามารถเข้าถึงเมธอดและฟิลด์ที่มีการป้องกันและสาธารณะทั้งหมดของซูเปอร์คลาส

3. การห่อหุ้มข้อมูลมีความสำคัญอย่างไร?

การห่อหุ้มข้อมูลเป็นหนึ่งในแนวคิดหลักของกระบวนทัศน์ OOP (Object Oriented Programming) และใช้เพื่อรวมวิธีการและคุณสมบัติต่างๆ เข้าด้วยกันเป็นหน่วยเดียว การใช้การห่อหุ้ม โปรแกรมเมอร์สามารถปฏิบัติตามแนวทางแบบโมดูลาร์ที่มีโครงสร้างสำหรับการพัฒนาซอฟต์แวร์ การห่อหุ้มยังมีประโยชน์สำหรับการซ่อนข้อมูลอีกด้วย

4. คลาสซิงเกิลตันใน Java คืออะไร?

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

5. ตัวแปร double และ float ใน Java ต่างกันอย่างไร

ใน Java double ใช้เวลา 8 ไบต์ในหน่วยความจำในขณะที่ float ใช้เวลา 4 ไบต์ ยิ่งกว่านั้น double คือจำนวนทศนิยมที่มีความแม่นยำสองเท่า ในขณะที่ float คือความแม่นยำเดียว

6. คำหลักสุดท้ายใน Java คืออะไร?

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

7. วิธีสร้างตัวเลขสุ่มใน Java คืออะไร?

Java ให้สองวิธีสำหรับโปรแกรมเมอร์ในการสร้างตัวเลขสุ่ม:

  • การใช้คลาสสุ่มในแพ็คเกจ java.util
  • การใช้คณิตศาสตร์ random() จะสร้างตัวเลขสุ่มในช่วงตั้งแต่ 0.1 ถึง 1.0

8. เป็นไปได้ไหมที่วิธีการ main() ใน Java จะคืนค่าใด ๆ

ไม่ main() ของ Java ถูกประกาศด้วยประเภทข้อมูล Void เสมอ ดังนั้นจึงไม่สามารถคืนค่าใดๆ ได้

9. Abstract Class แตกต่างจาก Interface ใน Java อย่างไร?

ความแตกต่างที่สำคัญระหว่าง Interface และ Abstract Class คือก่อนหน้านี้อนุญาตให้ประกาศวิธีสแตติกสาธารณะเท่านั้น ไม่มีการดำเนินการใด ๆ ของวิธีการดังกล่าว ในทางกลับกัน Abstract Classes สามารถมีตัวระบุการเข้าถึงที่มีหรือไม่มีการใช้งานภายในคลาส ความแตกต่างอีกประการหนึ่งคือคลาสที่ใช้อินเทอร์เฟซจำเป็นต้องใช้วิธีการทั้งหมดของอินเทอร์เฟซ ในทางกลับกัน สำหรับ Abstract Class นี่ไม่ใช่ข้อกำหนด

10. ใน Java การนำเข้าแพ็คเกจจะนำเข้าแพ็คเกจย่อยโดยอัตโนมัติหรือไม่

ไม่ หากเรานำเข้าแพ็คเกจ จะนำเข้าเฉพาะแพ็คเกจเท่านั้น ไม่ใช่แพ็คเกจย่อย โปรแกรมเมอร์จำเป็นต้องนำเข้าแพ็คเกจย่อยแยกต่างหากหากจำเป็น

11. equals() และ == ต่างกันอย่างไรใน Java?

เมธอด equals() ถูกกำหนดไว้ใน Object Class สำหรับตรวจสอบความเท่าเทียมกันของสองอ็อบเจ็กต์ วิธีนี้สามารถแทนที่ได้หากโปรแกรมเมอร์ต้องการ ตัวดำเนินการความเท่าเทียมกัน (==) เป็นตัวดำเนินการไบนารีที่ส่งคืนเฉพาะค่าบูลีน

12. อะไรคือความแตกต่างระหว่างตัวแปรท้องถิ่นและตัวแปรอินสแตนซ์?

ตัวแปรโลคัลถูกใช้ภายในคอนสตรัคเตอร์ เมธอด หรือบล็อก – และอยู่ในขอบเขตเฉพาะนั้น เมธอดหรือบล็อคอื่นๆ ในคลาสจะไม่รับรู้ถึงตัวแปรที่ไม่อยู่ในขอบเขตของตัวแปร

ในทางกลับกัน ตัวแปรอินสแตนซ์ถูกผูกไว้กับวัตถุ ตัวแปรเหล่านี้พบการประกาศภายในคลาส แต่อยู่นอกเมธอด ด้วยวิธีนี้ เมธอดหรือบล็อกทั้งหมดของคลาสนั้นสามารถเข้าถึงตัวแปรอินสแตนซ์ได้

13. คอลเลกชันใน Java คืออะไร?

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

  • อินเทอร์เฟซ
  • ชั้นเรียน
  • วิธีการ

14. วิธีต่างๆ ใน ​​Servlets สำหรับการจัดการเซสชันมีอะไรบ้าง?

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

  • HTML ฟิลด์ที่ซ่อนอยู่
  • คุ้กกี้
  • การเขียน URL ใหม่
  • การตรวจสอบผู้ใช้
  • API การจัดการเซสชัน

15. คำสั่ง JDBC คืออะไร?

คำสั่ง JDBC สามารถเข้าใจได้ว่าเป็นคำสั่งที่จำเป็นในการสื่อสารกับฐานข้อมูลโดยใช้คำสั่ง SQL JDBC จัดเตรียมวิธีการต่างๆ เช่น executeUpdate(), execute() และ executeQuery() เพื่อโต้ตอบกับฐานข้อมูล

JDBC สามเสนองบสามประเภทต่อไปนี้:

  • คำชี้แจง: คิดว่านี่เป็นจุดประสงค์ทั่วไปของการดำเนินการค้นหา SQL ขณะใช้งานจริงและเข้าถึงฐานข้อมูล
  • PreparedStatement: ใช้เมื่อโปรแกรมเมอร์ต้องการระบุพารามิเตอร์อินพุตและคำสั่ง SQL ในระหว่างการดำเนินการ
  • CallableStatement: ใช้เพื่อเข้าถึงกระบวนงานที่เก็บไว้ CallableStatement ยอมรับพารามิเตอร์รันไทม์

16. การจัดการข้อยกเว้นใน Spring MVC Framework เป็นอย่างไร

Spring MVC มีวิธีต่อไปนี้ในการตั้งค่าการจัดการข้อยกเว้นในโปรแกรมของเรา:

  • แบบอิงคอนโทรลเลอร์: ในที่นี้ เรากำหนดวิธีการจัดการข้อยกเว้น สิ่งที่เราต้องทำคือนำหน้าวิธีการเหล่านี้ด้วยคำอธิบายประกอบ @ExceptionHandler
  • ตัวจัดการข้อยกเว้นส่วนกลาง: คำอธิบายประกอบ @ControllerAdvice ใช้สำหรับสิ่งนี้ สามารถใช้คลาสใดก็ได้เพื่อกำหนดตัวจัดการข้อยกเว้นส่วนกลาง
  • การใช้งาน HandlerExceptionResolver: Spring MVC จัดเตรียม HandlerExceptionResolver เพื่อสร้างตัวจัดการข้อยกเว้นส่วนกลาง เมธอดนี้เป็นเพราะ Spring framework ยังมีคลาสดีฟอลต์บางตัวที่สามารถกำหนดได้ในไฟล์คอนฟิกูเรชัน spring bean ของเรา เพื่อรับสิทธิประโยชน์ในการจัดการข้อยกเว้น

สรุปแล้ว

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

หากคุณกำลังหาจุดเริ่มต้นไม่ได้ เราขอเชิญคุณเข้า ร่วมโปรแกรมการพัฒนาซอฟต์แวร์ ของเรา ด้วย ความนอบน้อม สัมผัสประสบการณ์การฝึกอบรมส่วนบุคคล คำแนะนำแบบตัวต่อตัว การสนับสนุนในอุตสาหกรรม การสนับสนุนศิษย์เก่าที่แข็งแกร่ง และอีกมากมาย - และทำให้อาชีพของคุณพุ่งสูงขึ้น!

บริษัทใดบ้างที่จ้างเป็น Java Architect

Java เป็นหนึ่งในภาษาที่ได้รับความนิยมมากที่สุด โดยเฉพาะอย่างยิ่งสำหรับการสร้างเดสก์ท็อปและเว็บแอปพลิเคชัน ดังนั้น บริษัททั้งหมดที่มี Java ในชุดทักษะมักจะต้องการ Java Architects บริษัทบางแห่งที่ทำงานร่วมกับ Java Architects เป็นประจำ ได้แก่ HCL, Capgemini, Infosys, Tech Mahindra และอื่นๆ

ฉันจะถูกขอให้เข้ารหัสระหว่างรอบสัมภาษณ์หรือไม่?

เป็นไปได้มากว่าคุณจะแยกเป็นรอบเพื่อทดสอบความเชี่ยวชาญด้านการเขียนโค้ดของคุณ อย่างไรก็ตาม คุณอาจยังคงถูกถามถึงอัลกอริทึมหรือปริศนาเกี่ยวกับการเขียนโปรแกรมในระหว่างการสัมภาษณ์ด้านเทคนิค

ฉันจำเป็นต้องมีประสบการณ์หรือปริญญามาก่อนเพื่อที่จะเป็นสถาปนิก Java หรือไม่?

ไม่เชิง. หากคุณเคยชินกับการทำงานกับ Java Programming Language และพอใจกับการแก้ปัญหาโดยใช้ภาษานี้ คุณสามารถสำรวจสาขานี้ได้!