14 คำถามและคำตอบสัมภาษณ์ Java ที่พบบ่อย [2022]
เผยแพร่แล้ว: 2022-05-06คุณมีการสัมภาษณ์ Java สำหรับงานในฝันของคุณหรือไม่? ต่อไปนี้คือคำถามและคำตอบในการสัมภาษณ์ Java ที่สามารถช่วยให้คุณเก่งในการสัมภาษณ์
ในปี 1982 James Gosling ลงทุนภาษา Java ระดับสูงซึ่งเป็นไปตามหลักการของการเขียนโปรแกรมเชิงวัตถุ เป็นหนึ่งในภาษาโปรแกรมที่ได้รับความนิยมและใช้กันอย่างแพร่หลาย ผู้เริ่มต้นและนักพัฒนาซอฟต์แวร์มืออาชีพเลือกใช้เป็นทางเลือกอาชีพที่มีศักยภาพ
Java เป็นเรื่องเกี่ยวกับคลาส, การสืบทอด, JSON, ตัววนซ้ำ, การแจงนับ, ตัวแปรผันผวน, ชั่วคราว, ไฮเบอร์เนต, อุโมงค์ HTTP และคลาสนามธรรม มันมาจากไวยากรณ์จากภาษาการเขียนโปรแกรม C ++ และ C อย่างไรก็ตาม จำเป็นต้องรู้คำถามสำคัญที่ผู้สัมภาษณ์อาจถาม
เพื่อช่วยนักพัฒนา Java ต่อไปนี้คือคำถามและคำตอบในการสัมภาษณ์ที่สำคัญบางส่วน
Java เป็นภาษาเชิงวัตถุบริสุทธิ์หรือไม่ อธิบายคำตอบของคุณ.
ไม่ Java ไม่ใช่ภาษาเชิงวัตถุล้วนๆ รองรับประเภทข้อมูลดั้งเดิม เช่น short, byte, double, float, long, char, boolean เป็นต้น ซึ่งไม่ใช่วัตถุ อย่างไรก็ตาม มันตอบสนองหลายแง่มุมเชิงวัตถุ
เหตุใด Java จึงเป็นที่นิยมในฐานะภาษาที่ไม่ขึ้นกับแพลตฟอร์ม
ภาษาการเขียนโปรแกรม Java ไม่ได้ขึ้นอยู่กับซอฟต์แวร์และฮาร์ดแวร์ใดๆ เนื่องจากคอมไพเลอร์ที่มีสภาพแวดล้อมรันไทม์ (JRE) คอมไพเลอร์ Java จะคอมไพล์โค้ดทันทีและแปลงเป็นโค้ดไบต์ (ไม่ขึ้นกับแพลตฟอร์ม) ด้วยเหตุนี้ โค้ดจึงสามารถทำงานบนหลายระบบได้ ทำให้เป็นที่นิยมอย่างมาก
อธิบายความแตกต่างพื้นฐานระหว่าง JDK, JRE และ JVM
Java Development Kit | Java Runtime Environment | Java Virtual Machine |
JDK เป็นเครื่องมือที่จำเป็นสำหรับการจัดทำเอกสาร คอมไพล์ และจัดทำแพ็คเกจโปรแกรม Java | Java bytecode ดำเนินการโดยใช้ JRE | JVM เป็นเครื่องนามธรรมที่ให้สภาพแวดล้อมรันไทม์เพื่อให้ง่ายต่อการรัน Java bytecode |
มันมาพร้อมกับเครื่องมือในการพัฒนาและ JRE | ด้วยเหตุนี้ การใช้งาน JVM จึงสามารถเข้าถึงได้มากขึ้นและมีอยู่จริง | JVM รวมถึงการใช้งาน ข้อมูลจำเพาะ และอินสแตนซ์รันไทม์ |
ใช้แพลตฟอร์ม Java รุ่นมาตรฐาน รุ่นไมโคร และรุ่นองค์กร | ประกอบด้วยไฟล์และไลบรารีหลายไฟล์ ทำให้ใช้งาน JVM ได้ง่ายขึ้น | มันดำเนินการรหัส การตรวจสอบ และโหลด |

ให้เหลือบเข้าไปในตัวระบุการเข้าถึงสำหรับคลาส Java หรือไม่
คีย์เวิร์ดที่ใช้ก่อนชื่อคลาสคือตัวระบุการเข้าถึงใน Java มันหมายถึงขอบเขตการเข้าถึงโดยใช้ประเภทต่าง ๆ :
- ป้องกัน – เข้าถึงฟิลด์หรือเมธอดจากคลาสเดียวกันและแพ็คเกจเดียวกัน (คลาสย่อยหรือที่ที่พวกเขาอยู่) แต่ไม่ใช่จากคลาสอื่น
- ส่วนตัว – เข้าถึงฟิลด์หรือเมธอดจากคลาสเดียวกันและจากที่ที่พวกเขาอยู่
- สาธารณะ – เข้าถึงเมธอด คลาส และฟิลด์ได้อย่างง่ายดายตลอดทั้งโค้ด
- ค่าเริ่มต้น – หนึ่งสามารถเข้าถึงคลาส ฟิลด์ และวิธีการจากแพ็คเกจเดียวกัน ไม่ใช่จากแพ็คเกจดั้งเดิมหรือจากภายนอก
คุณหมายถึงอะไรโดยตัวแปรท้องถิ่นและตัวแปรอินสแตนซ์?
ตัวแปรโลคัล – ตัวแปร เหล่านี้มีอยู่ในคอนสตรัคเตอร์ ฟังก์ชัน หรือบล็อกที่สามารถเข้าถึงได้เฉพาะภายในเท่านั้น ข้อจำกัดขอบเขตบล็อกถูกนำไปใช้ในตัวแปรโลคัล เมธอดคลาสอื่นจะไม่สามารถเข้าถึงหรือมีความรู้เกี่ยวกับตัวแปรโลคัลที่ประกาศไว้ในเมธอด

