Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. Parent-Child Hierarchy สำคัญไหมกับ Throws ขณะ Overriding ใน Java?

    สำคัญมาก กฎ Exception ใน Overriding คล้ายกับ Try-Catch: Subclass เมธอดอาจโยน Exception ชนิดเดียวกัน หรือ Subtype (ลูก) เท่านั้น ห้ามโยน Supertype (พ่อแม่) กฎหลัก (Overriding & Throws) โยน Exception ชนิดเดียวกัน ได้ โยน Exception ที่เป็น Subclass (Subtype) ของ Exception เดิม ได้ ห้

  2. วิธีกำหนดชื่อทางเลือก (Alternate Names) ให้ Field ด้วย Jackson ใน Java

    ใช้ Annotation @JsonAlias ระบุชื่อทางเลือกสำหรับ Property ระหว่าง Object) JSON) จะใช้ชื่อ Property จริง Syntax @JsonAlias({alias1, alias2, ...}) ตัวอย่างโค้ดครบถ้วน import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.Serializable; // Empl

  3. วิธีแปลง JSONArray เป็น String Array ใน Java

    ใช้ Library org.json (JSON in Java) แปลง JSONArray เป็น String[] โดยวนลูปอ่านค่าแต่ละ Index แล้วเก็บใน List แล้วค่อย toArray() ตัวอย่างโค้ด import org.json.JSONArray; import java.util.ArrayList; import java.util.List; public class JsonArrayToStringArray { public static void main(String[] args)

  4. วิธีเข้าถึง Member Variable ของ Derived Class ผ่าน Interface Object ใน Java

    เมื่อใช้ Reference ของ Interface (หรือ Superclass) ชี้ไปที่ Object ของ Subclass จะเข้าถึงได้เฉพาะ Member ที่ ประกาศใน Interface/Superclass เท่านั้น หากต้องการเข้าถึง Member ของ Subclass ต้อง Cast (Type Casting) ปัญหา: เข้าถึงไม่ได้โดยตรง interface Sample { void demoMethod1(); } public class In

  5. ทำไม Constructor ไม่สามารถเป็น Final ได้ใน Java?

    คำตอบสั้น: เพราะ Constructor ไม่ถูกสืบทอด (Not Inherited) ดังนั้นการ Override Constructor จึงไม่มีอยู่จริง ทำให้ final (ซึ่งใช้ป้องกัน Override) ไม่มีความหมาย เหตุผลลึกๆ วัตถุประสงค์ของ final method = ป้องกันไม่ให้ Subclass Override Constructor ไม่ถูกสืบทอด - Subclass ไม่ได้รับ Constructor

  6. ทำไม Blank Final Variable ต้อง Initialize ในทุก Constructor ใน Java?

    Blank Final Variable คือ final variable ที่ ไม่ได้กำหนดค่าตอนประกาศ Java บังคับให้ Initialize ใน ทุก Constructor เพื่อให้แน่ใจว่า Object ทุกตัวที่สร้างขึ้นมีค่าที่ถูกต้องเสมอ ตัวอย่างที่ Error (ไม่ได้ Initialize) public class Student { public final String name; // Blank final public vo

  7. ทำไม Java ไม่อนุญาตให้ Initialize Static Final Variable ใน Constructor?

    เพราะ static final ถูกจัดว่าเป็น Compile-time Constant ต้องมีค่าตอนที่ Class ถูก Initialize (Class Initialization) ซึ่งเกิดขึ้น ก่อน ที่ Constructor จะถูกเรียก ตัวอย่างที่ทำให้เกิด Compile Error class Data { static final int NUM; Data(int i) { NUM = i; // Compile Error: cannot

  8. Final Keyword เพียงอย่างเดียวพอสำหรับสร้าง Constant ใน Java หรือไม่?

    คำตอบคือ ไม่พอ ต้องใช้ static final คู่กัน เพื่อสร้าง Constant ตามนิยามที่ถูกต้อง (ค่าไม่เปลี่ยน + มีเพียง 1 Copy ทั้งโปรแกรม) ทำไม final เพียงอย่างเดียวไม่พอ? final instance variable (ไม่มี static) จะทำให้ แต่ละ Object มี Copy ของตัวเอง แม้ค่าจะเหมือนกันก็ตาม ตัวอย่าง: final เพียงอย่างเดียว (ไม่ใ

  9. วิธีทำให้ Array เป็น Immutable ใน Java

    ใน Java Array ไม่สามารถทำให้ Immutable ได้โดยตรง เพราะ Array เป็น Mutable Object เสมอ แต่เราสามารถสร้าง Unmodifiable View ผ่าน List ได้ UnmodifiableList สร้าง Array แปลงเป็น List ด้วย Arrays.asList() ห่อหุ้มด้วย Collections.unmodifiableList() ตัวอย่างโค้ด Exception immutabl

  10. สามารถ Initialize Static Variable ใน Default Constructor ได้หรือไม่ใน Java?

    คำตอบคือ ได้ แต่ไม่แนะนำ และมีข้อจำกัดสำคัญเมื่อรวมกับ final Static Variable พื้นฐาน เป็นของ Class ไม่ใช่ Object โหลดตอน Class Loading (Compile-time) มีเพียง 1 Copy ทั้งโปรแกรม เข้าถึงได้โดยไม่ต้อง new Object ตัวอย่าง: Initialize ใน Constructor (ทำได้) public class StaticInitExam

  11. ความแตกต่างระหว่าง Constants และ Final Variables ใน Java

    Constant (ค่าคงที่แท้จริง) ใน Java Java ไม่มีคีย์เวิร์ด const แต่มาจาก C/C++ แต่เราสร้าง Constant ได้โดยใช้ static final static โหลดเข้าหน่วยความจำตอน Compile-time มีเพียง หนึ่ง Copy** ตลอดโปรแกรม final ไม่สามารถเปลี่ยนค่าได้ ตัวอย่าง Constant class Data { static final int INTEGER_CON

  12. Transient ทำงานร่วมกับ Final ใน Java Serialization อย่างไร?

    ใน Java Serialization ตัวแปรที่ประกาศ transient จะ ถูกข้ามไปไม่ serialize ค่าจะกลายเป็นค่า Default (null, 0, false) หลัง Deserialize แต่หากตัวแปรเป็น final ด้วย จะมีพฤติกรรมพิเศษ: final + Compile-time Constant จะถูก Serialize ตามปกติ (เพราะค่าถูก Inline เข้าไปใน Bytecode) final + Non-const

  13. ทำไมถึงได้ ClassNotFoundException แม้คลาสจะมีอยู่จริงใน Java?

    ClassNotFoundException เกิดขึ้นเมื่อ Class Loader ไม่พบคลาสที่ระบุที่ Path ที่กำหนด แม้ไฟล์ .class จะมีอยู่จริงก็ตาม สาเหตุหลักคือ Path ไม่ตรง หรือ Classpath ไม่ถูกต้อง สถานการณ์ที่พบบ่อย ชื่อ Package/Class ผิด - สะกดผิด, ใหญ่-เล็กตัวอักษรไม่ตรง Classpath ไม่รวมโฟลเดอร์ที่มี .class - รันจา

  14. สามารถเปลี่ยน Method Signature ขณะ Overriding ใน Java ได้หรือไม่?

    คำตอบคือ ไม่ได้ การ Override ต้องมี ชื่อ เมธอด, พารามิเตอร์ (Parameter Types และ Order), และ Return Type เหมือนกันทุกประการ หากเปลี่ยน Signature จะถูกมองว่าเป็นเมธอดใหม่ (Overloading) ไม่ใช่ Overriding ตัวอย่างที่ไม่ใช่ Overriding เป็น Overloading ไม่ใช่ Overriding void sample(int a, float b)

  15. วิธีทำให้ Collection เป็น Read-Only ใน Java

    คลาส java.util.Collections มีเมธอด unmodifiableXxx() สำหรับสร้าง Unmodifiable View (มุมมองอ่านอย่างเดียว) ของ Collection ต่างๆ หากพยายามแก้ไขจะโยน UnsupportedOperationException เมธอดหลัก เมธอด คำอธิบาย unmodifiableCollec

  16. วิธีทำให้ Collection เป็น Thread-Safe ใน Java

    คลาส java.util.Collections มีเมธอดสำหรับห่อหุ้ม (Wrap) Collection ธรรมดาให้กลายเป็น Thread-Safe (ปลอดภัยต่อเธรด) โดยคืนค่าเป็น View ที่ซิงโครไนซ์ไว้แล้ว เมธอดหลักที่ใช้บ่อย เมธอด คำอธิบาย synchronizedCollection(Collectio

  17. เมธอด Override สามารถโยน Supertype ของ Exception ที่ Overridden เมธอดโยนได้หรือไม่ใน Java?

    คำตอบคือ ไม่ได้ หากเมธอดของ Superclass โยน Exception ตัวหนึ่ง เมธอดใน Subclass ที่ Override ห้ามโยน Exception ที่เป็น Supertype (Parent Class) ของ Exception นั้น จะเกิด Compile-time Error ทันที ตัวอย่างที่ทำให้เกิด Error ผิดกฎ public String readFile(String path) throws IOException { //

  18. Subclass สามารถ Override เมธอดโดยไม่โยน Exception ได้หรือไม่ใน Java?

    คำตอบคือ ได้ หากเมธอดของ Superclass โยน Checked Exception ตัวใดตัวหนึ่ง Subclass สามารถ Override เมธอดนั้น โดยไม่โยน Exception ใดๆ เลย ก็ได้ โปรแกรมจะคอมไพล์และรันผ่านได้ปกติ ตัวอย่างโค้ด import java.io.FileNotFoundException; abstract class Super { public void sampleMethod() throws FileNotFoun

  19. Loose Coupling คืออะไร และวิธีการบรรลุใน Java

    Coupling (การผูกมัด) หมายถึงความขึ้นต่อกันระหว่างประเภทของออบเจ็กต์ หากออบเจ็กต์สองตัวเป็นอิสระต่อกันอย่างสมบูรณ์ และการเปลี่ยนแปลงในออบเจ็กต์หนึ่งไม่ส่งผลต่ออีกตัวหนึ่ง ทั้งสองจึงถูกเรียกว่า Loosely Coupled (ผูกมัด鬆散) การบรรลุ Loose Coupling ใน Java ด้วย Interface ใน Java เราสามารถทำให้เกิด Loose

Total 1935 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:33/97  20-คอมพิวเตอร์/Page Goto:1 27 28 29 30 31 32 33 34 35 36 37 38 39