Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. ความแตกต่างระหว่าง Thread Class และ Runnable Interface ใน Java

    Thread (Class) เป็น Class มีหลายเมธอด: start(), run(), ฯลฯ ใช้หน่วยความจำมากกว่า (สร้าง Object ใหม่แต่ละ Thread) extends Thread → ไม่สามารถ extends Class อื่นได้ (Java ไม่รองรับ Multiple Inheritance) แต่ละ Thread มี Object ของตัวเอง Runnable (Functional Interface) เป็น Functional Interface (มี a

  2. ความแตกต่างระหว่างคีย์เวิร์ด extends และ implements ใน Java

    extends Class extends Class (Single inheritance) Interface extends Interface (Multiple inheritance ได้) Subclass ไม่บังคับ override ทุก method ของ Superclass ตัวอย่าง: class Sub extends Super { ... } implements Class implements Interface Class implements หลาย Interface ได้ (คั่นด้วย comma) บังคั

  3. ความแตกต่างระหว่าง Class และ Interface ใน Java

    Class กำหนด attributes (fields) และ behaviors (methods) ของ object มีได้ทั้ง abstract และ concrete methods คีย์เวิร์ด: class สร้าง instance ได้ (instantiate) ไม่รองรับ Multiple Inheritance (extends ได้เพียง 1 class) สมาชิกเข้าถึงได้: public, private, protected Variables: static, final, instance I

  4. ความแตกต่างระหว่าง ArrayList และ Vector ใน Java

    ArrayList Non-synchronized (Not thread-safe) ขยายขนาด 50% เมื่อเต็ม เพิ่มใน JDK 1.2 ใช้ Iterator เท่านั้น เร็วกว่า (เพราะไม่ synchronized) Vector Synchronized (Thread-safe) Legacy class (มาตั้งแต่ JDK 1.0) ขยายขนาด 100% (double) เมื่อเต็ม ใช้ได้ทั้ง Enumeration และ Iterator ช้ากว่า (เพราะ synchr

  5. ความแตกต่างระหว่าง Process และ Thread ใน Java

    Process โปรแกรมที่กำลังทำงาน (Program in execution) สร้างช้า, จบช้า, Context switch ช้า ใช้ทรัพยากรระบบมาก (Heavy-weight) Communication ระหว่าง Process ยาก (IPC) Isolated: มี PCB, Stack, Address Space ของตัวเอง ถ้า Process หนึ่ง blocked อื่นๆ รอได้ Thread ส่วนย่อยของ Process (Light-weight proces

  6. ความแตกต่างระหว่าง Applet และ Servlet ใน Java

    Applet รันฝั่ง Client (Client-side) ทำงานภายใน Web Browser รันบนเครื่อง Client Package หลัก: java.applet.*, java.awt.* Life-cycle methods: init(), start(), paint(), stop(), destroy() ต้องการ UI (AWT/Swing) บนฝั่ง Client ใช้ Bandwidth มาก (โหลดโค้ดไปรันฝั่ง Client) ความปลอดภัยต่ำ (รันบนเครื่องผู้ใช้

  7. ความแตกต่างระหว่าง Packages และ Interfaces ใน Java

    Packages กลุ่มของ classes และ/หรือ interfaces ที่เกี่ยวข้องกัน สร้างด้วยคีย์เวิร์ด package นำเข้าใช้ด้วยคีย์เวิร์ด import โครงสร้าง: package package_name; public class class_name { ... } Interfaces กลุ่มของ abstract methods และ constants สร้างด้วยคีย์เวิร์ด interface สามารถ extends interface อื่

  8. ความแตกต่างระหว่าง Static และ Final ใน Java

    static ใช้กับ nested class, variable, method, block ไม่ต้อง initialize ตอนประกาศ เปลี่ยนค่าได้ (re-initialize) เข้าถึงสมาชิก static ของคลาสเดียวกันได้ static method เรียก static member ได้อย่างเดียว ไม่สามารถสร้าง object ของ static class ได้ static block ใช้ initialize static variables final คีย

  9. ความแตกต่างระหว่าง String และ StringBuffer ใน Java

    String Immutable (ไม่สามารถเปลี่ยนแปลงค่าได้) การ concat สร้างอ็อบเจกต์ใหม่ทุกครั้ง → ช้ากว่าเมื่อทำบ่อย ใช้หน่วยความจำน้อยกว่าเมื่อ concat น้อย (เพราะ String Pool) Override equals() → เปรียบเทียบเนื้อหาได้ด้วย .equals() StringBuffer Mutable (เปลี่ยนแปลงค่าได้) เร็วกว่าสำหรับการ concat ซ้ำๆ (ไม่

  10. ความแตกต่างระหว่าง Final, Finally และ Finalize ใน Java

    final (คีย์เวิร์ด) ใช้จำกัด class, method, variable final class: ไม่สามารถ extends ได้ final method: ไม่สามารถ override ได้ final variable: ต้อง initialize ตอนประกาศ ไม่สามารถเปลี่ยนค่าได้ finally (บล็อก) บล็อกโค้ดที่ทำงาน เสมอ หลัง try/catch (แม้มี return หรือ exception) ใช้สำหรับ cleanup (ปิด

  11. ความแตกต่างระหว่าง Checked และ Unchecked Exception ใน Java

    Checked Exceptions เกิดขึ้นตอนคอมไพล์ (Compile-time) Compiler ตรวจสอบบังคับ จัดการได้ตอนคอมไพล์ (try-catch หรือ throws) เป็น subclass ของ Exception (แต่ไม่ใช่ RuntimeException) JVM บังคับให้ catch/hande ตัวอย่าง: FileNotFoundException, IOException Unchecked Exceptions เกิดขึ้นตอนรันไทม์ (Runtime

  12. ความแตกต่างระหว่าง Error และ Exception ใน Java

    Error เป็น Unchecked Type อยู่ในคลาส java.lang.Error ไม่สามารถกู้คืน (recover) ได้ ไม่เกิดขึ้นตอนคอมไพล์ (Compile-time) ตัวอย่าง: OutOfMemoryError, IOError Exception แบ่งเป็น Checked และ Unchecked Exception อยู่ในคลาส java.lang.Exception สามารถกู้คืนได้ (catch และ handle) เกิดขึ้นได้ทั้ง Runtime

  13. ความแตกต่างระหว่าง JDBC และ ODBC

    ODBC (Open Database Connectivity) เปิดตัวโดย Microsoft ในปี 1992 รองรับภาษา C, C++, Java ทำงานได้เฉพาะบน Windows Driver เขียนด้วยภาษา Native (C/C++) เป็นแบบ Procedural ไม่แนะนำสำหรับ Java เพราะประสิทธิภาพต่ำกว่า (ต้องแปลงภายใน) และผูกติดแพลตฟอร์ม JDBC (Java Database Connectivity) เปิดตัวโดย Sun

  14. รวมลิงก์ลิสต์เข้าไปในอีกลิงก์ลิสต์หนึ่งที่ตำแหน่งสลับกันใน Java

    ภาพรวมปัญหา ได้รับลิงก์ลิสต์ 2 ตัว (List_1, List_2) ต้องรวมโหนดของ List_2 เข้า List_1 แบบสลับกัน (alternate positions) หาก List_2 ยาวกว่า โหนดที่เหลือจะอยู่ใน List_2 ตัวอย่าง ตัวอย่างที่ 1 List_1: 11 → 12 → 13 List_2: 14 → 15 → 16 → 17 → 18 Merged List_1: 11 → 14 → 12 → 15 → 13 → 16 List_2 ที่เหลือ

  15. ฟังก์ชัน Reverse and Add ใน Java

    ภาพรวมปัญหา ได้รับจำนวนเต็ม ต้องกลับตัวเลข (reverse digits) บวกกับตัวเลขเดิม ตรวจสอบว่าผลลัพธ์เป็น palindrome หรือไม่ หากไม่ใช่ ทำซ้ำกับผลลัพธ์ใหม่ จนกว่าจะได้ palindrome หรือถึงเงื่อนไขหยุด (1000 รอบ หรือเกิน Long.MAX_VALUE) ตัวอย่าง Input: 1678 Output: Palindrome of the given input 1678 → 293392

  16. กลับลำดับบิตจริงของตัวเลขที่กำหนดใน Java

    ภาพรวมปัญหา ได้รับจำนวนเต็ม n ≥ 0 ต้องกลับลำดับบิตของ n (ในรูปแบบทวีคูณจริง ไม่รวม leading zeros) และคืนค่าทศนิยมของผลลัพธ์ ตัวอย่าง Input: 13 Output: 11 (13)₁₀ = (1101)₂ → กลับบิต → (1011)₂ = (11)₁₀ Input: 18 Output: 9 (18)₁₀ = (10010)₂ → กลับบิต → (1001)₂ = (9)₁₀ แนวทางการแก้ปัญหา ใช้ตัวแปร re

  17. รวม k อาร์เรย์ที่จัดเรียงแล้วใน Java

    ภาพรวมปัญหา ได้รับ n อาร์เรย์จำนวนเต็มที่จัดเรียงแล้ว ต้องรวมเป็นอาร์เรย์เดียวที่จัดเรียงในรันไทม์ ตัวอย่าง ตัวอย่างที่ 1 Input: a[] = {21,22,23,24}, b[] = {28,31,35} Output: {21,22,23,24,28,31,35} ตัวอย่างที่ 2 Input: a[] = {1,3,5,7,9,11,13}, b[] = {14,16,18}, c[] = {19,20,21,22} Output: {1,3,5,7

  18. จำนวนระเบิดขั้นต่ำเพื่อกำจัดโจรในห้องต่างๆ ใน Java

    ภาพรวมปัญหา ตึกมีห้อง 1 ถึง n โจรอยู่ในแต่ละห้อง การระเบิดครั้งแรกทำให้โจรบาดเจ็บ ครั้งที่สองตาย เมื่อระเบิด โจรจะหนีไปห้องข้างเคียง ต้องหาลำดับการระเบิดน้อยที่สุดเพื่อกำจัดโจรทั้งหมด ตัวอย่าง n = 3 Output: 4 ครั้งลำดับ: 2 1 3 2 คำอธิบาย: ระเบิดห้อง 2 → โจรหนีไป 1,3 → ระเบิดห้อง 1 → โจรบาดเจ็บจากห้

  19. รวม K รายการลิงก์ลิสต์ที่จัดเรียงแล้วใน Java

    ภาพรวมปัญหา ได้รับ K ลิงก์ลิสต์ที่จัดเรียงแล้วแต่ละอัน ต้องรวมเป็นลิงก์ลิสต์เดียวที่จัดเรียงตามลำดับ ตัวอย่าง ตัวอย่างที่ 1 Input: k = 3 list[0]: 11 → 15 → 17 list[1]: 2 → 3 → 26 → 39 list[2]: 4 → 8 → 10 Output: 2 → 3 → 4 → 8 → 10 → 11 → 15 → 17 → 26 → 39 → null ตัวอย่างที่ 2 Input: k = 2 list[0]:

  20. เพิ่มกำไรรวมสูงสุดของบุคคลทั้งหมด X ใน Java

    ภาพรวมปัญหา ได้รับตัวแปร 5 ตัว: Num, P1, P2, profit_P1, profit_P2 ต้องการหากำไรรวมสูงสุดจากจำนวนธรรมชาติทุกตัวในช่วง [1, Num] โดย: ถ้าตัวเลขหาร P1 ลงตัว เพิ่มกำไร profit_P1 ถ้าตัวเลขหาร P2 ลงตัว เพิ่มกำไร profit_P2 แต่ละตัวเลขนำมาเพิ่มกำไรได้สูงสุด 1 ครั้ง (ถ้าหารทั้ง P1 และ P2 ลงตัว เลือกที่ให้กำไ

Total 1935 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:84/97  20-คอมพิวเตอร์/Page Goto:1 78 79 80 81 82 83 84 85 86 87 88 89 90