คำถามและคำตอบสัมภาษณ์ Java 130+ อันดับสูงสุด 2022
เผยแพร่แล้ว: 2021-01-01คำถามและคำตอบสัมภาษณ์ Java
ในบทความนี้ เราได้รวบรวมคำถามสัมภาษณ์ Java ที่พบบ่อยที่สุด คำถามเหล่านี้จะทำให้คุณคุ้นเคยกับประเภทของคำถามที่ผู้สัมภาษณ์อาจถามคุณระหว่างการสัมภาษณ์ Java Programming
ในฐานะ Fresher คุณเพิ่งเข้าร่วมการสัมภาษณ์หรือวางแผนที่จะเข้าร่วมในไม่ช้า ผู้หางานระดับเริ่มต้นที่ต้องการพัฒนาอาชีพของคุณในการเขียนโปรแกรมซอฟต์แวร์ คุณอาจกังวลเกี่ยวกับการสัมภาษณ์ที่จะ มา ถึง เราทุกคนต่างมีช่วงเวลาที่ตื่นตระหนกจนเราเผลอลืมไปว่ากระทู้คืออะไร เราจะทำให้มันง่ายขึ้นสำหรับคุณ ทั้งหมดที่คุณต้องทำคือหายใจเข้าลึก ๆ และตรวจสอบคำถามที่มีแนวโน้มว่าจะถูกถามมากที่สุด
คุณไม่สามารถหลีกเลี่ยงความตื่นตระหนกได้ แต่คุณสามารถเตรียมตัวให้พร้อมเพื่อที่เมื่อคุณก้าวเข้าไปในห้องสัมภาษณ์นั้น คุณมั่นใจและรู้ว่าคุณสามารถรับมือกับทุกสิ่งที่ผู้สัมภาษณ์อาจโยนให้คุณ
เรียนรู้ โปรแกรมวิศวกรรมซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
นี่คือรายชื่อคำถามสัมภาษณ์ Java พร้อมคำตอบ 24 ข้อที่รวบรวมไว้ (ล่าสุดปี 2022) ที่จะช่วยให้คุณตอกย้ำความมั่นใจนั้น และรับประกันว่าคุณจะผ่านการสัมภาษณ์ได้
1. JVM ประกอบด้วยอะไรบ้าง?
JVM ย่อมาจาก Java Virtual Machine จำเป็นสำหรับระบบใดๆ เพื่อรันโปรแกรม Java สถาปัตยกรรมเป็นหลักประกอบด้วย:
● Classloader: เป็นระบบย่อยของ JVM และหน้าที่หลักคือการโหลดไฟล์คลาสทุกครั้งที่รันโปรแกรม Java
● Heap: เป็นข้อมูลรันไทม์ที่ใช้สำหรับการจัดสรรออบเจ็กต์
● พื้นที่คลาส: ถือระดับคลาสของแต่ละไฟล์คลาส เช่น ตัวแปรสแตติก ข้อมูลเมตา และพูลการรันคงที่
● Stack: ใช้สำหรับเก็บตัวแปรชั่วคราว
● ลงทะเบียน: การลงทะเบียนมีที่อยู่ของคำสั่ง JVM ที่กำลังดำเนินการอยู่
● เอ็นจิ้นการดำเนินการ: EE ประกอบด้วยตัวประมวลผลเสมือน ล่ามที่ดำเนินการตามคำสั่งหลังจากอ่านไบต์โค้ด และคอมไพเลอร์ JIT ซึ่งช่วยปรับปรุงประสิทธิภาพเมื่ออัตราการดำเนินการช้า
● Java Native Interface: ทำหน้าที่เป็นสื่อกลางในการสื่อสารสำหรับการโต้ตอบกับแอปพลิเคชันอื่นที่พัฒนาในภาษา C, C++ เป็นต้น

