บรรณาธิการได้รวบรวมคำถามทดสอบเป็นลายลักษณ์อักษรในการสัมภาษณ์ที่ได้รับความนิยมอย่างมากในปี 2560 สำหรับเพื่อนที่สัมภาษณ์โปรแกรมเมอร์ Java หากคุณเป็นผู้อ่านที่กำลังเตรียมสัมภาษณ์โปรแกรมเมอร์ Java เรียนรู้อย่างรวดเร็ว
1. คำสั่งต่อไปนี้ถูกต้อง ()
A. สองคลาสที่ได้รับการดัดแปลงสาธารณะสามารถมีอยู่ในเวลาเดียวกันในไฟล์
B. ตัวสร้างสามารถแทนที่
C. subclasses ไม่สามารถเข้าถึงคุณสมบัติที่ไม่ได้รับการแก้ไขโดยชั้นพาเรนต์โดยสาธารณะและได้รับการปกป้อง
คลาสที่ได้รับการแก้ไข D.Final สามารถสืบทอดได้
คำตอบ: C
สามารถมีคลาสสาธารณะเพียงหนึ่งในไฟล์แหล่ง Java เมื่อมีคลาสสาธารณะชื่อไฟล์ต้นฉบับจะต้องสอดคล้องกับมันมิฉะนั้นจะไม่สามารถรวบรวมได้ หากไม่มีคลาสสาธารณะในไฟล์ต้นฉบับไม่มีข้อกำหนดความสอดคล้องระหว่างชื่อไฟล์และคลาส สำหรับ Main () ไม่จำเป็นต้องวางในชั้นเรียนสาธารณะเพื่อเรียกใช้โปรแกรม
การเขียนใหม่คือการปรับเปลี่ยนวิธีการของคลาสแม่หลังจากคลาสลูกได้รับการสืบทอดจากคลาสแม่ ชื่อเมธอดพารามิเตอร์และค่าส่งคืนจะต้องเหมือนกัน วิธีการที่ทำเครื่องหมายไว้สุดท้ายไม่สามารถเขียนใหม่ได้ หากคุณไม่สามารถสืบทอดวิธีการคุณไม่สามารถแทนที่วิธีนี้ได้
ส่วนขยาย: ความแตกต่างระหว่างการแทนที่การแทนที่และการโอเวอร์โหลดมากเกินไป
วิธี Java มากเกินไป
มันคือหลายวิธีสามารถสร้างในคลาสซึ่งมีชื่อเดียวกัน แต่มีพารามิเตอร์ที่แตกต่างกันและคำจำกัดความที่แตกต่างกัน เมื่อวิธีการโทรวิธีการเฉพาะจะถูกกำหนดโดยจำนวนพารามิเตอร์ที่แตกต่างกันและประเภทพารามิเตอร์ที่ส่งผ่านไปยังพวกเขา ประเภทค่าส่งคืนอาจเหมือนกันหรือแตกต่างกันซึ่งเป็น polymorphism เชิงวัตถุ
วิธี Java เขียนใหม่
ความหลากหลายระหว่างคลาสแม่และชั้นเด็กกำหนดฟังก์ชั่นของคลาสแม่ หากวิธีการที่กำหนดไว้ในคลาสย่อยมีชื่อและพารามิเตอร์เดียวกับคลาสแม่เราบอกว่าวิธีการที่เหนือกว่า ใน Java subclasses สามารถสืบทอดวิธีการจากคลาสแม่โดยไม่ต้องเขียนวิธีเดียวกันใหม่ แต่บางครั้ง subclass ไม่ต้องการสืบทอดวิธีการของคลาสแม่ แต่ต้องการทำการแก้ไขบางอย่างซึ่งต้องมีการเขียนใหม่ของวิธีการใหม่ การเขียนทับวิธีเรียกอีกอย่างว่าวิธีการเขียนทับ
หากวิธีการในคลาสย่อยมีชื่อวิธีการเดียวกันประเภทการส่งคืนและตารางพารามิเตอร์เป็นวิธีการในคลาสพาเรนต์วิธีใหม่จะแทนที่วิธีดั้งเดิม หากคุณต้องการวิธีดั้งเดิมในคลาสพาเรนต์คุณสามารถใช้คำหลัก Super ซึ่งหมายถึงคลาสพาเรนต์ของคลาสปัจจุบัน
สิทธิ์ในการปรับเปลี่ยนการเข้าถึงของฟังก์ชั่น subclass ไม่น้อยกว่าของคลาสแม่
วิธีการเขียนใหม่สามารถมีอยู่ในความสัมพันธ์ในการสืบทอดเท่านั้นและวิธีการเขียนใหม่สามารถเขียนวิธีการใหม่ที่ไม่ได้เป็นส่วนตัวในคลาสพาเรนต์
2. จำนวนเวลาดำเนินการของ For (int x = 0, y = 0; (y! = 0) && (x <4); x ++) ลูปคือ ()
A. ไม่ จำกัด เวลา
B. ดำเนินการ 4 ครั้ง
C. ดำเนินการ 3 ครั้ง
D. อย่าดำเนินการครั้งเดียว
คำตอบ: D
ค่าเริ่มต้นของ y คือ 0 ในทั้งหมดสำหรับลูปค่าของ y ยังคงไม่เปลี่ยนแปลงดังนั้นคำสั่งการตัดสิน (y! = 0) จึงไม่เป็นความจริงดังนั้นจึงไม่ถูกดำเนินการครั้งเดียว
3. เกี่ยวกับกอง Java ข้อความต่อไปนี้ผิด ()
A. อินสแตนซ์และอาร์เรย์ทั้งหมดของคลาสได้รับการจัดสรรหน่วยความจำบนกอง
B. หน่วยความจำฮีปที่ครอบครองโดยวัตถุถูกรวบรวมโดยระบบการจัดการหน่วยความจำอัตโนมัติ
C. หน่วยความจำฮีปประกอบด้วยวัตถุที่รอดชีวิตและตายแล้วและชิ้นส่วนฟรี
D. อาร์เรย์ได้รับการจัดสรรในสแต็ก
คำตอบ: D
ก่อนอื่นอาร์เรย์จะถูกจัดสรรในกองดังนั้นคำสั่ง D ไม่ถูกต้อง
โครงสร้างของกอง Java: กอง JVM เป็นพื้นที่ข้อมูลรันไทม์และทุกกรณีและอาร์เรย์ของคลาสได้รับการจัดสรรหน่วยความจำบนกอง มันถูกสร้างขึ้นเมื่อ JVM เริ่มต้นขึ้น หน่วยความจำฮีปที่ครอบครองโดยวัตถุนั้นถูกรวบรวมโดยระบบการจัดการหน่วยความจำอัตโนมัตินั่นคือตัวเก็บขยะ หน่วยความจำกองประกอบด้วยวัตถุที่อยู่รอดและตาย วัตถุที่รอดชีวิตสามารถเข้าถึงได้สำหรับแอปพลิเคชันและจะไม่ถูกเก็บรวบรวมขยะ วัตถุที่ตายแล้วเป็นวัตถุที่ไม่สามารถเข้าถึงได้สำหรับแอปพลิเคชันและยังไม่ได้รับการรีไซเคิลโดยนักสะสมขยะ พวกเขาจะครอบครองพื้นที่หน่วยความจำกองจนกว่าตัวเก็บขยะจะเรียกคืนวัตถุเหล่านี้
4. เมื่อใช้คำหลักและคำหลักนี้คำอธิบายที่ถูกต้องด้านล่างคือ ()
A. ใช้ super () ในคอนสตรัคเตอร์คลาสย่อยเพื่อแสดงตัวสร้างที่เรียกคลาสแม่
ต้องเขียน Super () บนบรรทัดแรกของคอนสตรัคเตอร์คลาสย่อยมิฉะนั้นการรวบรวมจะไม่ถูกส่งผ่าน
B.Super () และสิ่งนี้ () ไม่จำเป็นต้องวางไว้ในบรรทัดแรกในวิธีตัวสร้าง
c. this () และ super () สามารถปรากฏในตัวสร้างในเวลาเดียวกัน
d. this () และ super () สามารถใช้ในสภาพแวดล้อมคงที่รวมถึงวิธีการคงที่และบล็อกคำสั่งคงที่
คำตอบ: ก
คีย์เวิร์ด Java นี้สามารถใช้ในร่างกายของวิธีการเท่านั้น เมื่อวัตถุถูกสร้างขึ้นเครื่องเสมือน Java (JVM) จะกำหนดตัวชี้ให้กับวัตถุที่อ้างถึงตัวเองและชื่อของตัวชี้นี้คือสิ่งนี้ ดังนั้นสิ่งนี้สามารถใช้ในวิธีที่ไม่คงที่ในชั้นเรียนเท่านั้นและสิ่งนี้จะต้องไม่ปรากฏในวิธีการคงที่และบล็อกรหัสคงที่
กุญแจสำคัญของ Super นั้นคล้ายคลึงกันซึ่งก็คือตัวแปรสมาชิกที่ถูกบล็อกหรือวิธีการสมาชิกจะปรากฏให้เห็นหรือใช้เพื่ออ้างถึงตัวแปรสมาชิกที่ถูกบล็อกและวิธีการสมาชิกสมาชิก
อย่างไรก็ตาม Super ใช้ในคลาสย่อยโดยมีวัตถุประสงค์เพื่อเข้าถึงสมาชิกที่ถูกบล็อกในชั้นเรียนหลักโดยตรง โปรดทราบว่ามันเป็นคลาสแม่แบบโดยตรง (นั่นคือซูเปอร์คลาสล่าสุดเหนือคลาส)
5. ข้อความใดต่อไปนี้ถูกต้อง ()
A. หลังจากรวบรวมโปรแกรม Java แล้วรหัสเครื่องจะถูกสร้างขึ้น
B. โปรแกรม Java จะสร้างรหัสไบต์หลังจากรวบรวม
C. โปรแกรม Java จะสร้าง DLLs หลังจากรวบรวม
D. ไม่มีข้อใดข้างต้นถูกต้อง
คำตอบ: B
Java bytecode เป็นไฟล์กลางที่สร้างโดยการรวบรวมไฟล์แหล่งข้อมูล Java
ลักษณะข้ามแพลตฟอร์มของเครื่องเสมือน Java เป็นคอมพิวเตอร์ในจินตนาการที่สามารถเรียกใช้จาวาไบต์ นอกจากนี้ยังค่อนข้างคล้ายกับภาษาการเขียนโปรแกรมอื่น ๆ
ก่อนอื่นแนะนำกระบวนการรวบรวมภาษา C: ไฟล์ C ถูกรวบรวมโดยโปรแกรมคอมไพเลอร์ C และสร้างไฟล์ปฏิบัติการไฟล์ที่เรียกใช้งานได้ของ Windows แล้วเรียกใช้งานใน Windows
มาแนะนำกระบวนการรวบรวม Java: ไฟล์ Java ถูกรวบรวมโดยคอมไพเลอร์ Java ไฟล์ Java bytecode เป็นไฟล์คลาสในเครื่องเสมือน Java รหัสเครื่องถูกดำเนินการโดย CPU; Java รวบรวมด้วย bytecode
คอมพิวเตอร์สามารถเรียกใช้รหัสเครื่องเท่านั้น เมื่อ Java ทำงานมันจะเปลี่ยนเป็นรหัสเป็นรหัสเครื่อง C/C ++ ถูกรวบรวมลงในรหัสเครื่องโดยตรงเมื่อรวบรวม
6. ข้อความใดต่อไปนี้ถูกต้อง ()
A. ตัวดัดแปลงบทคัดย่อปรับเปลี่ยนฟิลด์วิธีการและคลาส
B. ส่วนของร่างกายของวิธีนามธรรมจะต้องถูกห่อในคู่ของวงเล็บปีกกา {}
C. ประกาศวิธีการนามธรรมการจัดฟันเป็นทางเลือก
D. ประกาศวิธีการนามธรรมไม่สามารถเขียนได้ในวงเล็บปีกกา
คำตอบ: D
บทคัดย่อตัวดัดแปลงใช้ในการปรับเปลี่ยนคลาสและวิธีการสมาชิก
คลาสที่แก้ไขด้วยนามธรรมแสดงถึงคลาสนามธรรม คลาสนามธรรมอยู่ในชั้นนามธรรมของต้นไม้สืบทอด คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้
วิธีนามธรรมใช้เพื่อแสดงวิธีนามธรรมและวิธีนามธรรมไม่มีวิธีการ วิธีการนามธรรมใช้เพื่ออธิบายฟังก์ชั่นที่ระบบมี แต่ไม่ได้ให้การใช้งานเฉพาะ
บทคัดย่อเป็นคำหลักที่สำคัญใน Java และสามารถใช้ในการปรับเปลี่ยนคลาสหรือวิธีการ
เมื่อแก้ไขวิธีการหมายความว่าวิธีการมีเพียงลายเซ็นคุณลักษณะ (ลายเซ็น) และไม่มีการใช้งานเฉพาะ แต่ออกจากการใช้งานเฉพาะไปยังคลาสย่อยที่สืบทอดคลาสดังนั้นจึงไม่สามารถจัดฟันได้
7. ข้อความต่อไปนี้ถูกต้อง ()
A. ไม่สามารถละเว้นตัวสร้างในชั้นเรียนได้
B. ตัวสร้างจะต้องมีชื่อเดียวกับคลาส แต่วิธีการไม่สามารถมีชื่อเดียวกันกับคลาส
C. ตัวสร้างจะถูกดำเนินการเมื่อวัตถุใหม่
D. คลาสสามารถกำหนดตัวสร้างหนึ่งตัวเท่านั้น
คำตอบ: C
อาจมีความเข้าใจผิดที่นี่ ในความเป็นจริงวิธีการเรียนทั่วไปสามารถมีชื่อเดียวกับชื่อคลาส ความแตกต่างเพียงอย่างเดียวระหว่างพวกเขากับตัวสร้างคือตัวสร้างไม่มีค่าส่งคืน
8. คือเธรด GC เป็นด้าย daemon ()
คำตอบ: ใช่
เธรดจะถูกแบ่งออกเป็นเธรด daemon และเธรดที่ไม่ใช่ Daemon (เช่นเธรดผู้ใช้)
ตราบใดที่ไม่มีด้ายที่ไม่ใช่ Daemon ในอินสแตนซ์ JVM ปัจจุบันเธรด daemon จะทำงานทั้งหมด เฉพาะเมื่อด้ายที่ไม่ใช่ Daemon สุดท้ายสิ้นสุดลงเธรด daemon จะจบลงด้วย JVM
แอปพลิเคชั่นทั่วไปของเธรด daemon คือ GC (Garbage Collector)
9. เกี่ยวกับการนอนหลับ () และรอ () ข้อผิดพลาดต่อไปนี้คือ ()
A. การนอนหลับเป็นวิธีการของคลาสเธรด (เธรด) การรอเป็นวิธีการคลาสวัตถุ
B. การนอนหลับไม่ปล่อยล็อควัตถุรอยกเลิกการล็อควัตถุ
C. สลีปหยุดเธรด แต่สถานะการตรวจสอบยังคงอยู่และจะกลับมาทำงานต่อโดยอัตโนมัติหลังจากสิ้นสุด
D. หลังจากรอให้ป้อนสระล็อครอ หลังจากออกวิธีการแจ้งเตือนสำหรับวัตถุนี้เท่านั้นการล็อควัตถุจะได้รับและเข้าสู่สถานะการทำงาน
คำตอบ: D
การนอนหลับเป็นวิธีการของคลาสเธรด (เธรด) ทำให้เธรดนี้หยุดทำงานชั่วคราวตามเวลาที่กำหนดและให้โอกาสในการดำเนินการกับเธรดอื่น ๆ แต่สถานะการตรวจสอบยังคงอยู่และจะกลับมาทำงานโดยอัตโนมัติหลังจากนั้น การโทรสลีปจะไม่ปล่อยล็อควัตถุ
รอเป็นวิธีการของคลาสวัตถุ การเรียกใช้วิธีการรอบนวัตถุนี้ทำให้เธรดยอมแพ้ล็อควัตถุและป้อนพูลล็อครอรอวัตถุนี้ หลังจากออกวิธีการแจ้งเตือน (หรือแจ้งเตือน) สำหรับวัตถุนี้เธรดนี้จะเข้าสู่พูลล็อควัตถุและเตรียมที่จะรับล็อควัตถุและเข้าสู่สถานะการทำงาน
10. วิธีการเรซูเม่ () มีหน้าที่รับผิดชอบในการกู้คืนการดำเนินการของเธรดที่ ()
A, เธรดที่หยุดโดยการเรียกวิธีการหยุด ()
B, เธรดที่หยุดโดยการโทรหาวิธีการนอนหลับ ()
C, เธรดที่หยุดโดยการโทรหาวิธีการรอ ()
D, เธรดที่หยุดโดยการเรียกวิธี Suspend ()
คำตอบ: D
Suspend สามารถระงับเธรดซึ่งหมายถึงการระงับเธรด มันใช้ทรัพยากร แต่ไม่ทำงาน ใช้เรซูเม่เพื่อกู้คืนเธรดที่ถูกระงับและปล่อยให้เธรดดำเนินการต่อเพื่อดำเนินการ