Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. เราสามารถประกาศ Enum ภายใน Method ใน Java ได้หรือไม่

    คำตอบ: ไม่ได้ Java ไม่อนุญาตให้ประกาศ enum ภายใน Method (Local Enum) จะเกิด Compile Error: enum types must not be local ตัวอย่างที่ผิด public class EnumExample { public void sample() { enum Vehicles { Activa125, Activa5G, Access125, Vespa, TVSJupiter; } } } EnumExample.java:3: error

  2. วนลูปค่าของ Enum ด้วย For Loop ใน Java

    Enum (Enumeration) กลุ่มของ Named Constants สร้างด้วย enum enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } การ Iterate เรียก Days.values() → คืน Array ของ Enum Constants ใช้ Enhanced For Loop (for-each) วนลูป ตัวอย่าง public class IterateEnum { public static void

  3. แปลงค่า double เป็น String ด้วยเมธอด format ใน Java

    String.format() Static method จัดรูปแบบ String ตาม Format Specifier คืนค่า String ใหม่ สำหรับ double ใช้ %f (fixed-point) หรือ %e (scientific), %g (general) ตัวอย่าง Input จากผู้ใช้ import java.util.Scanner; public class ConversionOfDouble { public static void main(String args[]) { Scan

  4. แปลงค่า double เป็น String ด้วยเมธอด append ใน Java

    StringBuffer / StringBuilder.append() เมธอด append(double) ของ StringBuffer หรือ StringBuilder เพิ่มค่า double เข้าไปใน buffer แล้วคืนค่า buffer เดียวกัน (chaining) ขั้นตอน สร้าง StringBuffer sb = new StringBuffer(); (หรือ StringBuilder) sb.append(doubleValue); String result = sb.toString(); ตัว

  5. การใช้เมธอด valueOf() ของคลาส String ใน Java

    String.valueOf() Static method ของคลาส String แปลงค่าต่างๆ ให้เป็น String Representation รองรับ: char, char[], boolean, int, long, float, double, Object ตัวอย่าง แปลง double import java.util.Scanner; public class ConversionOfDouble { public static void main(String args[]) { Scanner sc =

  6. แปลงตัวแปร Sub Class เป็น Super Class Type ใน Java

    Upcasting (Sub class → Super class) ทำได้เสมอและปลอดภัย (Implicit casting) เพราะ Sub class is-a Super class ขั้นตอน สร้าง Sub class object: Sub sub = new Sub(); กำหนดให้ Super reference: Super sup = sub; (ไม่ต้อง cast) ผ่าน Super reference เรียกได้เฉพาะ member ของ Super class ตัวอย่าง class Pers

  7. แปลงตัวแปร Super Class เป็น Sub Class Type ใน Java

    Downcasting (Super class reference → Sub class type) ทำได้ก็ต่อเมื่อ Super class reference ชี้ไปที่ Sub class object จริงๆ (Runtime type เป็น Sub class) ขั้นตอน สร้าง Sub class object กำหนดให้ Super class reference: Super sup = new Sub(); Cast: Sub sub = (Sub) sup; เรียก method ของ Sub class ได้

  8. แก้ปัญหา Diamond Problem ด้วย Default Methods ใน Java (บทความซ้ำ)

    บทความนี้ซ้ำกับ ID 1004093219 เนื้อหาเกือบเหมือนกัน โปรดดูรายละเอียดที่ 1004093219 ซึ่งอธิบาย Diamond Problem และการแก้ไขด้วย Default Methods ใน Interface อย่างครบถ้วน สรุปสั้น Diamond Problem: Multiple inheritance ของ Class ทำให้ ambiguous method Java ไม่อนุญาต multiple inheritance ของ Class แก้ด

  9. Default Methods ใน Java มีประโยชน์อย่างไร

    ปัญหา: เพิ่ม Method ใน Interface เดิม Interface เป็นสัญญา (Contract) กำหนด abstract methods ที่ Class ต้อง implement หากเพิ่ม method ใหม่ใน Interface ทุก Class ที่ implements อยู่แล้วจะ compile error (ต้อง implement method ใหม่ทั้งหมด) คำตอบ: Default Methods (Java 8+) เพิ่ม method พร้อม implementa

  10. เราสามารถ Override Default Methods ใน Java ได้หรือไม่

    Default Methods ใน Interface ตั้งแต่ Java 8 Interface สามารถมี method ที่มี body (implementation) ได้ โดยใช้คีย์เวิร์ด default เรียกว่า Default Methods หรือ Defender Methods การ Override Default Methods ได้** - Class ที่ implements Interface สามารถ override default method ได้ ตัวอย่างที่ 1: ไม่ Ov

  11. แก้ปัญหา Diamond Problem ด้วย Default Methods ใน Java

    ปัญหา Diamond Problem Java ไร้ Multiple Inheritance กับ Class (extends ได้แค่ 1 class) เพราะ Diamond Problem: Class A มี method demo() Class B, C extends A และ override demo() แตกต่างกัน Class D extends B, C (สมมติได้) → D จะมี demo() สองแบบ → Compiler ไม่รู้เรียกไหน → Ambiguity แก้ไขด้วย Default

  12. หาจุดตัดของ Linked List สองตัวใน Java

    ภาพรวมปัญหา ได้รับ Linked List สองตัวที่อาจ intersect กัน (share โหนดเดียวกันจากจุดหนึ่งไปจนจบ) ต้องหาโหนดที่ intersect (common node) หากไม่ intersect คืนค่า NULL ตัวอย่าง Input 1 List A: 5 → 4 → 9 → 7 → 1 List B: 6 → 7 → 1 Output: 7 (จุดตัดที่โหนดค่า 7) Input 2 ไม่มีจุดตัด Output: NULL แนวทางแก้

  13. หา Ugly Number ตัวที่ N ใน Java

    Ugly Number คืออะไร? จำนวนที่เฉพาะตัวประกอบ (Prime Factors) มีแค่ 2, 3, 5 เท่านั้น ลำดับ: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... ตัวอย่าง Input: N = 5 Output: 5 (Ugly number ตัวที่ 5 คือ 5) Input: N = 7 Output: 8 (Ugly number ตัวที่ 7 คือ 8) แนวทางแก้ปัญหา (Simple) ตรวจสอบแต่ละตัวเลขว่าหาร 2, 3,

  14. ความแตกต่างระหว่าง Iterator และ ListIterator ใน Java

    Iterator Iterate: Map, List, Set ไม่ได้ index ไม่สามารถ modify/replace element ได้ (แค่ remove) ทิศทาง: Forward only ไม่สามารถ add element ขณะ iterate (ConcurrentModificationException) Methods: hasNext(), next(), remove() ListIterator Iterate: List เท่านั้น (ไม่ใช่ Map/Set) ได้ index: nextIndex(

  15. ความแตกต่างระหว่าง HashMap และ TreeMap ใน Java

    HashMap Hash Table implementation ของ Map Implements: Map, Cloneable, Serializable อนุญาต 1 null key และ หลาย null values เร็ว: O(1) average สำหรับ get/put ไม่เรียงลำดับ Key → รองรับ Heterogeneous keys ใช้ equals() เปรียบเทียบ Key Method พื้นฐาน: keySet(), get(), put() TreeMap Red-Black Tree imp

  16. ความแตกต่างระหว่าง Iterator และ Enumeration Interface ใน Java

    Iterator Universal Cursor (ใช้กับทุก Collection) มีเมธอด remove() → ลบขณะ iterate ได้ Not Legacy (ใหม่กว่า) ใช้กับ: HashMap, LinkedList, ArrayList, HashSet, TreeMap, TreeSet, ฯลฯ แก้ไข Collection ขณะ iterate ได้ (ผ่าน remove) Enumeration Not Universal (ใช้กับ Legacy classes เท่านั้น) ไม่มีเมธอด

  17. ความแตกต่างระหว่างเมธอด sleep() และ wait() ใน Java

    wait() เป็นเมธอดของคลาส Object ปล่อย Lock (Monitor) เมื่อเรียกใน synchronized block ไม่ใช่ static method ต้องเรียกจาก synchronized context เท่านั้น (จะได้ IllegalMonitorStateException) มี 3 overload: wait(), wait(long timeout), wait(long timeout, int nanos) sleep() เป็นเมธอด static ของคลาส Threa

  18. ความแตกต่างระหว่าง HashMap และ LinkedHashMap ใน Java

    HashMap ไม่รักษาลำดับการ insert (Insertion order not preserved) ใช้ HashTable ภายใน extends AbstractMap, implements Map, Cloneable, Serializable เพิ่มใน JDK 1.2 Overhead ต่ำ Performance: O(1) สำหรับ get/put (average) LinkedHashMap รักษาลำดับการ insert (Insertion-order preserved) ใช้ HashTable +

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

    List (Interface) เป็น Interface (ส่วนหนึ่งของ Collection Framework) extends Collection ไม่สามารถ instantiate ได้โดยตรง ใช้สร้างรายการ elements ที่มีลำดับ (ordered) และเข้าถึงได้ด้วย index อนุญาต duplicate elements ArrayList (Class) เป็น Class implement List extends AbstractList สร้าง instance ได

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