2. การเขียนโปรแกรมเชิงวัตถุคืออะไร? Java เป็นภาษาเชิงวัตถุหรือไม่?
โดยพื้นฐานแล้ว การเขียนโปรแกรมเชิงวัตถุเป็นกระบวนทัศน์การเขียนโปรแกรมที่ทำงานบนแนวคิดของวัตถุ พูดง่ายๆ ก็คือ ออบเจ็กต์คือคอนเทนเนอร์ ซึ่งบรรจุข้อมูลในรูปแบบของฟิลด์และโค้ดในรูปแบบของโพรซีเดอร์ ตามตรรกะนั้น ภาษาเชิงวัตถุคือภาษาที่ทำงานบนวัตถุและขั้นตอน
เนื่องจาก Java ใช้ประเภทข้อมูลดั้งเดิม 8 ประเภท — boolean, byte, char, int, float, long, short, double — ซึ่งไม่ใช่อ็อบเจ็กต์ Java จึงไม่ถือว่าเป็นภาษาเชิงวัตถุ 100%
3. คุณเข้าใจอะไรจาก Aggregation ในบริบทของ Java?
การรวมเป็นรูปแบบของการเชื่อมโยงซึ่งแต่ละอ็อบเจ็กต์ถูกกำหนดวงจรชีวิตของตัวเอง แต่มีความเป็นเจ้าของในสิ่งนี้ และวัตถุลูกไม่สามารถเป็นของวัตถุหลักอื่น ๆ ในลักษณะใด ๆ
4. ตั้งชื่อซูเปอร์คลาสใน Java
ชวา.แลง. non-primitive ที่แตกต่างกันทั้งหมดได้รับการสืบทอดโดยตรงหรือโดยอ้อมจากคลาสนี้
5. อธิบายความแตกต่างระหว่าง 'finally' และ 'finalize' ใน Java?
เมื่อใช้กับบล็อก try-catch บล็อก 'สุดท้าย' จะใช้เพื่อให้แน่ใจว่าโค้ดนั้นถูกเรียกใช้งานเสมอ แม้ว่าการดำเนินการนั้นจะถูกบล็อกโดย try-catch
ในทางตรงกันข้าม finalize() เป็นวิธีการพิเศษในคลาสอ็อบเจ็กต์ โดยทั่วไปจะถูกแทนที่เพื่อปล่อยทรัพยากรระบบเมื่อมีการรวบรวมค่าขยะจากอ็อบเจ็กต์
6. อะไรคือชั้นในที่ไม่ระบุตัวตน? ต่างจากชั้นในอย่างไร?
คลาสภายในท้องถิ่นใด ๆ ที่ไม่มีชื่อเรียกว่าคลาสภายในที่ไม่ระบุชื่อ เนื่องจากไม่มีชื่อใด ๆ จึงเป็นไปไม่ได้ที่จะสร้างตัวสร้าง มันขยายคลาสหรือใช้อินเทอร์เฟซเสมอ และถูกกำหนดและสร้างอินสแตนซ์ในคำสั่งเดียว
คลาสที่ซ้อนกันแบบไม่คงที่เรียกว่าคลาสภายใน คลาสภายในเชื่อมโยงกับอ็อบเจ็กต์ของคลาส และสามารถเข้าถึงเมธอดและตัวแปรทั้งหมดของคลาสภายนอกได้
7. คลาสระบบคืออะไร?
เป็นคลาสหลักใน Java เนื่องจากคลาสนี้เป็นคลาสสุดท้าย เราจึงไม่สามารถแทนที่พฤติกรรมของคลาสผ่านการสืบทอดได้ เราไม่สามารถยกตัวอย่างคลาสนี้ได้เนื่องจากไม่มีตัวสร้างสาธารณะใดๆ ดังนั้นวิธีการทั้งหมดจึงเป็นแบบคงที่
8. จะสร้างเธรด daemon ใน Java ได้อย่างไร?
เราใช้คลาส setDaemon(จริง) เพื่อสร้างเธรดนี้ เราเรียกวิธีนี้ก่อนเมธอด start() มิฉะนั้น เราจะได้รับ IllegalThreadStateException
9. Java รองรับตัวแปรส่วนกลางหรือไม่ ทำไม / ทำไมไม่?
ไม่ Java ไม่รองรับตัวแปรส่วนกลาง สาเหตุหลักมาจากสาเหตุสองประการ:
● พวกมันสร้างการชนกันในเนมสเปซ
● ทำลายความโปร่งใสในการอ้างอิง
10. วัตถุ RMI พัฒนาขึ้นอย่างไร?
ขั้นตอนต่อไปนี้สามารถนำมาใช้เพื่อพัฒนาวัตถุ RMI:
● กำหนดอินเทอร์เฟซ
● ใช้อินเทอร์เฟซ
● รวบรวมอินเทอร์เฟซและการใช้งานด้วยคอมไพเลอร์จาวา
● คอมไพล์การใช้งานเซิร์ฟเวอร์ด้วยคอมไพเลอร์ RMI
● เรียกใช้รีจิสทรี RMI
● เรียกใช้แอปพลิเคชัน
11. อธิบายความแตกต่างระหว่างการแบ่งเวลาและการจัดกำหนดการแบบยึดเอาเสียก่อน
ในกรณีของการแบ่งเวลา งานจะดำเนินการตามกรอบเวลาที่กำหนด หรือที่เรียกว่าการแบ่งส่วน หลังจากนั้น จะเข้าสู่คิวพร้อม — กลุ่มของงานที่ 'พร้อม' จากนั้นตัวจัดกำหนดการจะเลือกงานถัดไปที่จะดำเนินการตามลำดับความสำคัญและปัจจัยอื่นๆ
ในขณะที่อยู่ภายใต้การจัดกำหนดการยึดหน่วง งานที่มีลำดับความสำคัญสูงสุดจะถูกดำเนินการจนกว่าจะเข้าสู่สถานะที่ไม่ทำงานหรือคำเตือน หรือหากมีงานที่มีลำดับความสำคัญสูงกว่าอื่นเข้ามาด้วย
12. เกลียวเก็บขยะเป็นเกลียวประเภทใด?
มันเป็นเธรดภูต
13. วงจรชีวิตของเธรดใน Java คืออะไร?
เธรดใดๆ ใน Java ต้องผ่านขั้นตอนต่อไปนี้ในวงจรชีวิต:
● ใหม่
● วิ่งได้
● วิ่ง
● ไม่สามารถรันได้ (ถูกบล็อก)
● สิ้นสุด
14. ระบุวิธีการที่ใช้ระหว่างกระบวนการดีซีเรียลไลเซชันและการออกซีเรียลไลซ์เซชัน
ObjectInputStream.readObject
อ่านไฟล์และยกเลิกการซีเรียลไลซ์วัตถุ
ObjectOuputStream.writeObject
ทำให้วัตถุเป็นอันดับและเขียนวัตถุต่อเนื่องไปยังไฟล์
15. ตัวแปรผันผวนคืออะไรและมีจุดประสงค์อะไร?
ตัวแปรผันผวนเป็นตัวแปรที่อ่านจากหน่วยความจำหลักเสมอ ไม่ใช่จากหน่วยความจำแคชของเธรด โดยทั่วไปจะใช้ในระหว่างการซิงโครไนซ์
16. คลาส wrapper ใน Java คืออะไร?
ชนิดข้อมูลดั้งเดิมทั้งหมดใน Java มีคลาสที่เกี่ยวข้องกัน ซึ่งเรียกว่าคลาส wrapper พวกมันเป็นที่รู้จักในชื่อคลาส wrapper เพราะพวกเขา 'ตัด' ชนิดข้อมูลดั้งเดิมลงในวัตถุสำหรับคลาส กล่าวโดยย่อ พวกเขาแปลง Java primitives เป็นอ็อบเจ็กต์
17. เราจะสร้างคลาส singleton ได้อย่างไร?
โดยทำให้คอนสตรัคเตอร์เป็นส่วนตัว
18. วิธีการที่สำคัญของ Exception Class ใน Java คืออะไร?
● สตริง getMessage()
● สตริง toString()
● โมฆะ printStackTrace()
● ซิงโครไนซ์ Throwable getCause()
● StackTraceElement สาธารณะ[] getStackTrace()
19. เราจะสร้างเธรดใน Java ได้อย่างไร?
เราสามารถทำตามสองวิธีในการสร้างเธรดใน Java:
● โดยการขยายคลาสเธรด
ข้อเสียของวิธีนี้คือเราไม่สามารถขยายคลาสอื่นได้เนื่องจากคลาสเธรดได้รับการขยายแล้ว
● โดยการใช้อินเทอร์เฟซ Runnable
20. อธิบายความแตกต่างระหว่างเมธอด get() และ load()
เมธอด get() และ load() มีความแตกต่างดังต่อไปนี้:
● get() คืนค่า null หากไม่พบวัตถุในขณะที่ load() ส่งข้อยกเว้น ObjectNotFound
● get() คืนค่าอ็อบเจ็กต์จริงเสมอ ในขณะที่ load() ส่งคืนอ็อบเจ็กต์พร็อกซี
● เมธอด get() จะโจมตีฐานข้อมูลเสมอ ในขณะที่ load() จะไม่ทำงาน
● ควรใช้ get() หากคุณไม่แน่ใจเกี่ยวกับการมีอยู่ของอินสแตนซ์ ในขณะที่ load() ควรใช้หากคุณแน่ใจว่ามีอินสแตนซ์อยู่
21. ค่าเริ่มต้นของตัวแปรท้องถิ่นคืออะไร?
พวกเขาไม่ได้เริ่มต้นเป็นค่าเริ่มต้นใดๆ ไม่มีพื้นฐานหรือการอ้างอิงวัตถุ
22. Singleton ใน Java คืออะไร?
เป็นคลาสที่มีอินสแตนซ์เดียวในแอปพลิเคชัน Java ทั้งหมด สำหรับตัวอย่าง java.lang.Runtime คือคลาส Singleton วัตถุประสงค์หลักของ Singleton คือการควบคุมการสร้างอ็อบเจ็กต์โดยการรักษาคอนสตรัคเตอร์ส่วนตัว
23. วิธีคงที่คืออะไร?
สามารถเรียกใช้เมธอดแบบสแตติกได้โดยไม่ต้องสร้างอินสแตนซ์ของคลาส วิธีสแตติกเป็นของคลาสมากกว่าวัตถุของคลาส วิธีการ แบบคงที่ สามารถเข้าถึงสมาชิกข้อมูลแบบคงที่และสามารถเปลี่ยนค่าของมันได้
24. ข้อยกเว้นคืออะไร?
ข้อยกเว้น เงื่อนไขที่ไม่ปกติระหว่างโปรแกรม อาจเป็นเพราะตรรกะที่ไม่ถูกต้องซึ่งเขียนโดยอินพุตของผู้ใช้หรือโปรแกรมเมอร์ที่ไม่ถูกต้อง
25. ในแง่ง่ายๆ คุณจะนิยาม Java ว่าอย่างไร?
Java เป็นพอร์ทัลเชิงวัตถุระดับสูงที่ไม่ขึ้นกับแพลตฟอร์ม และให้การสนับสนุนที่มีประสิทธิภาพสูงสำหรับการสร้างโปรแกรม แอปพลิเคชัน และเว็บไซต์ที่ซับซ้อน Java เป็นภาษาการเขียนโปรแกรมเอนกประสงค์ที่ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีฟังก์ชันการทำงานที่หลากหลายด้วยสภาพแวดล้อมการเขียนเมื่อทำงานได้ทุกที่ (WORA) James Arthur Gosling นักวิทยาศาสตร์คอมพิวเตอร์จากแคนาดา พัฒนา Java ในปี 1991 และเป็นที่รู้จักอย่างแพร่หลายในชื่อ 'Dr Java' วันนี้ Java ได้กลายเป็นรากฐานที่สำคัญสำหรับอุตสาหกรรมไอทีสมัยใหม่
26 . Java String Pool คืออะไร?
String Pool ใน Java เป็นสถานที่ที่แตกต่างกันซึ่งมีพูลของสตริงที่จัดเก็บผ่าน Java Heap Memory ในที่นี้ String แสดงถึงคลาสพิเศษใน Java และสามารถสร้างอ็อบเจ็กต์สตริงได้โดยใช้ตัวดำเนินการใหม่หรือใช้ค่าในเครื่องหมายคำพูดคู่
String นั้นไม่เปลี่ยนรูปใน Java ดังนั้นจึงทำให้มีความเป็นไปได้ของ String pool จากนั้นจึงนำไปใช้เพิ่มเติมผ่านแนวคิดการฝึกงานของ String
27. คลาสคอลเลกชันใน Java คืออะไร? ลงรายการวิธีการและอินเทอร์เฟซหรือไม่
Java Collection Classes เป็นคลาสพิเศษซึ่งใช้เฉพาะกับเมธอดสแตติกที่ทำงานเฉพาะกับคอลเลกชั่นส่งคืน Java Collection โดยค่าเริ่มต้นจะสืบทอดคลาสและมีคุณสมบัติที่จำเป็นสองประการดังนี้:
- พวกเขาสนับสนุนและดำเนินการด้วยอัลกอริธึม polymorphic ที่ส่งคืนคอลเล็กชันใหม่สำหรับทุกคอลเล็กชันเฉพาะ
- เมธอดใน Java Collection จะส่ง NullPointerException ในกรณีที่คลาสอ็อบเจ็กต์หรือคอลเล็กชันมีค่า Null
สิ่งเหล่านี้ถูกแสดงและประกาศเป็น Java.util.Collectionclass
มีเมธอด ตัวดัดแปลง และประเภทของคลาส Java Collection มากกว่า 60 รายการ นี่คือรายการวิธีการที่สำคัญที่สุดใน Java Collection Class:
ส. | ตัวแก้ไข เมธอด และประเภท | คำอธิบาย |
1. | สแตติก <T> บูลีน addAll() | วิธีนี้ช่วยให้เพิ่มองค์ประกอบเฉพาะลงในคอลเล็กชันเฉพาะได้ |
2. | คงที่ <T> คิว <T> asLifoQueue() | วิธีนี้อนุญาตให้แสดงรายการของคอลเลกชันเป็นแบบเข้าก่อนออกก่อน (LIFO) ในมุมมอง |
3. | ส แตติก <T> int binarySearch() | วิธีนี้อนุญาตให้ค้นหาวัตถุเฉพาะแล้วส่งคืนในรายการที่เรียงลำดับ |
4. | สแตติก <E> คอลเลกชัน<E> | เมธอดนี้ส่งคืนมุมมองไดนามิกจากคอลเล็กชันเฉพาะใดๆ |
5. | คงที่ <E> รายการ <E> | เมธอดนี้ส่งคืนมุมมองไดนามิกไดนามิกจากรายการเฉพาะ |
นี่คือตัวอย่างบางส่วนสำหรับ Java Collection:
Java Collection นาที () ตัวอย่าง:
1 2 3 4 5 6 7 8 9 10 11 12 | นำเข้า java.util.* ; คอลเลคชัน คลาส สาธารณะ ตัวอย่าง { โมฆะ คงที่ สาธารณะ หลัก ( สตริง a []){ รายการ < จำนวนเต็ม > รายการ = ใหม่ ArrayList < จำนวนเต็ม >(); รายการ . เพิ่ม ( 90 ); รายการ . เพิ่ม ( 80 ); รายการ . เพิ่ม ( 76 ); รายการ . เพิ่ม ( 58 ); รายการ . เพิ่ม ( 12 ); ระบบ . ออก _ println ( "องค์ประกอบมูลค่าขั้นต่ำในคอลเลกชัน: " + คอลเลกชัน . นาที ( รายการ )); } } |
ผลลัพธ์จะเป็น:
องค์ประกอบค่าต่ำสุดในคอลเลกชัน: 12 |
Java Collection max() ตัวอย่าง:
1 2 3 4 5 6 7 8 9 10 11 12 | นำเข้า java.util.* ; คอลเลคชัน คลาส สาธารณะ ตัวอย่าง { โมฆะ คงที่ สาธารณะ หลัก ( สตริง a []){ รายการ < จำนวนเต็ม > รายการ = ใหม่ ArrayList < จำนวนเต็ม >(); รายการ . เพิ่ม ( 90 ); รายการ . เพิ่ม ( 80 ); รายการ . เพิ่ม ( 76 ); รายการ . เพิ่ม ( 58 ); รายการ . เพิ่ม ( 12 ); ระบบ . ออก _ println ( "องค์ประกอบค่าสูงสุดในคอลเลกชัน: " + คอลเลกชัน . สูงสุด ( รายการ )); } } |
ผลลัพธ์จะเป็น:
องค์ประกอบค่าสูงสุดในคอลเลกชัน: 90 |
28 . เซิร์ฟเล็ตคืออะไร?
Servlets คือส่วนประกอบซอฟต์แวร์ Java ที่เพิ่มความสามารถให้กับเซิร์ฟเวอร์ Java ผ่านทางเทคโนโลยี, API, อินเทอร์เฟซ, คลาส หรือการปรับใช้เว็บใดๆ Servlets ทำงานโดยเฉพาะบนเซิร์ฟเวอร์เว็บแอปพลิเคชันที่ขับเคลื่อนด้วย Java และสามารถจัดการคำขอที่ซับซ้อนจากเว็บเซิร์ฟเวอร์ได้ เซิร์ฟเล็ตเพิ่มประโยชน์ของประสิทธิภาพที่สูงขึ้น ความทนทาน ความสามารถในการปรับขนาด การพกพา และความปลอดภัยสำหรับแอปพลิเคชัน Java
กระบวนการหรือการดำเนินการของ Servlet:
- สิ่งนี้เริ่มต้นเมื่อผู้ใช้ส่งคำขอจากเว็บเบราว์เซอร์
- เว็บเซิร์ฟเวอร์ได้รับและส่งคำขอนี้ไปยังเซิร์ฟเล็ตเฉพาะ
- จากนั้น Servlet จะประมวลผลคำขอนี้เพื่อรับการตอบสนองเฉพาะกับเอาต์พุต
- จากนั้น Servlet จะส่งการตอบสนองนี้กลับไปยังเว็บเซิร์ฟเวอร์
- จากนั้นเว็บเซิร์ฟเวอร์จะได้รับข้อมูลที่เบราว์เซอร์แสดงบนหน้าจอ
Java Servlets มาพร้อมกับหลายคลาสและอินเทอร์เฟซ เช่น GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse เป็นต้น
29. Request Dispatcher คืออะไร?
ใน Servlet RequestDispatcher ทำหน้าที่เป็นอินเทอร์เฟซสำหรับกำหนดอ็อบเจ็กต์เพื่อรับคำขอจากลูกค้าที่ด้านหนึ่งแล้วส่งไปยังทรัพยากรเฉพาะในอีกด้านหนึ่ง (ซึ่งอาจเป็นเซิร์ฟเล็ต, HTML, JSP) RequestDispatcher นี้มีสองวิธีโดยทั่วไป:
ถือเป็นโมฆะไปข้างหน้า (คำขอ ServletRequest การตอบสนอง ServletResponse) | ที่อนุญาตและส่งต่อคำขอจากเซิร์ฟเล็ตใด ๆ ไปยังทรัพยากรเซิร์ฟเวอร์ในรูปแบบของเซิร์ฟเล็ต ไฟล์ HTML หรือไฟล์ JSP |
โมฆะรวม (คำขอ ServletRequest การตอบสนอง ServletResponse) | ที่มีเนื้อหาสำหรับทรัพยากรเฉพาะในรูปแบบของการตอบกลับ เช่น ไฟล์ HTML หน้า JSP หรือเซิร์ฟเล็ต |
30. วงจรชีวิตของเซิร์ฟเล็ตคืออะไร?
Servlet เป็นส่วนประกอบซอฟต์แวร์ Java ที่มีฟังก์ชันหลักในการรับคำขอก่อน จากนั้นจึงประมวลผลคำขอ และตอบกลับผู้ใช้ในหน้า HTML ที่นี่ Servlet Container จัดการวงจรชีวิตของเซิร์ฟเล็ต นี่คือขั้นตอนหลัก:
- กำลังโหลด Servlet
- จากนั้นเริ่มต้น Servlet
- การจัดการคำขอ (วิธีการเรียกใช้บริการ)
- แล้วทำลายเซิร์ฟเล็ต
นี่คือไดอะแกรมด่วนที่แสดงวงจรชีวิตของ Java Servlet:
แหล่งที่มา
- กำลังโหลด Servlet
วงจรชีวิตสำหรับ Servlet เริ่มต้นด้วยขั้นตอนการโหลดในคอนเทนเนอร์ Servlet Servlet โหลดได้สองวิธีด้วย:
- การตั้งค่าเซิร์ฟเล็ตเป็นค่าอินทิกรัลบวกหรือศูนย์
- ประการที่สอง กระบวนการนี้อาจเกิดความล่าช้า เนื่องจากคอนเทนเนอร์เลือกเซิร์ฟเล็ตที่เหมาะสมเพื่อจัดการกับคำขอ
ตอนนี้คอนเทนเนอร์โหลดคลาส Servlet ก่อนแล้วจึงสร้างอินสแตนซ์ผ่านคอนสตรัคเตอร์ที่ไม่มีอาร์กิวเมนต์
- กำลังเริ่มต้น Servlet
ขั้นตอนต่อไปคือการใช้วิธี Servlet.init(ServletConfig) เพื่อเริ่มต้น Servlet เช่นแหล่งข้อมูล JDBC
- การจัดการคำขอ (Invoking Service Method)
ที่นี่ Servlet รับคำขอของไคลเอ็นต์และดำเนินการที่จำเป็นโดยใช้วิธี service()
- ทำลายเซิร์ฟเล็ต
ตอนนี้คอนเทนเนอร์ Servlet ทำลายเซิร์ฟเล็ตโดยดำเนินการและทำงานเฉพาะให้เสร็จสิ้น และเรียกเมธอด destroy() ในอินสแตนซ์
31. วิธีการจัดการเซสชันในเซิร์ฟเล็ตต่างกันอย่างไร
เซสชันติดตามกิจกรรมของผู้ใช้หลังจากลงชื่อเข้าใช้ไซต์ การจัดการเซสชันมีกลไกในการจัดหาข้อมูลสำหรับผู้ใช้อิสระทุกคน ต่อไปนี้คือสี่วิธีที่แตกต่างกันสำหรับการจัดการเซสชันในเซิร์ฟเล็ต:
- HttpSession
- คุ้กกี้
- การเขียน URL ใหม่
- HTML ฟิลด์ที่ซ่อนอยู่
32. ไดรเวอร์ JDBC คืออะไร?
การเชื่อมต่อฐานข้อมูล Java (JDBC) ที่นี่ทำหน้าที่เป็นส่วนประกอบซอฟต์แวร์ที่ช่วยให้แอปพลิเคชัน Java สามารถสื่อสารกับฐานข้อมูลได้
ไดรเวอร์ JDBC มีสี่ประเภทต่อไปนี้ในสภาพแวดล้อม:
- ไดรเวอร์บริดจ์ JDBC-ODBC
- ไดรเวอร์ Network Protocol (ไดรเวอร์มิดเดิลแวร์)
- ไดรเวอร์ฐานข้อมูลโปรโตคอล (ไดรเวอร์ Java ทั้งหมด)
- ไดรเวอร์ Native-API
33. อินเทอร์เฟซการเชื่อมต่อ JDBC คืออะไร?
การเชื่อมต่อกำหนดเซสชันระหว่างฐานข้อมูลและแอปพลิเคชัน Java อินเตอร์เฟสการเชื่อมต่อ JDBC เป็นส่วนหนึ่งของแพ็คเกจ java.sql เท่านั้น และจัดเตรียมข้อมูลเซสชันสำหรับฐานข้อมูลเฉพาะ สิ่งเหล่านี้แสดงถึงคำสั่ง SQL หลายรายการสำหรับการดำเนินการและผลลัพธ์ในบริบทของอินเทอร์เฟซการเชื่อมต่อเดียว นี่คือวิธีการหลักสำหรับอินเทอร์เฟซการเชื่อมต่อ:
- createStatement() : เพื่อสร้างอ็อบเจ็กต์คำสั่งเฉพาะสำหรับเพิ่มคำสั่ง SQL ลงในฐานข้อมูลเฉพาะ
- setAutoCommit(สถานะบูลีน) : เพื่อกำหนดการเชื่อมต่อของโหมดการคอมมิตกับคำสั่งเท็จหรือจริง
- commit() : นั่นทำให้การแก้ไขทั้งหมดจากการคอมมิทล่าสุดและเผยแพร่ฐานข้อมูลใด ๆ ที่จัดขึ้นโดยอ็อบเจ็กต์ Connection ที่เฉพาะเจาะจงในปัจจุบัน
- rollback() : ที่เลิกทำหรือย้อนกลับการเปลี่ยนแปลงทั้งหมดที่ทำในการทำธุรกรรมในอดีตหรือปัจจุบันและยังเผยแพร่ฐานข้อมูลที่จัดขึ้นในปัจจุบันในวัตถุการเชื่อมต่อ
- close() : ที่ยุติหรือปิดการเชื่อมต่อปัจจุบันและยังปล่อยหรือล้างทรัพยากร JDBC ทันที
34. ตั้งชื่อโมดูลต่างๆ ของกรอบงาน Spring หรือไม่
มีหลายโมดูลในกรอบงาน Spring:
- โมดูลเว็บ
- โมดูลสตรัท
- โมดูลเซิร์ฟเล็ต
- โมดูลคอนเทนเนอร์หลัก
- การเขียนโปรแกรมเชิงมุมมอง (AOP)
- โมดูลบริบทแอปพลิเคชัน
- โมดูลเฟรมเวิร์ก MVC
- นามธรรม JDBC และโมดูล DAO
- โมดูล OXM
- โมดูลภาษานิพจน์
- โมดูลธุรกรรม
- โมดูล Java Messaging Service (JMS)
- โมดูลการรวม ORM
โมดูลเหล่านี้มีอยู่ในกลุ่ม:
แหล่งที่มา
35. อธิบาย Bean in Spring และระบุขอบเขตต่างๆ ของ Spring bean
ถั่วเป็นหนึ่งในแนวคิดพื้นฐานของกรอบงาน Spring ในการจัดการโครงสร้างอย่างมีประสิทธิภาพ ในคำจำกัดความง่ายๆ Spring Bean แสดงถึงคอนเทนเนอร์ IoC ที่จัดการอ็อบเจ็กต์ที่สร้างแกนหลักของแอปพลิเคชัน
ขอบเขตของ Spring Bean:
ขอบเขตมีบทบาทสำคัญในการใช้ Spring bean อย่างมีประสิทธิภาพในแอปพลิเคชัน ขอบเขตช่วยให้เราเข้าใจวงจรชีวิตของ Spring Bean และมีประเภทดังต่อไป นี้
ส. | ขอบเขตและคำอธิบาย |
1. | Singleton – โดยค่าเริ่มต้น ขอบเขต Spring bean มีขอบเขต singleton ที่แสดงเพียงอินสแตนซ์เดียวสำหรับคอนเทนเนอร์ Spring IOC ออบเจ็กต์เดียวกันนี้จะถูกแชร์สำหรับแต่ละคำขอ |
2. | ต้นแบบ – ในกรณีนี้ อินสแตนซ์ใหม่จะถูกเรียกและสร้างสำหรับทุกคำจำกัดความของ bean ทุกครั้งที่มีการร้องขอ bean เฉพาะ |
3. | คำขอ – ในขอบเขตนี้จะมีการเรียกและสร้าง bean เดียวสำหรับคำขอ HTTP ทุกรายการสำหรับ bean เฉพาะนั้น |
4. | เซสชัน – ขอบเขตนี้กำหนดการใช้ single bean สำหรับวงจรชีวิตในเซสชัน HTTP ส่วนกลางเฉพาะ |
5. | เซสชันสากล – ขอบเขตนี้อนุญาตให้ใช้ bean เดียวสำหรับวงจรชีวิตเฉพาะสำหรับการนำไปใช้ในเซสชัน HTTP ทั่วโลก |
หมายเหตุ: ขอบเขตสามรายการสุดท้ายสามารถใช้ได้ใน Spring ApplicationContext ของ Web-aware เท่านั้น
ต้องอ่าน: ทำไม Java ถึงได้รับความนิยมจาก Developers
36. อธิบายบทบาทของ DispatcherServlet และ ContextLoaderListener
ขณะกำหนดค่าการกำหนดค่า Spring MVC ที่ใช้ XML ในไฟล์ web.xml การประกาศ DispatcherServlet และ ContextLoaderListener สองครั้งมีบทบาทสำคัญในการเสริมวัตถุประสงค์ของกรอบงาน
- ผู้จัดส่งเซอร์ฟเล็ต –
DispatcherServlet มีจุดประสงค์หลักในการจัดการคำขอเว็บขาเข้าสำหรับรูปแบบ URI ที่กำหนดค่าที่ตรงกันเฉพาะที่กำหนดค่าไว้ DispatcherServlet ทำหน้าที่เป็นตัวควบคุมด้านหน้าสำหรับแกนหลักของแอปพลิเคชัน Spring MVC และโหลดไฟล์การกำหนดค่าโดยเฉพาะ จากนั้นจึงเริ่มต้น bean ที่ถูกต้องที่มีอยู่ในไฟล์นั้น และเมื่อเปิดใช้งานคำอธิบายประกอบ ก็จะสามารถตรวจสอบและสแกนการกำหนดค่าและแพ็คเกจสำหรับคำอธิบายประกอบทั้งหมดที่มี @Repository, @Component, @Service หรือ @Controller
- ContextLoaderListener –
ContextLoaderListener ที่นี่ทำหน้าที่เป็นตัวฟังคำขอสำหรับการเริ่มต้นและปิดรูท WebApplicationContext ดังนั้นจึงสร้างและแบ่งปันบริบทแอปพลิเคชันรูทกับบริบทย่อยโดยบริบท DispatcherServlet แอปพลิเคชันสามารถใช้รายการเดียวสำหรับ ContextLoaderListener ใน web.xml
37. อธิบายสถาปัตยกรรมไฮเบอร์เนต
ไฮเบอร์เนตกำหนดสถาปัตยกรรมแบบเลเยอร์ที่ช่วยให้ผู้ใช้สามารถดำเนินการและดำเนินการได้โดยไม่ต้องรู้จัก API พื้นฐาน กล่าวคือ ไฮเบอร์เนตทำหน้าที่เป็นกรอบงานในการสร้างและพัฒนาตรรกะการคงอยู่โดยอิสระจากซอฟต์แวร์ฐานข้อมูล
สถาปัตยกรรมไฮเบอร์เนตมีสี่ชั้นหลักด้วย:
- เลเยอร์แอปพลิเคชัน Java
- ชั้นฐานข้อมูล
- แบ็กเอนด์ API เลเยอร์
- ไฮเบอร์เนตเฟรมเวิร์กเลเยอร์
องค์ประกอบของสถาปัตยกรรมไฮเบอร์เนต
มีหลายแง่มุมและขอบเขตสำหรับสถาปัตยกรรมไฮเบอร์เนต หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ คุณต้องรู้เกี่ยวกับองค์ประกอบของสถาปัตยกรรมไฮเบอร์เนต
- SessionFactory: Sessionfactory จัดเตรียมวิธีการสร้างวัตถุเซสชันที่มีอยู่ในแพ็คเกจ org.hiberate เท่านั้น เป็นเธรดที่ปลอดภัยโดยธรรมชาติ ไม่เปลี่ยนรูป และเก็บและรักษาแคชระดับที่สองของข้อมูล
- เซสชัน: อ็อบเจ็กต์เซสชันจัดเตรียมอินเทอร์เฟซสำหรับซอฟต์แวร์การเชื่อมต่อและฐานข้อมูลผ่านเฟรมเวิร์กไฮเบอร์เนต
- ธุรกรรม: อินเทอร์เฟซที่ช่วยในการจัดการธุรกรรมและอนุญาตให้เปลี่ยนแปลงฐานข้อมูล
- ConnectiveProvider: ส่วนหนึ่งของการเชื่อมต่อ JDBC จะแยกแอปพลิเคชันหลักออกจาก DataSource หรือ DriverManager
- TransactionFactory: หมายถึงโรงงานของธุรกรรม
38. ลำดับชั้นข้อยกเว้นใน Java คืออะไร?
ข้อยกเว้นกำหนดเหตุการณ์ที่ไม่ต้องการซึ่งแสดงขึ้นระหว่างการทำงานหรือการทำงานของโปรแกรม ข้อยกเว้นขัดขวางขั้นตอนปกติของโปรแกรม
ลำดับชั้นข้อยกเว้นเป็นส่วนหนึ่งของคลาส java.lang.Exception และอยู่ภายใต้คลาส Throwable หลักเท่านั้น ' ข้อผิดพลาด ' คลาสย่อยอื่น แสดงถึงคลาส Throwable ใน Java แม้ว่าข้อผิดพลาดจะเป็นเงื่อนไขที่ไม่ปกติในกรณีที่เกิดความล้มเหลว แต่ก็ยังไม่ได้รับการจัดการหรือล้างด้วยโปรแกรม Java
มีคลาสย่อยหลักสองคลาสสำหรับลำดับชั้นพิเศษใน Java ที่มีคลาส RuntimeException และ IOCException Class
39. การซิงโครไนซ์คืออะไร?
การซิงโครไนซ์ใน Java กำหนดความสามารถในการจัดการและควบคุมการเข้าถึงหลายเธรดไปยังทรัพยากรเฉพาะ เพื่อให้หนึ่งเธรดสามารถเข้าถึงทรัพยากรเฉพาะได้ในขณะนี้ ที่นี่ Java อนุญาตให้มีการพัฒนาเธรดแล้วซิงโครไนซ์งานผ่านบล็อกการซิงโครไนซ์
บล็อกที่ซิงโครไนซ์เหล่านี้อนุญาตให้เรียกใช้เธรดเดียวเท่านั้นในช่วงเวลาหนึ่ง และบล็อกเธรดอื่น ๆ จนกว่าเธรดปัจจุบันจะออกจากบล็อก แนวคิดของมอนิเตอร์ที่นี่มีความสำคัญอย่างยิ่งในการนำการซิงโครไนซ์ไปใช้ใน Java เมื่อเธรดเข้าสู่ระยะล็อก จะเรียกว่าเข้าสู่จอภาพ ดังนั้น การล็อกเธรดอื่นๆ ทั้งหมด เว้นแต่ว่าเธรดแรกจะออกจากมอนิเตอร์
40. อะไรคือคุณสมบัติที่ทำให้ Java เป็นหนึ่งในภาษาโปรแกรมที่ดีที่สุด?
นี่คือคุณสมบัติเด่นที่ทำให้ Java สำหรับการเริ่มต้นช่วงการเรียนรู้ของคุณในโลกการเขียนโปรแกรม:
- ความ เรียบง่าย: Java ค่อนข้างง่ายในการเรียนรู้และเขียน ไวยากรณ์ Java อยู่ใน C ++ ที่ช่วยให้นักพัฒนาสามารถเขียนโปรแกรมได้อย่างราบรื่น
- OOPS: Java ขึ้นอยู่กับระบบการเขียนโปรแกรมเชิงวัตถุ (OOPS) ดังนั้นจึงเพิ่มขีดความสามารถในการสร้างโค้ดในวัตถุหลายประเภทด้วยข้อมูลและพฤติกรรมที่แตกต่างกัน
- ไดนามิก: Java เป็นภาษาไดนามิกที่สมบูรณ์ซึ่งรองรับการโหลดคลาสไดนามิกทุกที่ทุกเวลาที่ต้องการ และยังรองรับภาษาโค้ดเนทีฟอย่าง C, C++ เป็นต้น
- แพลตฟอร์มอิสระ: Java ยังสนับสนุนภาษาการเขียนโปรแกรมพิเศษและไม่ขึ้นกับแพลตฟอร์ม ซึ่งช่วยให้นักพัฒนาสามารถรันโปรแกรมของตนบนแพลตฟอร์มของตนเท่านั้น
- ความสามารถในการ พกพา: Java สามารถเข้าถึงวิธีเขียนได้ทุกที่ที่ช่วยให้โค้ดทำงานบนแพลตฟอร์มใดก็ได้
- ความปลอดภัย: ตามแนวคิดของ ByteCode การจัดการข้อยกเว้น และการใช้ตัวชี้ที่ชัดเจนใดๆ ทำให้ Java เป็นสภาพแวดล้อมที่มีความปลอดภัยสูง
Java ยังเป็นสถาปนิกที่เป็นกลางโดยไม่ต้องพึ่งพาสถาปัตยกรรมใดๆ การจัดการหน่วยความจำที่แข็งแกร่งและการรวบรวมขยะอัตโนมัติช่วยเพิ่มความทนทานให้กับสภาพแวดล้อม
41. อะไรทำให้ Java มีประสิทธิภาพสูง?
การใช้คอมไพเลอร์ Just in Time (JIT) ในสถาปัตยกรรมทำให้ Java เป็นหนึ่งในภาษาการเขียนโปรแกรมที่มีประสิทธิภาพสูง เนื่องจากจะแปลงคำสั่งเป็นไบต์โค้ด
42. ตั้งชื่อ Java IDE ยอดนิยม
มี IDE มากมายในอุตสาหกรรมสำหรับ Java ต่อไปนี้คือ 5 อันดับแรกของ Java IDE ที่คุณสามารถใช้เพื่อเริ่มเรียนรู้ภาษาการเขียนโปรแกรมนี้ในวันนี้:
- คราส
- เน็ตบีนส์
- IntelliJ
- JDeveloper
- MyEclipse
43. กำหนดความแตกต่างที่สำคัญระหว่าง Java และแพลตฟอร์มอื่น ๆ ?
ความแตกต่างหลักสองประการที่ทำให้ Java โดดเด่นจากแพลตฟอร์มอื่นๆ ได้แก่:
- Java เป็นแพลตฟอร์มที่ใช้ซอฟต์แวร์เป็นหลัก ในขณะที่อื่นๆ อาจเป็นซอฟต์แวร์หรือแพลตฟอร์มที่ใช้ฮาร์ดแวร์ก็ได้
- Java รันหรือรันบนแพลตฟอร์มฮาร์ดแวร์ใด ๆ ในขณะที่โปรแกรมอื่นต้องการข้อกำหนดฮาร์ดแวร์เฉพาะ
44. อะไรทำให้ Java มีลักษณะ 'เขียนครั้งเดียวและทำงานได้ทุกที่' (WORA)
คำตอบหนึ่งคำคือ Bytecode คอมไพเลอร์ Java แปลงโปรแกรม Java ทั้งหมดเป็น Byte Code เฉพาะซึ่งทำหน้าที่เป็นภาษากลางระหว่างรหัสเครื่องและซอร์สโค้ด ByteCode สามารถทำงานบนคอมพิวเตอร์เครื่องใดก็ได้และไม่มีการพึ่งพาแพลตฟอร์ม
45. อธิบายประเภทต่าง ๆ ของตัวระบุการเข้าถึงที่ใช้ใน Java
ในภาษาการเขียนโปรแกรม Java ตัวระบุการเข้าถึงจะแสดงขอบเขตที่แน่นอนสำหรับคลาส ตัวแปร หรือเมธอด มีสี่ตัวระบุการเข้าถึงหลัก:
- ตัวแปร วิธีการ หรือคลาสที่กำหนดไว้แบบ สาธารณะ สามารถเข้าถึงได้จากวิธีการหรือคลาสใดๆ
- ตัวระบุการเข้าถึงที่มีการ ป้องกัน กำหนดขอบเขตของคลาส เมธอด และตัวแปรให้กับแพ็คเกจเดียวกัน ภายในคลาสเดียวกัน หรือถึงคลาสย่อยเฉพาะของคลาสนั้น
- ขอบเขต เริ่มต้น มีไว้สำหรับคลาส ตัวแปร และเมธอดปัจจุบันทั้งหมดที่มีการเข้าถึงแพ็กเกจเท่านั้น
- ขอบเขต ส่วนตัว ช่วยให้เข้าถึงคลาส ตัวแปร และเมธอดของคลาสเฉพาะเท่านั้น
อ่าน: Java Swing Project
46. อธิบายความหมายของแพ็คเกจในภาษาจาวาพร้อมกับข้อดีของมัน
แพ็คเกจคือกลไกการจัดกลุ่มสำหรับประเภทที่คล้ายคลึงกัน (อินเทอร์เฟซ คลาส คำอธิบายประกอบ และการแจงนับ) ซึ่งรับประกันการปกป้องทรัพย์สินและการจัดการชื่ออย่างครอบคลุม
นี่คือข้อดีของแพ็คเกจใน Java:
- แพ็คเกจช่วยเราป้องกันความขัดแย้งในการตั้งชื่อเมื่อมีคลาสที่มีชื่อเดียวกันอยู่ในสองแพ็คเกจที่แตกต่างกัน
- แพ็คเกจช่วยในการควบคุมการเข้าออกอย่างเป็นระบบ
- สร้างคลาสที่ซ่อนอยู่เพื่อใช้โดยแพ็คเกจ
- ช่วยในการค้นหาคลาสที่เกี่ยวข้องสำหรับแพ็คเกจ
47. คุณจะกำหนด Constructor ใน Java อย่างไร?
ตัวสร้างเป็นบล็อกพิเศษของรหัสที่เริ่มต้นวัตถุในเวลาที่สร้าง แม้ว่ามันจะมีความคล้ายคลึงกับเมธอดของอินสแตนซ์ แต่ Constructor ก็ไม่ใช่วิธีการดังกล่าว เนื่องจากไม่มีประเภทการส่งคืนที่ชัดเจน ดังนั้นทุกครั้งที่มีการสร้างอ็อบเจ็กต์ในระบบ จะมีตัวสร้างหนึ่งตัวที่เรียกใช้งานนั้น หากไม่มีคอนสตรัคเตอร์ที่กำหนดไว้ คอมไพเลอร์จะใช้คอนสตรัคเตอร์เริ่มต้น
นี่คือการนำเสนออย่างง่ายของ Constructor ใน Java:
1 2 3 4 5 6 | MyClass คลาส สาธารณะ { //นี่คือตัวสร้าง มายคลาส (){ } .. } |
48. คอนสตรัคเตอร์ประเภทต่าง ๆ ที่ใช้ใน Java มีอะไรบ้าง?
คอนสตรัคเตอร์ที่ใช้ใน Java มีสามประเภท:
- ตัว สร้างเริ่มต้น: เมื่อนักพัฒนาไม่ได้ใช้ตัวสร้าง คอมไพเลอร์ Java จะเพิ่มตัวสร้างเริ่มต้นที่เฉพาะเจาะจงมากขึ้นที่มีอยู่ในไฟล์ .class
- ตัวสร้างแบบไม่มีอาร์กิวเมนต์: ในกรณีนี้ ไม่มีอาร์กิวเมนต์ในตัวสร้างและคอมไพเลอร์ไม่ยอมรับพารามิเตอร์ใดๆ เนื่องจากเมธอดตัวแปรอินสแตนซ์จะเริ่มต้นด้วยค่าคงที่เฉพาะ
- Parameterized Constructor: ในกรณีนี้ มีพารามิเตอร์อย่างน้อยหนึ่งตัวใน Constructor ที่เขียนอยู่ภายในวงเล็บขององค์ประกอบหลักเท่านั้น
49. คอนสตรัคเตอร์และเมธอดต่างกันอย่างไร?
ความแตกต่างที่สำคัญในตัวสร้างและวิธีการคือ:
- วัตถุประสงค์: ตัวสร้างมีจุดมุ่งหมายเพื่อเริ่มต้นวัตถุของคลาสในขณะที่วิธีการทำงานเฉพาะในการรันโค้ด
- เมธอดมีประเภทส่งคืนในขณะที่คอนสตรัคเตอร์ไม่มี
- ใน Methods มี abstract, static, final และ synchronization ในขณะที่ constructor คุณไม่สามารถสร้างโพรซีเดอร์เฉพาะได้
50. อธิบายความหมายของตัวแปร Local และตัวแปร Instance?
- ตัวแปรโลคัลมีอยู่ในเมธอด และขอบเขตมีอยู่ภายในเมธอดเท่านั้น
- ตัวแปรอินสแตนซ์มีอยู่และกำหนดในคลาสโดยมีขอบเขตทั่วทั้งคลาสเท่านั้น
51. อธิบายความหมายของคลาสในภาษาจาวา?
ใน Java รหัส ตัวแปร และเมธอดทั้งหมดถูกกำหนดในคลาส
- ตัวแปร แสดงถึงแอตทริบิวต์ที่กำหนดสถานะของคลาสเฉพาะ
- เมธอด แสดงถึงตำแหน่งที่ตรรกะทางธุรกิจมีผล วิธีการรวมถึงชุดคำสั่งและคำแนะนำเพื่อให้ตรงกับข้อกำหนด
นี่เป็นตัวอย่างง่ายๆ สำหรับคลาสใน Java :
1 2 3 4 5 6 7 | การ เพิ่ม คลาส สาธารณะ { // ประกาศชื่อคลาส int x = 10 ; //การประกาศตัวแปร int y = 10 ; โมฆะ สาธารณะ เพิ่ม () { // ประกาศวิธีการ int z = a + b ; } } |
52. อธิบายความหมายของ Object ใน Java?
ออบเจ็กต์ถูกกำหนดให้เป็นอินสแตนซ์ของคลาสที่มีสถานะและพฤติกรรมเฉพาะเท่านั้น ตัวอย่างเช่น สุนัขที่มีสถานะเฉพาะของชื่อ สายพันธุ์ และสี ในขณะที่พฤติกรรมรวมถึงการเห่า การกระดิกหาง เป็นต้น ดังนั้นทุกครั้งที่ JVM อ่านคีย์เวิร์ด new() ใดๆ อินสแตนซ์ที่เกี่ยวข้องจะถูกสร้างขึ้น ต้องมีการประกาศอ็อบเจ็กต์ก่อน จากนั้นจึงสร้างอินสแตนซ์และเริ่มต้นในท้ายที่สุดเพื่อดำเนินการต่อไป
53. กำหนดค่าเริ่มต้นสำหรับประเภทข้อมูลไบต์ในภาษา Java
สำหรับชนิดข้อมูล Byte ค่าเริ่มต้นคือ 0
54. เหตุใดชนิดข้อมูลไบต์จึงมีประโยชน์มากกว่าใน Java?
เนื่องจากชนิดข้อมูลแบบไบต์มีขนาดเล็กกว่าจำนวนเต็มเกือบสี่เท่า จึงสามารถจัดเก็บพื้นที่สำหรับอาร์เรย์ขนาดใหญ่ได้มากขึ้น
55. อธิบายแนวคิด OOPs ใน Java
OOPs เป็นแนวคิดพื้นฐานของภาษาการเขียนโปรแกรม Java สิ่งเหล่านี้รวมถึงสิ่งที่เป็นนามธรรม ความหลากหลาย การสืบทอด และการห่อหุ้ม แนวคิด Java OOPs ช่วยให้นักพัฒนาสามารถสร้างตัวแปร เมธอด และส่วนประกอบที่ช่วยให้สามารถนำกลับมาใช้ใหม่ได้ในแบบที่ปรับแต่งเองโดยที่ยังคงรักษาความปลอดภัยไว้
56. อธิบายความหมายของมรดก
ใน Java การสืบทอดเป็นกลไกเฉพาะที่ช่วยให้คลาสหนึ่งได้รับคุณสมบัติ (พร้อมฟิลด์และเมธอด) ของคลาสอื่น การสืบทอดเป็นหนึ่งในแนวคิดพื้นฐานของ Java OOP
การสืบทอดทำให้สามารถสร้างคลาสใหม่ เพิ่มฟิลด์และเมธอดเพิ่มเติมในคลาสที่มีอยู่เพื่อนำกลับมาใช้ใหม่ได้ไม่ว่าด้วยวิธีใด
- คลาสย่อยคือคลาสที่สืบทอดคุณสมบัติของคลาสอื่น
- Superclass คือคุณสมบัติที่สืบทอดมา
57. อธิบายแนวคิดของ Encapsulation ใน Java?
ในฐานะหนึ่งในแนวคิดหลักของ Java OOP การ Encapsulation ช่วยให้การห่อข้อมูลและโค้ดภายในหน่วยเดียวเท่านั้น การห่อหุ้มเรียกอีกอย่างว่าการซ่อนข้อมูล โดยมีตัวแปรของคลาสเฉพาะที่ซ่อนจากคลาสอื่นทั้งหมดและสามารถเข้าถึงได้ด้วยวิธีการจากคลาสที่มีอยู่เท่านั้น
สิ่งสำคัญสองประการในการบรรลุการห่อหุ้มใน Java คือ:
- การประกาศตัวแปรของคลาสเฉพาะเป็นไพรเวต
- ใช้ประโยชน์จากเมธอด setter และ getter สาธารณะสำหรับการเปลี่ยนแปลงและดูค่าตัวแปร
58. อธิบายแนวคิดของ Polymorphism
ความหลากหลายใน Java ช่วยให้นักพัฒนาสามารถทำงานเดียวได้หลายวิธี Polymorphism มีสองประเภทใน Java พร้อมรันไทม์และเวลาคอมไพล์ คุณสามารถใช้วิธีการแทนที่และการโอเวอร์โหลดเพื่อใช้งาน Polymorphism ใน Java
59. อธิบายความหมายของอินเตอร์เฟส
ใน Java เราไม่สามารถรับมรดกหลายรายการได้ ที่นี่ อินเทอร์เฟซมีบทบาทสำคัญในการเอาชนะปัญหานี้เพื่อให้ได้สิ่งที่เป็นนามธรรม ช่วยเหลือการสืบทอดหลายรายการ และยังสนับสนุนการมีเพศสัมพันธ์แบบหลวมอีกด้วย ตอนนี้ เรามีเมธอดดีฟอลต์ สแตติก และส่วนตัวในอินเทอร์เฟซพร้อมอัพเดต Java ล่าสุด
60. คลาสนามธรรมหมายถึงอะไร?
คลาสนามธรรมถูกสร้างขึ้นด้วยคำสำคัญที่เป็นนามธรรมเฉพาะใน Java พวกเขาแสดงวิธีการทั้งที่เป็นนามธรรมและไม่ใช่นามธรรม
61. อธิบาย Abstraction Class ใน Java?
นามธรรมเป็นหนึ่งในคุณสมบัติที่จำเป็นสำหรับการซ่อนข้อมูลการใช้งานจากผู้ใช้แล้วแสดงหน้าที่ผู้ใช้เท่านั้น For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.
You can achieve abstraction in Java using the following two ways:
- Abstract Class (0 to 100%)
- Interface (100%)
62. Explain the difference between Abstraction and Encapsulation in Java.
Here are the main differences:
สิ่งที่เป็นนามธรรม | การห่อหุ้ม |
Abstraction aims to gain information. | Encapsulation's main aim is to contain or procure information. |
In the abstraction process, issues or problems are handled at the interface/ design level. | In Encapsulation, problems are handled at a specific implementation level. |
Abstraction aids in hiding unwanted information. | Encapsulation method applies hiding data within a single unit. |
Implemented with interfaces and abstract classes. | Implemented with a particular access modifier (public, private, and protected). |
Use abstract classes and interfaces to hide complexities. | Use getters and setters to hide data. |
Objects that extend to abstraction must be encapsulated. | An object for encapsulation must not be abstracted. |
63. Explain the differences between Abstract class and interface.

Abstract Class | อินเตอร์เฟซ |
Abstract Class comes with a default constructor. | The interface doesn't have a constructor. So, no further process. |
Uses both Abstract and Non-Abstract methods. | Only use Abstract methods. |
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. | Classes that extend to interface must provide implementation across all the methods. |
These include instance variables. | The interface presents constants only. |
64. Explain the main differences between Array and Array List.
Array | Array List |
The size needs to be defined for the declaring array. String[] name = new String[5] | No size requirements; and modifies dynamically. ArrayList name = new ArrayList |
You must specify an index for putting an object inside the array. name[1] = “dog” | There are no index requirements.
name.add(“dog”) |
Arrays are not parameterised. | From Java 5.0 onwards, ArrayLists have a specific parameterised type. |
65. Explain the difference between static method and instance method.
Static or Class Method | Instance Method |
You must declare a method static for a static method. | All methods with declaration as static come under Instance method only. |
No requirements for creating objects in the Static method. | The object is a must for calling the instance method. |
You cannot access Instance or Non-static methods in the static context. | You can access both static and non-static in the instance method. |
66. How to make Constructors static?
Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.
67. Explain the use of 'this' keyword in Java?
In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.
อ่านเพิ่มเติม: วิธีเขียนโค้ด คอมไพล์ และรัน Java Projects
68. What is a classloader in Java? What are the different types of ClassLoaders in Java?
Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.
Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:
- BootStrap ClassLoader:
BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.
- Extension ClassLoader:
Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.
- System ClassLoader:
Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.
69. Explain the meaning of Java Applet.
Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.
70. What are the types of Applets?
Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.
71 What are immutable objects in Java?
ใน Java อ็อบเจ็กต์ที่ไม่เปลี่ยนรูปคืออ็อบเจ็กต์ที่สถานะไม่เปลี่ยนแปลงหลังจากถูกสร้างขึ้น ออบเจ็กต์ที่ไม่เปลี่ยนรูปเหมาะอย่างยิ่งสำหรับแอปพลิเคชันแบบมัลติเธรดที่อนุญาตให้แชร์เธรดในขณะที่หลีกเลี่ยงการซิงโครไนซ์ ออบเจ็กต์ที่ไม่เปลี่ยนรูปเป็นที่ต้องการสำหรับการสร้างโค้ดที่ง่าย เสียงและเชื่อถือได้ เพื่อให้เข้ากับกลยุทธ์ที่มีประสิทธิภาพ
72. คุณหมายถึงอะไรโดย JRE (Java Runtime Environment)?
Java Runtime Environment เป็นเลเยอร์ซอฟต์แวร์ที่ให้การสนับสนุนข้อกำหนดขั้นต่ำในการรันโปรแกรม Java บนเครื่อง นอกเหนือจาก JDK และ JRE แล้ว ทั้งสามยังเป็นพื้นฐานสำหรับการรันและพัฒนาโปรแกรม Java บนเครื่องเฉพาะ
73. ส่วน JDK คืออะไร?
Java Development Kit (JDK) เป็นหนึ่งในแพ็คเกจเทคโนโลยีหลักที่จำเป็นสำหรับการรันโปรแกรม Java สามารถใช้งานได้จากแพลตฟอร์ม Java รุ่น Standard Edition รุ่น Micro หรือ Enterprise ที่พัฒนาโดย Oracle สำหรับการสร้างแอปพลิเคชันบน Windows, Linux หรือ macOS
74. Java Virtual Machine (JVM) คืออะไร?
Java Virtual Machine (JVM) เป็นหนึ่งในสามข้อกำหนดพื้นฐานสำหรับการรันและรันโปรแกรม Java ร่วมกับ JDK และ JRE JVM มีสองหน้าที่หลัก; ประการแรก เพื่อช่วยให้โปรแกรม Java ทำงานได้อย่างราบรื่นบนเครื่องหรือระบบใดๆ และประการที่สองเพื่อเพิ่มประสิทธิภาพหน่วยความจำเพื่อส่งมอบประสิทธิภาพ
75.JDK, JRE และ JVM แตกต่างกันอย่างไร
JVM | JRE | JDK |
Java Virtual Machine | Java Runtime Environment | Java Development Kit |
แพลตฟอร์มขึ้นอยู่กับตัวเลือกซอฟต์แวร์และฮาร์ดแวร์ที่มีอยู่มากมาย | เลเยอร์ซอฟต์แวร์ที่ให้การสนับสนุนข้อกำหนดขั้นต่ำในการรันโปรแกรม Java บนเครื่อง | รุ่นมาตรฐาน Enterprise Edition รุ่นไมโคร |
สามแนวคิดดังนี้:
| ชุดของไลบรารี + ไฟล์ที่เปิดใช้งาน JVM บนรันไทม์ | JRE + เครื่องมือพัฒนา |
จัดเตรียมสภาพแวดล้อมรันไทม์สำหรับการดำเนินการ | JRE แสดงถึงการนำ JVM ไปใช้ | สภาพแวดล้อมการพัฒนาซอฟต์แวร์ |
76. JVM มีพื้นที่หน่วยความจำกี่ประเภท
พื้นที่หน่วยความจำมีหลายประเภทใน JVM:
- Class Area: หน่วยความจำนี้เก็บโครงสร้างก่อนคลาสด้วยฟิลด์ พูล ข้อมูลเมธอด และโค้ด
- ฮีปย่อมาจากหน่วยความจำรันไทม์ที่จัดสรรให้กับวัตถุโดยเฉพาะ
- สแต็คแสดงถึงหน่วยความจำของเฟรมด้วยตัวแปรในเครื่อง ผลลัพธ์บางส่วน เธรด และเฟรมสำหรับแต่ละเมธอด
- Program Counter Register เก็บข้อมูลสำหรับคำสั่งปัจจุบันด้วยการทำงานของ Java Virtual machine
- วิธีการแบบเนทีฟ Stack เก็บวิธีการดั้งเดิมที่มีอยู่ทั้งหมดที่ใช้ในแอปพลิเคชันปัจจุบัน
77. Data Binding ใน Java คืออะไร?
การผูกข้อมูลแสดงถึงการเชื่อมต่อระหว่างคลาสและเมธอด ฟิลด์ ตัวแปร คอนสตรัคเตอร์ หรือเนื้อหาของเมธอด Java สามารถจัดการการเชื่อมโยงข้อมูลทั้งแบบสแตติกและไดนามิก
78. การผูกข้อมูลประเภทต่างๆ ใน Java มีอะไรบ้าง?
การผูกข้อมูลใน Java มีสองประเภทที่สำคัญ
- Static Binding เกิดขึ้นในเวลาคอมไพล์โดยใช้เมธอดสแตติก ขั้นสุดท้าย และแบบส่วนตัว ยังเป็นที่รู้จักกันในนามการผูกมัดในช่วงต้น
- Dynamic Binding แสดงที่รันไทม์โดยไม่มีข้อมูลที่แน่ชัดเกี่ยวกับวิธีการที่ถูกต้องระหว่างเวลาคอมไพล์
79. Java Socket คืออะไร?
ซ็อกเก็ตช่วยในการสร้างกลไกการสื่อสารจากคอมพิวเตอร์สองเครื่องผ่าน TCP ซ็อกเก็ตมีความเหมาะสมและยืดหยุ่นมากกว่าสำหรับการสื่อสาร
80. อธิบายความแตกต่างระหว่าง Path และ Classpath
ทั้งเส้นทางและ Classpath แสดงถึงตัวแปรสภาพแวดล้อมภายในเครื่อง พาธจัดเตรียมซอฟต์แวร์เพื่อค้นหาไฟล์ปฏิบัติการ ขณะที่ ClassPath ระบุตำแหน่งสำหรับไฟล์ .class ในระบบ
81. มีวิธีการที่เป็นนามธรรมโดยไม่ต้องใช้คลาสนามธรรมหรือไม่?
ไม่ สำหรับเมธอด abstract จะมีอยู่ในคลาส จะต้องเป็นคลาสนามธรรม
82. กระบวนการสร้างคลาสแบบอ่านอย่างเดียวใน Java คืออะไร?
ใน Java คุณสามารถสร้างคลาสแบบอ่านอย่างเดียวโดยทำให้ฟิลด์ทั้งหมดเป็นแบบส่วนตัว คลาสแบบอ่านอย่างเดียวเฉพาะนี้จะมีเพียงเมธอด getter ที่ส่งคืนคุณสมบัติส่วนตัว ไม่อนุญาตให้แก้ไขหรือเปลี่ยนแปลงคุณสมบัตินี้เนื่องจากไม่มีวิธีการตั้งค่า
1 2 3 4 5 6 7 8 9 | //คลาสอ่านอย่างเดียวใน Java นักเรียน ชั้น สาธารณะ { //ข้อมูลส่วนตัวสมาชิก สถาบันสตริง ส่วนตัว = "MKG" ; // วิธี getter สำหรับสถาบัน สตริง สาธารณะ getInstitute (){ กลับ สถาบัน ; } } |
83. กระบวนการสร้างคลาสเขียนอย่างเดียวใน Java คืออะไร?
ใน Java คุณสามารถสร้างคลาสแบบเขียนอย่างเดียวได้โดยทำให้ฟิลด์ทั้งหมดเป็นส่วนตัวโดยใช้เมธอด setter เท่านั้น
1 2 3 4 5 6 7 8 9 | // คลาสเขียนอย่างเดียวใน Java นักเรียน ชั้น สาธารณะ { //ข้อมูลส่วนตัวสมาชิก สถาบันสตริง ส่วนตัว ; // setter method สำหรับสถาบัน โมฆะ สาธารณะ setInstitute ( สถาบันสตริง ) { นี้ . สถาบัน = สถาบัน ; } } |
84. อธิบายวิธีการเข้าถึงคลาสในคลาสอื่นใน Java?
ใน Java มีสองวิธีในการเข้าถึงคลาสในอีกคลาสหนึ่งดังนี้:
- การใช้ชื่อเฉพาะ: เราสามารถเข้าถึงคลาสเฉพาะจากแพ็คเกจอื่นโดยใช้ชื่อที่ผ่านการรับรองหรือนำเข้าแพ็คเกจที่มีคลาสเฉพาะ
- การใช้พาธสัมพัทธ์: ในทำนองเดียวกัน เรายังสามารถใช้พาธสัมพัทธ์สำหรับแพ็กเกจนั้นกับคลาสเฉพาะ
85. การจัดการข้อยกเว้นคืออะไร?
การจัดการข้อยกเว้นแสดงถึงกลไกในการจัดการข้อยกเว้นหรือเงื่อนไขที่ผิดปกติระหว่างข้อผิดพลาดรันไทม์เพื่อให้โฟลว์ปกติของแอปพลิเคชัน Java Exceptions มีสามประเภทด้วยกัน ได้แก่ Checked Exception, Unchecked Exception และ Error
86. อธิบายความแตกต่างระหว่าง Checked Exception และ Unchecked Exception
- Checked Exceptions เป็นคลาสที่ขยายคลาสที่ส่งได้ ยกเว้น RuntimeException เช่น SQLException, IOException เป็นต้น Checked Exceptions จะได้รับการจัดการในช่วงเวลาคอมไพล์เท่านั้น
- Unchecked Exceptions เป็นคลาสที่ขยาย RuntimeException เช่น NullPointerException, ArithmeticException เป็นต้น และไม่ได้รับการจัดการระหว่างเวลาคอมไพล์
87. คลาสพื้นฐานสำหรับข้อยกเว้นและข้อผิดพลาดคืออะไร?
ที่นี่คลาส Throwable แสดงถึงคลาสพื้นฐานสำหรับข้อยกเว้นและข้อผิดพลาด
88. พูดถึงคีย์เวิร์ดการจัดการข้อยกเว้นใน Java
มีคำหลักห้าคำสำหรับการจัดการข้อยกเว้นใน Java คือ:
คำสำคัญ | คำอธิบาย |
พยายาม | บล็อกลองนี้กำหนดบล็อกสำหรับวางโค้ดการดำเนินการ โดยทั่วไปบล็อกการลองนี้จะตามด้วยการใช้ catch หรือในที่สุด ดังนั้นจึงไม่สามารถใช้คนเดียวได้ |
จับ | เป้าหมายหลักของ Catch Block คือการจัดการข้อยกเว้น คุณต้องใช้สิ่งนี้ร่วมกับ try block และสุดท้ายในขั้นตอนต่อมา |
ในที่สุด | สุดท้าย block ตรวจสอบรหัสสำคัญของโปรแกรมที่ตรวจสอบว่าดำเนินการเสร็จสิ้นหรือไม่ |
โยน | จุดประสงค์หลักของคีย์เวิร์ด throw คือการสร้างข้อยกเว้นจากโปรแกรม |
ขว้าง | คีย์เวิร์ด throws ส่วนใหญ่จะใช้สำหรับการประกาศข้อยกเว้นและไม่ใช่สำหรับการส่งข้อยกเว้น ให้ข้อมูลเกี่ยวกับการเกิดขึ้นของข้อยกเว้นและใช้กับลายเซ็นเมธอด |
89. อธิบายความสำคัญของบล็อกสุดท้าย
ในที่นี้ บล็อกสุดท้ายมีความสำคัญอย่างยิ่งในการรันโปรแกรมอย่างราบรื่น จะดำเนินการเสมอไม่ว่าจะจัดการข้อยกเว้นหรือไม่ ในที่สุด บล็อกมาหลังจากบล็อก try หรือ catch ใน JVM ระบบจะเรียกใช้บล็อกสุดท้ายก่อนปิดหรือปิดไฟล์เสมอ สำหรับแต่ละบล็อกการลองปรากฏ อาจมีบล็อก catch ได้เป็นศูนย์หรือหลายบล็อก แต่ก็ยังมีบล็อกเดียวเท่านั้นในท้ายที่สุด
90. การเรียกใช้บล็อกสุดท้ายเป็นไปได้โดยไม่มีบล็อก catch หรือไม่?
ใช่ บล็อกสุดท้ายสามารถรันได้ ตามด้วยบล็อก try หรือ catch ตามลำดับ
91. มีกรณีใดบ้างที่ไม่ได้ถูกบล็อกในที่สุด?
ในที่สุดบล็อกจะไม่ทำงานหรือดำเนินการในกรณีที่โปรแกรมมีอยู่แล้วหรือทำให้เกิดข้อผิดพลาดร้ายแรงในการยกเลิกกระบวนการ
92. อธิบายความแตกต่างที่สำคัญระหว่างการโยนและการขว้าง
โยนคำสำคัญ | โยนคำสำคัญ |
มันส่งข้อยกเว้น | มันประกาศข้อยกเว้น |
ข้อยกเว้นที่ตรวจสอบแล้วไม่สามารถเผยแพร่ด้วยการโยนเท่านั้น | ข้อยกเว้นที่ตรวจสอบแล้วสามารถแพร่กระจายได้ด้วยการโยน |
ตามด้วยตัวอย่าง | ตามด้วยชั้นเรียน |
ใช้ในวิธีการเท่านั้น | มันถูกใช้กับลายเซ็นวิธีการเฉพาะ |
ไม่มีความเป็นไปได้ที่จะมีข้อยกเว้นหลายประการ | ในขณะที่ในขั้นตอนนี้ สามารถประกาศข้อยกเว้นได้หลายข้อ |
93. มีความเป็นไปได้ไหมที่ข้อยกเว้นจะถูกโยนทิ้งอีกครั้ง?
ได้ หากมีข้อยกเว้นอยู่ก็สามารถยกเลิกได้
94. อธิบายเกี่ยวกับการขยายพันธุ์ข้อยกเว้น
กระบวนการยกเว้นภายในขั้นตอนการจัดการเรียกว่าการขยายพันธุ์ข้อยกเว้น ตัวอย่างเช่น ข้อยกเว้นจะได้รับการจัดการที่ด้านบนสุดของสแตกก่อน จากนั้นหากไม่ถูกจับ ข้อยกเว้นจะตกไปยังวิธีการก่อนหน้า และหากไม่เป็นเช่นนั้น ข้อยกเว้นจะถูกจัดการต่อไปจนกว่าจะตรวจพบข้อยกเว้น หรือไปถึงด้านล่าง ของกอง ข้อยกเว้นที่ตรวจสอบโดยค่าเริ่มต้นไม่มีการเผยแพร่
95. อธิบายความหมายของเธรดในภาษาจาวา
ใน Java วิธีการหรือการไหลของการดำเนินการเรียกว่าเธรด ดังนั้น ทุกโปรแกรมจึงมีหนึ่งเธรดที่เรียกว่าเธรดหลักที่สร้างโดย JVM นักพัฒนามีอำนาจในการกำหนดเธรดที่กำหนดเองโดยการเพิ่มและขยายคลาสเธรดโดยใช้อินเทอร์เฟซ
96. อธิบายความหมายของเธรดพูล
พูลเธรด Java เป็นกลุ่มของหลายเธรดที่รองานที่จัดสรรอย่างต่อเนื่อง ที่นี่เธรดพูลทำงานภายใต้ผู้ให้บริการที่ดึงเธรดจากพูลนี้แล้วมอบหมายงานให้กับงานเฉพาะ พูลเธรดเพิ่มประสิทธิภาพและความเสถียรให้กับระบบมากขึ้น
97. อธิบายความแตกต่างระหว่าง String และ StringBuffer
สตริง | StringBuffer |
คลาสสตริงนั้นไม่เปลี่ยนรูปในธรรมชาติ | ในทางกลับกันคลาส StringBuffer นั้นเปลี่ยนแปลงได้ |
สตริงช้า | StringBuffer เป็นอย่างอื่นค่อนข้างเร็ว |
สิ่งเหล่านี้ใช้หน่วยความจำมากขึ้นสำหรับการสร้างอินสแตนซ์ใหม่ | สิ่งเหล่านี้ใช้หน่วยความจำน้อยลงด้วยสตริง concat |
สตริงช่วยให้เปรียบเทียบเนื้อหาได้ เนื่องจากจะแทนที่เมธอด equals() จากคลาส Object | ในขณะที่คลาส StringBuffer ไม่สามารถแทนที่เมธอด equals() จากคลาส Object ได้ |
98. อธิบายความแตกต่างระหว่าง StringBuffer และ StringBuilder
StringBuffer | StringBuilder |
มีการซิงโครไนซ์กับความปลอดภัยของเธรด | ไม่มีการซิงโครไนซ์โดยไม่มีความปลอดภัยกับเธรด |
ในนี้ สองเธรดไม่มีวิธีการเรียก | ในสิ่งนี้ สองเธรดสามารถมีวิธีการโทรได้อย่างลงตัว |
ต่ำกว่าหรือมีประสิทธิภาพน้อยกว่า StringBuilder | มีประสิทธิภาพมากกว่า StringBuffer |
99. วิธีสร้างคลาสที่ไม่เปลี่ยนรูปใน Java คืออะไร?
ใน Java คุณสามารถสร้างคลาสที่ไม่เปลี่ยนรูปได้โดยการประกาศคลาสสุดท้ายที่มีสมาชิกทั้งหมดเป็นคลาสสุดท้าย มาดูตัวอย่างเพื่อทำความเข้าใจสิ่งนี้:
1 2 3 4 5 6 7 8 9 10 11 12 | พนักงาน ชั้น สุดท้าย สาธารณะ { ความปลอดภัยของสตริง สุดท้าย หมายเลข ; พนักงาน สาธารณะ ( String securityNumber ){ นี้ . securityNumber = securityNumber ; } สตริง สาธารณะ getSecurityNumber (){ ส่งคืน securityNumber ; } } |
99. ชั้นเรียนภายในคืออะไร?
คลาส Java Inner ถูกกำหนดและประกาศภายในอินเตอร์เฟสหรือคลาส คลาสภายในช่วยให้ระบบสามารถจัดกลุ่มคลาสและอินเตอร์เฟสได้อย่างมีเหตุผล ทำให้อ่านง่ายขึ้นและดูแลรักษาง่าย นอกจากนี้ คลาสเหล่านี้สามารถเข้าถึงสมาชิกทั้งหมดของคลาสภายนอกด้วยเมธอดและสมาชิกข้อมูลส่วนตัว
100. ข้อดีและข้อเสียหลักของการใช้คลาส Java Inner คืออะไร?
ข้อดีหลักสำหรับคลาสภายในของ Java ได้แก่:
- การเข้าถึงสมาชิกทุกคนจากชั้นเรียนภายนอก
- เขียนโค้ดน้อยลง
- การบำรุงรักษาเพิ่มเติมและรหัสที่อ่านได้
ข้อเสียเปรียบหลักสำหรับคลาสภายในของ Java ได้แก่ :
- การสนับสนุนน้อยลงจาก IDE
- จำนวนชั้นเรียนทั้งหมดสูง
101. กำหนดประเภทของคลาสภายในในภาษาการเขียนโปรแกรม Java?
ชั้นในมีสามประเภทหลัก:
- Member Inner class ที่ระบุ class ภายใน class โดยใช้ method ภายนอก
- ภายในคลาสที่ไม่ระบุชื่อสำหรับการขยายคลาสหรือการระบุการใช้งานอินเทอร์เฟซ
- Local Inner Class เพื่อสร้างคลาสภายในเมธอด
102. กำหนดคลาสที่ซ้อนกัน
คลาสที่ซ้อนกันถูกกำหนดหรือประกาศภายในคลาสหรืออินเตอร์เฟสเท่านั้น คลาสที่ซ้อนกันสามารถเข้าถึงสมาชิกทั้งหมดของคลาสภายนอกด้วยเมธอดและสมาชิกข้อมูลส่วนตัวได้เช่นกัน นี่คือไวยากรณ์อย่างง่ายของคลาสที่ซ้อนกัน:
1 2 3 4 5 6 | คลาส Java_Outer_class { //รหัส คลาส Java_Nested_class { //รหัส } } |
103. คุณสามารถอธิบายความแตกต่างระหว่างคลาสภายในและคลาสที่ซ้อนกันได้หรือไม่?
คลาสภายในทั้งหมดถูกกำหนดเป็นคลาสที่ซ้อนกันแบบไม่คงที่ ดังนั้น คลาสภายในจึงเป็นส่วนหนึ่งของคลาสที่ซ้อนกันเท่านั้น
104. คุณจะนิยามความหมายของ Collections ใน Java อย่างไร?
คอลเล็กชันใน Java คือกลุ่มของหลายอ็อบเจ็กต์ที่แสดงเป็นหน่วยเดียว ที่รู้จักกันทั่วไปว่าเป็นคอลเล็กชั่นของวัตถุ พวกเขายังเรียกว่า Collection Framework หรือสถาปัตยกรรมที่ให้พื้นที่จัดเก็บสำหรับวัตถุและจัดการการออกแบบเพิ่มเติมสำหรับการเปลี่ยนแปลง
นี่คือฟังก์ชันหลักที่ดำเนินการโดย Java Collections:
- การเรียงลำดับ
- กำลังค้นหา
- การแทรก
- การจัดการ
- การลบ
มีอินเทอร์เฟซและคลาสมากมายที่เป็นส่วนหนึ่งของคอลเล็กชัน
105. อินเทอร์เฟซและคลาสใดบ้างที่มีอยู่ในคอลเลกชัน?
นี่คือรายการของอินเตอร์เฟสและคลาสที่พร้อมใช้งานกับคอลเลกชันใน Java
- อินเทอร์ เฟซ: คอลเลกชัน, คิว, ชุดที่เรียงลำดับ, แผนที่ที่เรียงลำดับ, รายการ, ชุด, แผนที่
- คลาส: รายการ, เวกเตอร์, รายการอาร์เรย์, รายการที่เชื่อมโยง
- ชุด: ชุด แฮช, ชุดต้นไม้, ชุดแฮชที่เชื่อมโยง
- แผนที่: แผนที่แฮช, ตารางแฮช, TreeMap, แผนที่แฮชที่เชื่อมโยง
- คิว: คิวลำดับความสำคัญ
106. อธิบายการเรียงลำดับและเรียงลำดับที่เกี่ยวข้องกับคอลเลกชันใน Java?
- เรียงลำดับ: การเรียงลำดับช่วยให้กลุ่มของออบเจ็กต์นำไปใช้ภายในหรือภายนอกเพื่อเรียงลำดับในคอลเลกชั่นเฉพาะ ตามคุณสมบัติที่แตกต่างกัน
- เรียงลำดับ: กำหนดค่าที่จัดเรียงตามค่าที่เพิ่มในคอลเลกชันและทำซ้ำในลำดับเฉพาะ
107. รายการใดบ้างที่มีอยู่ในคอลเลกชัน?
แสดงรายการค่าที่จัดเก็บตามตำแหน่งดัชนีโดยอนุญาตให้ทำซ้ำได้ นี่คือประเภทหลักของรายการ:
รายการอาร์เรย์: ใช้อินเทอร์เฟซการเข้าถึงโดยสุ่ม จัดเตรียมการรวบรวมคำสั่งซื้อตามดัชนี ไม่เรียงลำดับ และเสนอการวนซ้ำอย่างรวดเร็ว นี่คือตัวอย่างที่จะเข้าใจสิ่งนี้:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ผลไม้ ระดับ สาธารณะ { โมฆะ คง สาธารณะ หลัก ( สตริง [ ] args ){ ArrayList < String > ชื่อ = ใหม่ ArrayList < String >(); ชื่อ . เพิ่ม ( “ แอปเปิ้ล ” ); ชื่อ . เพิ่ม ( “ อะโวคาโด ” ); ชื่อ . เพิ่ม ( “ เชอร์รี่ ” ); ชื่อ . เพิ่ม ( “ กีวี ” ); ชื่อ . เพิ่ม ( “ ส้ม ” ); ชื่อ . เพิ่ม ( “ กล้วย ” ); ชื่อ . เพิ่ม ( “ กีวี ” ); ระบบ . ออก _ println ( ชื่อ ); } } |
ผลลัพธ์เป็นดังนี้:
[แอปเปิล อะโวคาโด เชอร์รี่ กีวี ส้ม กล้วย กีวี] |
ด้วยผลลัพธ์ คุณสามารถตรวจสอบว่า Array List เก็บลำดับการแทรกต้นฉบับและยังอนุญาตให้ทำซ้ำได้ แม้จะไม่ได้เรียง
เวกเตอร์: ยังใช้วิธีการเข้าถึงโดยสุ่ม มีการซิงโครไนซ์ และให้การสนับสนุนสำหรับความปลอดภัยของเธรด
ให้เราเข้าใจสิ่งนี้ด้วยตัวอย่าง:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ผลไม้ ระดับ สาธารณะ { โมฆะ คง สาธารณะ หลัก ( สตริง [ ] args ){ ArrayList < String > ชื่อ = เวกเตอร์ ใหม่ < String >(); ชื่อ . เพิ่ม ( “ กีวี ” ); ชื่อ . เพิ่ม ( “ ส้ม ” ); ชื่อ . เพิ่ม ( “ กล้วย ” ); ชื่อ . เพิ่ม ( “ แอปเปิ้ล ” ); ชื่อ . เพิ่ม ( “ อะโวคาโด ” ); ชื่อ . เพิ่ม ( “ เชอร์รี่ ” ); ชื่อ . เพิ่ม ( “ กีวี ” ); ระบบ . ออก _ println ( ชื่อ ); } } |
ผลลัพธ์เป็นดังนี้:
[กีวี ส้ม กล้วย แอปเปิ้ล อะโวคาโด เชอร์รี่ กีวี] |
รายการเวกเตอร์เป็นไปตามลำดับการแทรกต้นฉบับ และยังรองรับรายการซ้ำอีกด้วย
รายการที่เชื่อมโยง: นอกจากนี้ยังเป็นตัวเลือกในอุดมคติสำหรับการลบและการแทรก องค์ประกอบต่างๆ เป็นแบบ double-link แต่มีประสิทธิภาพการทำงานช้า
ตัวอย่างสำหรับรายการที่เชื่อมโยง:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ผลไม้ ระดับ สาธารณะ { โมฆะ คง สาธารณะ หลัก ( สตริง [ ] args ){ ArrayList < String > ชื่อ = เวกเตอร์ ใหม่ < String >(); ชื่อ . เพิ่ม ( “ กีวี ” ); ชื่อ . เพิ่ม ( “ ส้ม ” ); ชื่อ . เพิ่ม ( “ กล้วย ” ); ชื่อ . เพิ่ม ( “ แอปเปิ้ล ” ); ชื่อ . เพิ่ม ( “ อะโวคาโด ” ); ชื่อ . เพิ่ม ( “ เชอร์รี่ ” ); ชื่อ . เพิ่ม ( “ กีวี ” ); ระบบ . ออก _ println ( ชื่อ ); } } |
ผลลัพธ์เป็นดังนี้:
[แอปเปิล อะโวคาโด เชอร์รี่ กีวี ส้ม กล้วย กีวี] |
นอกจากนี้ยังทำตามลำดับการแทรกต้นฉบับและยอมรับรายการที่ซ้ำกัน
108. อะไรคือความแตกต่างที่สำคัญระหว่างคอลเลกชันและคอลเลกชันใน Java?
ความแตกต่างที่สำคัญมีดังนี้:
- คอลเล็กชันแสดงถึงอินเทอร์เฟซในขณะที่คอลเล็กชันเป็นคลาสโดยเฉพาะเท่านั้น
- อินเทอร์เฟซการรวบรวมมีฟังก์ชันหลากหลายสำหรับการจัดโครงสร้างข้อมูลเป็นรายการ ชุด และคิว ในขณะที่เป้าหมายหลักของคลาส Collection นั้นจำกัดอยู่ที่การจัดเรียงและซิงโครไนซ์องค์ประกอบของคอลเลกชัน
109. อธิบายคิวลำดับความสำคัญ
Priority Queue กำหนดอินเทอร์เฟซคิวสำหรับจัดการรายการที่เชื่อมโยงโดยมีจุดประสงค์ในการเข้าและออกลำดับความสำคัญ โดยทั่วไป คิวจะตามหลังอัลกอริทึมเข้าก่อนออกก่อน (FIFO) แต่คุณยังสามารถจัดคิวองค์ประกอบตามความต้องการเฉพาะได้ จากนั้นเราจึงนำ PriorityQueue ไปใช้ในการปรับแต่งได้ ด้วย Priority Queue ขึ้นอยู่กับฮีปลำดับความสำคัญอย่างเป็นธรรมชาติหรือผ่านทางตัวเปรียบเทียบตามลำดับความสำคัญที่สัมพันธ์กัน
110. เมื่อใดควรใช้และเปรียบเทียบอินเทอร์เฟซ Runnable ใน Java
เมื่อเราต้องการขยายคลาสด้วยคลาสอื่นที่ไม่ใช่เธรด อินเทอร์เฟซที่รันได้ก็เป็นตัวเลือกที่เหมาะสมที่สุด
111. วิธีการ start() และ run() ของ thread class แตกต่างกันอย่างไร?
start() วิธีการเพิ่มและสร้างเธรดใหม่ และโค้ดในเมธอด run() จะถูกรันในเธรดใหม่เท่านั้น ในขณะที่เมธอด run() จะรันโค้ดในเธรดปัจจุบันเท่านั้น
112. มัลติเธรดดิ้งคืออะไร?
ใน Java เราสามารถรันหลายเธรดพร้อมกันได้ ซึ่งเรียกว่า Multithreading ช่วยให้โปรแกรมทำงานหลายอย่างพร้อมกันโดยใช้หน่วยความจำน้อยลงและให้ประสิทธิภาพที่สูงขึ้น ใน Multithreading เธรดจะมีน้ำหนักเบา ใช้พื้นที่เดียวกัน และมีราคาไม่แพงในทุกด้าน
113. อธิบายความแตกต่างระหว่างกระบวนการและเธรด
นี่คือความแตกต่างที่สำคัญคือ:
- โปรแกรม Java ที่กำลังดำเนินการเรียกว่าเป็นกระบวนการในขณะที่เธรดแสดงถึงชุดย่อยของกระบวนการเท่านั้น
- กระบวนการแสดงถึงช่องว่างที่แตกต่างกันในหน่วยความจำ ในขณะที่เธรดมีที่อยู่เดียวกัน
- กระบวนการเป็นอิสระทั้งหมด ในขณะที่เธรดเป็นส่วนหนึ่งของกระบวนการเท่านั้น
- การสื่อสารระหว่างกระบวนการทำงานช้า ในขณะที่การสื่อสารระหว่างเธรดนั้นรวดเร็ว
114. อธิบายความหมายของการสื่อสารระหว่างเธรด
การสื่อสารระหว่างเธรดถูกกำหนดเป็นกระบวนการที่อนุญาตให้มีการสื่อสารระหว่างเธรดที่ซิงโครไนซ์หลายเธรด เป้าหมายหลักคือการหลีกเลี่ยงการรวมเธรดใน Java การสื่อสารทำได้โดยใช้วิธีการ wait(), notify() และ notifyAll()
115. อธิบายวิธี wait()
ด้วยเมธอด wait() คุณสามารถอนุญาตให้เธรดอยู่ในสเตจรอในขณะที่เธรดอื่นถูกล็อกบนอ็อบเจ็กต์ ดังนั้น เมธอด wait() จึงสามารถเพิ่มระยะเวลารอที่สำคัญสำหรับเธรดได้
นี่คือไวยากรณ์เพื่อแสดงสิ่งนี้:
1 2 3 4 5 6 | โมฆะ คงที่ สาธารณะ หลัก ( สตริง [] args ){ เธรด t = เธรด ใหม่ (); ที เริ่ม (); ซิงโครไนซ์ ( t ) { รอ (); } |
116. ความแตกต่างที่สำคัญระหว่างวิธี notify() และ notifyAll() ใน Java คืออะไร?
notify() วิธีการส่งสัญญาณเพื่อปลุกเฉพาะเธรดเฉพาะในกลุ่มรอในขณะที่ notifyAll() ปลุกเธรดทั้งหมดในระยะรอของพูล
117. กำหนดความแตกต่างที่สำคัญระหว่าง sleep() และ wait()
สลีป () หยุดชั่วคราวหรือหยุดความคืบหน้าของเธรดปัจจุบันโดยหยุดการทำงานชั่วคราวเป็นระยะเวลาหนึ่งในขณะที่ไม่ปล่อยล็อค ในขณะที่ wait() ทำให้เกิดระยะเวลารอสำหรับเธรดหลังจากเรียกใช้เมธอด notify() เพื่อปลุกในภายหลัง
118. อธิบายวิธีการ join() ที่เกี่ยวข้องกับเธรดใน Java
วิธีการ join() อนุญาตให้รวมหนึ่งเธรดกับหนึ่งในเธรดที่ต่อเนื่องกัน นี่คือไวยากรณ์สำหรับวิธี join():
1 2 3 4 5 | โมฆะ คงที่ สาธารณะ หลัก ( สตริง [] args ){ เธรด t = เธรด ใหม่ (); ที เริ่ม (); ที เข้าร่วม (); } |
119. อธิบายวิธี Yield ของด้าย
วิธีผลตอบแทนเป็นวิธีการแบบคงที่และไม่ปล่อยการล็อกใดๆ ในเธรด ที่นี่ วิธีการ Yield() ช่วยให้เธรดปัจจุบันเป็นเธรดที่รันได้มากขึ้นในขณะที่อนุญาตให้เธรดอื่น ๆ ยังคงดำเนินการต่อไป ดังนั้น เธรดที่มีลำดับความสำคัญเท่ากันของเธรดจึงสามารถรันได้เป็นประจำ
120. ระยะความอดอยากคืออะไร?
ความอดอยากคือระยะที่เธรดไม่สามารถเข้าถึงทรัพยากรที่ใช้ร่วมกันได้ และไม่สามารถดำเนินการใดๆ ได้
121. Deadlock สำหรับเธรดคืออะไร?
การชะงักงันกำหนดขั้นตอนเมื่อสองหรือหลายเธรดถูกบล็อกอย่างถาวรเพื่อรอกันและกัน
122. กำหนด Serialization และ Deserialization ใน Java?
การทำให้เป็นอันดับคือกระบวนการในการเปลี่ยนสถานะของอ็อบเจ็กต์เป็นสตรีมไบต์เฉพาะซึ่งเหมาะอย่างยิ่งสำหรับเทคโนโลยี JPA, JMS, RMI, JPA และ Hibernate ในขณะที่กระบวนการตรงข้ามของการเปลี่ยนสตรีมไบต์เป็นวัตถุเรียกว่าดีซีเรียลไลเซชัน กระบวนการทั้งสองนั้นไม่ขึ้นกับแพลตฟอร์ม ดังนั้นจึงทำให้คุณสามารถซีเรียลไลซ์ในแพลตฟอร์มเดียวและยกเลิกการซีเรียลไลซ์ในแพลตฟอร์มที่ต่างไปจากเดิมอย่างสิ้นเชิงได้อย่างมีประสิทธิภาพ
123. ตัวแปรชั่วคราวมีความสำคัญอย่างไร?
ความสำคัญของตัวแปรชั่วคราวอยู่ในการดีซีเรียลไลเซชันที่ตั้งค่าเป็นตัวแปรเริ่มต้นและไม่ได้ใช้กับตัวแปรคงที่
124. ตัวแปรผันผวนคืออะไร?
ตัวแปรผันผวนมีบทบาทสำคัญในการซิงโครไนซ์และการอ่านจากหน่วยความจำหลักในขณะที่หลีกเลี่ยงหน่วยความจำแคชของเธรด
125. SerialVersionUID คืออะไร?
ในกระบวนการ Serialized อ็อบเจ็กต์จะถูกประทับตราด้วยหมายเลข ID เวอร์ชันเฉพาะสำหรับคลาสอ็อบเจ็กต์ที่เกี่ยวข้อง หมายเลขนี้เรียกว่า SerialVersionUID และมีบทบาทสำคัญในการตรวจสอบระหว่างกระบวนการดีซีเรียลไลเซชันเพื่อตรวจสอบความเข้ากันได้ของผู้ส่งและผู้รับตามลำดับ
126. กระบวนการโคลนวัตถุใน Java คืออะไร?
ด้วยการโคลนวัตถุ คุณสามารถสร้างสำเนาที่แน่นอนของวัตถุดั้งเดิมได้ เพื่อให้การโคลนเป็นไปได้ คลาสต้องได้รับการสนับสนุนสำหรับการโคลนด้วยอินเทอร์เฟซ java.lang.Cloneable และอนุญาตให้ override clone() วิธีการจากคลาสอ็อบเจ็กต์ดั้งเดิม
ไวยากรณ์ง่ายๆ สำหรับเมธอด clone()
ป้องกัน Object clone () พ่น CloneNotSupportedException |
ในกรณีที่โคลนไม่ได้ใช้งาน โดยทั่วไปจะส่งข้อยกเว้นด้วย 'CloneNotSupportedException'
127. กำหนดคลาสที่ยังคงเป็นซุปเปอร์คลาสสำหรับแต่ละคลาส?
คลาสอ็อบเจ็กต์
128. กำหนดว่าคลาสสตริงเป็น mutable หรือ immutable?
คลาสสตริงแสดงถึงสถานะที่ไม่เปลี่ยนรูป ดังนั้นเมื่อสร้างวัตถุแล้ว สิ่งนี้ไม่สามารถเปลี่ยนแปลงได้อีก
129. คุณแยกความแตกต่างระหว่างคลาส StringBuffer และ StringBuilder อย่างไร
- StringBuilder เร็วกว่า StringBuffer
- StringBuffer ถูกซิงโครไนซ์ในขณะที่ StringBuilder ไม่ถูกซิงโครไนซ์
- StringBuffer เสนอสภาพแวดล้อมที่ปลอดภัยสำหรับเธรด ในขณะที่ StringBuilder ไม่มีความสามารถที่ปลอดภัยสำหรับเธรด
130. การใช้ toString() วิธีการใน Java คืออะไร?
ใน Java toString() จะดึงหรือส่งคืนการแสดงสตริงจากวัตถุใดๆ
131. การรวบรวมขยะใน Java คืออะไร?
เมื่ออ็อบเจ็กต์ได้รับการจัดสรรแบบไดนามิกผ่านโอเปอเรเตอร์ ระบบ Java ยังจัดการการจัดสรรคืนหน่วยความจำที่ใช้โดยอัตโนมัติในกรณีที่ไม่มีการอ้างอิงสำหรับอ็อบเจ็กต์ที่ยังคงอยู่ในช่วงเวลาที่มีนัยสำคัญ กระบวนการในการทำให้ระบบปราศจากอ็อบเจ็กต์ที่ไม่ได้ใช้นี้เรียกว่า Garbage Collection ใน Java เป้าหมายหลักของการรวบรวมขยะคือการทำให้การจัดการหน่วยความจำมีประสิทธิภาพมากขึ้น
132. ตัวรวบรวมขยะเรียกเมธอด finalize() สำหรับอ็อบเจกต์เฉพาะจำนวนกี่ครั้ง
คุณสามารถเรียกเมธอด finalize() ในการเก็บรวบรวมขยะได้เพียงครั้งเดียว
133. กำหนดวิธีการเรียกการรวบรวมขยะ
มีสองวิธีในการเรียกการรวบรวมขยะ:
- System.gc()
- รันไทม์.getRuntime().gc()
134. บังคับเก็บขยะได้ไหม?
ไม่ นี่เป็นกระบวนการอัตโนมัติ คุณสามารถเรียกวิธีการรวบรวมขยะ แต่ไม่สามารถบังคับได้ ถึงกระนั้นก็ไม่รับประกันว่าจะสมบูรณ์
135. ประเภทข้อมูลที่แตกต่างกันใน Java คืออะไร? อธิบาย.
นี่คือตัวเลือกที่จะช่วยคุณเกี่ยวกับประเภทข้อมูล:
- ไบต์ – 8 บิต
- สั้น – 16 บิต
- ถ่าน – 16 บิต Unicode
- int – 32 บิต (จำนวนเต็ม)
- float – 32 บิต (จำนวนจริง)
- ยาว – 64 บิต (ความแม่นยำเดียว)
- สองเท่า - 64 บิต (ความแม่นยำสองเท่า)
136. กำหนด Unicode
Unicodes เป็นวิธีการกำหนดอักขระสากลในภาษามนุษย์ และ Java ใช้โครงสร้าง Unicode นี้เพื่อเป็นสัญลักษณ์ของอักขระ
137. กำหนดตัวอักษร
ลิเทอรัลคือค่าคงที่ที่กำหนดให้กับตัวแปรตัวใดตัวหนึ่ง
// ที่นี่ 105 เป็นตัวอักษร จำนวนเต็ม = 105 |
138. กำหนดประเภทของการหล่อใน Java?

ในกรณีของการกำหนดค่าประเภทข้อมูลหนึ่งให้กับประเภทข้อมูลอื่น ทั้งสองอาจใช้หรือไม่ใช้ร่วมกันได้และต้องมีการแปลง Java จะแปลงโดยอัตโนมัติในกรณีของประเภทข้อมูลที่เข้ากันได้ แม้ว่าประเภทข้อมูลจะเข้ากันไม่ได้ แต่จะต้องส่งข้อมูลเหล่านี้เพื่อการแปลงที่สำเร็จ การแคสต์มีสองประเภทพื้นฐาน: โดยนัยและชัดเจน
139. อธิบาย typecasting สองประเภทที่แตกต่างกัน?
- โดยนัย: กำหนดการจัดเก็บค่าจากชนิดข้อมูลขนาดเล็กลงเป็นชนิดข้อมูลขนาดใหญ่ ดำเนินการโดยคอมไพเลอร์เท่านั้น
- ชัดเจน: กำหนดการจัดเก็บค่าจากประเภทข้อมูลที่มีขนาดใหญ่กว่าเป็นประเภทข้อมูลที่มีขนาดเล็กลงซึ่งอาจส่งผลให้ข้อมูลสูญหาย
บทสรุป
คำถามสัมภาษณ์ Java ข้างต้นจะเป็นการเริ่มต้นที่ดีในการเตรียมตัวสำหรับการสัมภาษณ์ ฝึกฝนทักษะการเขียนโค้ดของคุณด้วย และทำให้แน่ใจว่าได้ตอบคำถามเหล่านี้อย่างละเอียดถี่ถ้วนและแนวความคิดที่เกี่ยวข้องเพื่อที่ว่าเมื่อผู้สัมภาษณ์ถามคำถาม คุณก็พร้อมที่จะชนะรอบด้วย A ของคุณ โอ้ และอย่าลืม 3 (ไม่เด่น) หายใจไม่ออกเมื่อคุณนำเสนอตัวเองต่อหน้าผู้สัมภาษณ์
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ – ความเชี่ยวชาญพิเศษด้านการพัฒนาแบบเต็มสแต็ก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง , 9+ โครงการและการมอบหมาย, สถานะศิษย์เก่า IIIT-B, โครงการหลักในทางปฏิบัติ & ความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ
ดีที่สุด! หวังว่าคุณจะแตกบทสัมภาษณ์ของคุณ !!