ตัวแปรอินสแตนซ์ – เมธอดทั้งหมดสามารถเข้าถึงตัวแปรเหล่านี้ในคลาสที่ประกาศภายในและภายนอกเมธอด ตัวแปรจะมองเห็นคุณสมบัติของวัตถุ เฉพาะอินสแตนซ์เท่านั้นที่ได้รับผลกระทบโดยไม่กระทบกับอินสแตนซ์คลาสอื่นๆ ทั้งหมด ในกรณีที่มีการแก้ไขใดๆ
JIT Compiler คืออะไร?
Just In Time Compiler ใช้เพื่อเพิ่มประสิทธิภาพการทำงานของแอปพลิเคชันที่คอมไพล์ bytecode ซึ่งช่วยลดการใช้เวลา นอกจากนี้ยังช่วยแปลรหัสจาก JVM เป็นชุดคำสั่ง CPU
อธิบายคลาสซิงเกิลตันในบรรทัดเดียว
เป็นประเภทคลาสที่ไม่ซ้ำกันซึ่งแสดงอินสแตนซ์หรืออ็อบเจ็กต์ครั้งละหนึ่งรายการ
การโคลนวัตถุคืออะไร?
การโคลนอ็อบเจ็กต์หมายถึงการสร้างสำเนาโคลนของอ็อบเจ็กต์ Java ซึ่งช่วยให้นักพัฒนานำไปใช้ในภายหลัง นักพัฒนา Java สามารถใช้เมธอด clone() เพื่อใช้งานอินเตอร์เฟส java.lang.Cloneable
ได้อย่างง่ายดาย
อธิบายตัวสร้าง
ตัวสร้างคือกลุ่มของรหัสที่สามารถเริ่มต้นวัตถุที่มีชื่อเดียวกับคลาสได้ นอกจากนี้ วัตถุจะถูกสร้างขึ้นโดยอัตโนมัติและไม่มีประเภทการส่งคืน มีตัวสร้างสองประเภทเช่น:
- ตัว สร้างพารามิเตอร์ – ตัวสร้างสามารถเริ่มต้นตัวแปรอินสแตนซ์ที่รับอาร์กิวเมนต์และใช้ค่าที่ให้มา
- ตัว สร้างเริ่มต้น – ตัวสร้างเริ่มต้นตัวแปรอินสแตนซ์ ไม่สร้างผู้รับเหมาอาร์กิวเมนต์ตามค่าเริ่มต้น และไม่รับอินพุตใดๆ ไม่มีการกำหนดคอนสตรัคเตอร์อื่น
อะไรคือความแตกต่างระหว่าง == และเท่ากับ () ใน Java?
ตัวดำเนินการความเท่าเทียมกัน (==) คือตัวดำเนินการไบนารีที่เปรียบเทียบอ็อบเจ็กต์และพื้นฐานในภาษาการเขียนโปรแกรม Java คลาสอ็อบเจ็กต์จัดเตรียมเมธอดเป็น public boolean equals(Object o)
ในเวลาเดียวกัน equals()
ตรวจสอบความเท่าเทียมกันของสองอ็อบเจ็กต์และกำหนดคลาสอ็อบเจ็กต์ใน Java ที่กำหนดโดยตรรกะทางธุรกิจ
แยกความแตกต่างระหว่าง TreeSet และ HashSet
ชุดต้นไม้ | HashSet |
รักษาองค์ประกอบในการเรียงลำดับ | องค์ประกอบไม่ได้รับการดูแลตามลำดับการเรียงลำดับ |
อนุญาตวัตถุที่ต่างกัน | ไม่อนุญาตให้มีวัตถุที่ต่างกัน |
ใช้ SortedSet Interface โดยใช้ต้นไม้สำหรับการจัดเก็บข้อมูล | ดำเนินการผ่านตารางแฮช |
อธิบายการเริ่มต้น Double Brace
ใน Java Double Brace Initialization รวมสองกระบวนการอิสระ การเริ่มต้น Double Brace ใช้สองวงเล็บปีกกาเพื่อสร้างคลาสภายในที่ไม่ระบุชื่อและบล็อกการเริ่มต้นตามลำดับ ตัวชี้ "สิ่งนี้" ช่วยให้คลาสชั้นในอ้างถึงคลาสภายนอกสำหรับทั้งการเริ่มต้นและการสร้างในคำสั่งเดียว
กำหนด Java String Pool
คอลเล็กชันของ Strings เรียกว่าการเรียงลำดับ Java String Pool ในหน่วยความจำฮีป ซึ่งจะมีการสร้างอ็อบเจ็กต์ใหม่ String Pool ตรวจสอบความพร้อมใช้งานของอ็อบเจ็กต์ จากนั้นการอ้างอิงเดียวกันจะถูกส่งกลับไปยังตัวแปร มิฉะนั้น วัตถุใหม่จะถูกสร้างขึ้นพร้อมกับการย้อนกลับไปยังการอ้างอิงที่เกี่ยวข้อง
คลาสคอลเลกชันใน Java หมายถึงอะไร
พิจารณาว่าเป็นสถาปัตยกรรมที่แสดงถึงกรอบงานที่ช่วยจัดการและจัดเรียงกลุ่มของวัตถุ คอลเล็กชันช่วยดำเนินการต่างๆ เช่น การลบ การค้นหา การจัดการ การเรียงลำดับ การแก้ไข การแทรก ฯลฯ รวมถึงเฟรมเวิร์กต่างๆ เช่น เมธอด คลาส และอินเทอร์เฟซ
คำพูดสุดท้าย
ไม่ต้องสงสัยเลยว่า Java เป็นหนึ่งในภาษาโปรแกรมระดับสูงที่ได้รับความนิยมมากที่สุด พร้อมด้วยไลบรารีมาตรฐานที่น่าประทับใจและเครื่องมืออันทรงพลัง มีการสนับสนุนเธรดสำหรับปัญหาต่างๆ เช่น ปัญหาที่ทำงานพร้อมกัน นอกจากนี้ยังมีคุณสมบัติในตัวและไวยากรณ์ที่ใช้งานง่ายซึ่งรวมความเสถียรเข้ากับผลิตภัณฑ์
หากต้องการเชี่ยวชาญ Java ให้ลองลงทะเบียนเรียนในหลักสูตร Java ออนไลน์เหล่านี้