Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. Deep Copy vs Shallow Copy ใน Java

    Shallow Copy (Shadow Copy) สร้าง object ใหม่ แต่ copy reference** ของ field ที่เป็น object/array → object เดิมและ copy ชี้ไปยังข้อมูลเดียวกัน ตัวอย่าง import java.util.*; class Demo { private int[] data; public Demo(int[] vals) { this.data = vals; // shallow: ชี้ array เดียวก

  2. โปรแกรม Java คำนวณ Standard Normal Distribution (Z-Score)

    Standard Normal Distribution (Z-Score) สูตร: Z = (X - μ) / σ X = ค่าที่ต้องการ, μ = ค่าเฉลี่ย (mean), σ = ส่วนเบี่ยงเบนมาตรฐาน (standard deviation) ตัวอย่างโค้ด public class Demo { public static void main(String[] args) { double x = 68; // ค่าสังเกต double mean = 102; // ค่า

  3. Static Block ใน Java: ตัวอย่างและการทำงาน

    Static Block (Static Initializer) บล็อกโค้ดที่รันครั้งเดียวเมื่อ class ถูกโหลดโดย ClassLoader ก่อน main method ใช้สำหรับ initialization ที่ซับซ้อนของ static fields ตัวอย่างพื้นฐาน class Demo { static int staticVal; int instanceVal; static { staticVal = 67; System.o

  4. Static Control Flow ใน Java: ลำดับการทำงานของ Static Members

    Static Control Flow (ลำดับควบคุม Static) เมื่อ class ถูกโหลด (class loading) Static members ทำงานตามลำดับ: Static variables (field initializers) - ตามลำดับ宣告 Static initializer blocks - ตามลำดับ宣告 Static methods - เมื่อถูกเรียก main method รันทีหลัง static initialization เสร็จสิ้น ตัวอย่างแสดงลำด

  5. Static Method ใน Interface (Java 8+)

    Static Methods ใน Interface (Java 8+) Interface สามารถมี static method ได้ เรียกผ่าน interface name โดยตรง ไม่ต้อง implement ตัวอย่าง interface MyInterface { // Static method static void staticMethod() { System.out.println(Static method in interface); } // Abstract met

  6. Initializer Block ใน Java (Instance Initializer)

    Initializer Block คืออะไร? บล็อกโค้ดที่รันทุกครั้งที่สร้างอ็อบเจกต์ ก่อน constructor ใช้รวมโค้ดที่ซ้ำในทุก constructor (common initialization) ตัวอย่าง public class Demo { // Instance initializer block { System.out.println(Instance initializer block executed); // ทำ initial

  7. Thread Interference Error ใน Java (Race Condition)

    Thread Interference / Race Condition เกิดเมื่อ thread หลายตัว เข้าถึงและแก้ไข shared data พร้อมกัน โดยไม่มี synchronization ผลลัพธ์ขึ้นอยู่กับลำดับการรัน (non-deterministic) ตัวอย่าง class Counter { static int value = 6; void increment() { for (int i = 0; i < 10; i++) {

  8. Memory Consistency Error ใน Java Multithreading

    Memory Consistency Error คืออะไร? เมื่อ thread หลายตัวเข้าถึง shared data การเปลี่ยนแปลงของ thread หนึ่งอาจ ไม่มองเห็น โดย thread อีกตัว ทำให้มุมมองข้อมูลไม่สอดคล้อง (inconsistent view) สาเหตุหลัก CPU Cache: แต่ละ core มี cache (L1/L2) ของตัวเอง เขียนค่าใหม่อาจอยู่ใน cache ยังไม่ flush ไป main mem

  9. เรียก run() โดยตรงแทน start() ใน Java Thread ได้หรือไม่?

    คำตอบ: เรียกได้ แต่ ไม่ใช่ multithreading run() เป็นเพียง method ธรรมดา เรียกแล้วรันใน thread เดิม (current thread) ไม่สร้าง thread ใหม่ ตัวอย่าง class MyThread extends Thread { @Override public void run() { System.out.println(Thread ID: + Thread.currentThread().getId() + running)

  10. Widening Primitive Conversion ใน Java

    Widening Primitive Conversion การแปลงชนิดข้อมูล primitive จากขนาดเล็กไปขนาดใหญ่ อัตโนมัติ ไม่สูญเสียข้อมูล ลำดับ Widening byte → short → int → long → float → double char → int → long → float → double ตัวอย่าง: การรวม char ด้วย + public class Demo { public static void main(Strin

  11. Java Tips และ Tricks สำหรับนักพัฒนา

    เคล็ดลับ Java สำคัญ 8 ข้อ Array vs ArrayList Array: ขนาดคงที่, primitive ได้, เร็วกว่าเล็กน้อย ArrayList: ขนาดยืดหยได้, เฉพาะ object, rich API → ใช้ ArrayList เป็นหลัก เฉพาะ critical performance ใช้ array ใช้ String ให้ถูกต้อง String immutable - การต่อสตริงในลูปสร้าง object เยอะ → ใช้ StringBuild

  12. Joiner Class ใน Guava Library สำหรับต่อสตริง

    Joiner ของ Guava: จัดการ join string/oject ง่ายกว่า String.join() Maven: com.google.guava:guava:32.1.3-jre (หรือเวอร์ชันใหม่กว่า) ตัวอย่าง import com.google.common.base.Joiner; import java.util.*; public class Demo { public static void main(String[] args) { String[] arr = {hel, null, l

Total 1935 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:76/97  20-คอมพิวเตอร์/Page Goto:1 70 71 72 73 74 75 76 77 78 79 80 81 82