JavaRush /จาวาบล็อก /Random-TH /คำถาม Java ยุ่งยากที่มักถูกถามในการสัมภาษณ์

คำถาม Java ยุ่งยากที่มักถูกถามในการสัมภาษณ์

เผยแพร่ในกลุ่ม
หากคุณเคยเตรียมตัวสำหรับการสัมภาษณ์ตำแหน่งโปรแกรมเมอร์ Javaหรือทำการสอบใด ๆ (ไม่จำเป็นในการเขียนโปรแกรม) เพื่อรับใบรับรอง เป็นไปได้มากว่าคุณสังเกตเห็นแล้วว่าคำถามที่พวกเขาถามนั้นมีความเฉพาะเจาะจงมาก หลายๆ คำทำให้คุณคิดถึงสถาปัตยกรรมของภาษา บ้างก็ออกแบบมาเพื่อความรู้เชิงลึก นอกจากนี้ยังมีสิ่งที่เป็นเหมือนปริศนาหรือความแตกต่างที่ยากต่อการรู้สึกโดยไม่ต้องฝึกฝน ในบทความนี้ ผู้พัฒนาSaraans Singhมีคำถามเกี่ยวกับ Java หลายข้อ พร้อมคำตอบแน่นอน คำถาม Java ยุ่งยากที่มักถูกถามในการสัมภาษณ์ - 11. จะเกิดอะไรขึ้นหากคุณใส่คำสั่ง return หรือ System.exit() ไว้ใน try/catch block นี่เป็นคำถาม "ตามทัน" ยอดนิยมใน Java เคล็ดลับก็คือโปรแกรมเมอร์หลายคนเชื่อว่าบล็อกนั้นfinallyจะถูกดำเนินการไม่ว่าในกรณีใด คำถามนี้ท้าทายแนวคิดนี้โดยการวางคำสั่งใน returnบล็อกtry/catchหรือการเรียกจาก บล็อก try/catchคำสั่ง คำตอบสำหรับคำถามที่ยุ่งยากนี้:บล็อก จะถูกดำเนินการเมื่อมีการวางคำสั่งในบล็อกและจะไม่ถูกดำเนินการเมื่อถูกเรียกจาก บล็อก คำสั่ง 2. Java รองรับการสืบทอดหลายรายการหรือไม่ นี่เป็นคำถามที่ยุ่งยากมาก ผู้สัมภาษณ์มักจะพูดว่า: ถ้า C++ สามารถรองรับการสืบทอดหลายรายการได้โดยตรง ทำไม Java จะรองรับไม่ได้ คำตอบนั้นซับซ้อนกว่าที่คิดเล็กน้อย เนื่องจาก Java รองรับการสืบทอดหลายประเภท เนื่องจากอินเทอร์เฟซในนั้นสามารถขยายอินเทอร์เฟซอื่น ๆ ได้ แต่ภาษา Java ไม่รองรับการใช้งานหลายแบบ 3. ในกรณีที่เมธอดส่งข้อยกเว้นในคลาสพาเรนต์ จะสามารถแทนที่เมธอดที่ส่ง ได้หรือไม่ ? คำถามยุ่งยากอีกข้อหนึ่งที่เกี่ยวข้องกับแนวคิดของการโอเวอร์โหลดและการเอาชนะ คำตอบ:คุณสามารถส่งข้อยกเว้นคลาสพาเรนต์ได้อย่างปลอดภัยในเมธอดที่ถูกแทนที่แต่คุณไม่สามารถทำเช่นเดียวกันกับข้อยกเว้นที่เลือกประเภทได้ 4. จะรับประกันได้อย่างไรว่า เธรดสามารถเข้าถึงทรัพยากรโดยไม่มีการหยุดชะงัก? หากคุณเขียนโค้ดแบบมัลติเธรดไม่เก่ง คำถามนี้จะยุ่งยากสำหรับคุณมาก อาจเป็นเรื่องท้าทายแม้กระทั่งสำหรับโปรแกรมเมอร์ที่มีประสบการณ์ซึ่งไม่เคยต้องรับมือกับการหยุดชะงักและสภาพการแข่งขันเลย เคล็ดลับอยู่ที่การจัดลำดับ: สามารถป้องกันการหยุดชะงักได้โดยการเพิ่มทรัพยากรในลำดับย้อนกลับที่ได้รับมา 5. อะไรคือความแตกต่างระหว่างคลาสและในภาษา Java?System.exit ()finallyreturntry/catchtry/catchSystem.exit ()NullPointerExceptionRuntimeExceptionNullPointerException – RuntimeExceptionExceptionNNStringBufferStringBuilder คำถามคลาสสิกเกี่ยวกับภาษา Java ซึ่งนักพัฒนาบางคนถือว่ายุ่งยากและคนอื่นๆ มองว่าง่ายมาก คลาสStringBuilderถูกนำมาใช้ใน JDK 1.5 และความแตกต่างเพียงอย่างเดียวระหว่างพวกเขาคือวิธีการของคลาสตัวอย่างStringBufferเช่นlength()หรือได้รับการซิงโครไนซ์ ในขณะที่วิธีการที่สอดคล้องกันของคลาสไม่ได้ เนื่องจากความแตกต่างพื้นฐานนี้ การต่อสตริงจึงเร็วขึ้นด้วย ที่จริงแล้วไม่แนะนำให้ใช้ เนื่องจากใน 99% ของกรณีการใช้งาน จะมีการต่อสตริงบนเธรดเดียวกัน 6. นิพจน์ 1.0/0.0 ส่งคืนอะไร มันจะส่งข้อยกเว้นหรือทำให้เกิดข้อผิดพลาดในการคอมไพล์หรือไม่? คำถามยุ่งยากอีกข้อ เกี่ยว กับชั้นเรียน แม้ว่านักพัฒนา Java จะทราบถึงชนิดข้อมูลแบบธรรมดา double และคลาส แต่เมื่อดำเนินการจุดลอยตัว พวกเขาไม่ได้ให้ความสนใจเพียงพอกับ, และกฎที่ควบคุมการคำนวณทางคณิตศาสตร์ที่เกี่ยวข้องกัน คำตอบสำหรับคำถามนี้ง่ายมาก: ไม่มี ข้อยกเว้นจะถูกส่งกลับ ค่าจะถูกส่งกลับ 7. จะเกิดอะไรขึ้นหากคุณพยายามแทรกคีย์ออบเจ็กต์ลงในคีย์ออบเจ็กต์ที่มีอยู่แล้วในนั้น? คำถามที่ยุ่งยากนี้เป็นส่วนหนึ่งของคำถามที่พบบ่อยอีกคำถามหนึ่ง: คำถามเหล่านี้ทำงานอย่างไรใน Java เป็นหัวข้อยอดนิยมสำหรับคำถามที่สับสนและยุ่งยากเกี่ยวกับภาษาจาวา คำตอบก็คือถ้าคุณพยายามใส่คีย์เข้าไปใหม่มันจะแทนที่อันเก่าเพราะคลาสไม่อนุญาตให้มีคีย์ที่ซ้ำกัน และคีย์เดียวกันหมายถึงรหัสแฮชเดียวกัน ดังนั้นมันจะไปอยู่ที่ตำแหน่งเดียวกันในส่วนของแฮช ขึ้นอยู่กับวัสดุจาก Quoracapacity()append()StringBuilderStringBuilderStringBufferStringBufferDoubleDoubleDouble.INFINITYNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION