0Pricing
Java Academy · บทเรียน

ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม

Integer, Double, Boolean และชนิดอื่น ๆ

ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

สองโลกของค่า

Java มีชนิดข้อมูลพื้นฐาน เช่น int, double และ boolean ซึ่งเก็บค่าดิบไว้โดยตรง นอกจากนี้ยังมีคลาสห่อหุ้ม เช่น Integer, Double และ Boolean ที่ห่อหุ้มค่าเหล่านั้นไว้ภายในออบเจ็กต์

ชนิดข้อมูลพื้นฐานทำงานรวดเร็วและใช้ทรัพยากรน้อย ส่วนคลาสห่อหุ้มเป็นออบเจ็กต์เต็มรูปแบบที่อยู่ในคอลเลกชันได้และอาจเป็น null ได้

ชนิดข้อมูลพื้นฐานทั้งแปด

Java กำหนดชนิดข้อมูลพื้นฐานไว้แปดชนิดพอดี

  • byte, short, int, long สำหรับจำนวนเต็ม
  • float, double สำหรับเลขทศนิยม
  • char สำหรับอักขระหนึ่งตัว
  • boolean สำหรับค่าจริงหรือเท็จ

แต่ละชนิดมีคลาสห่อหุ้มที่สอดคล้องกันในแพ็กเกจ java.lang

ชื่อคลาสห่อหุ้มที่ตรงกัน

ชื่อคลาสห่อหุ้มส่วนใหญ่เพียงเปลี่ยนตัวอักษรแรกของชนิดข้อมูลพื้นฐานเป็นตัวพิมพ์ใหญ่ แต่มีสองชนิดที่แตกต่างกัน

  • int กลายเป็น Integer
  • char กลายเป็น Character
  • boolean กลายเป็น Boolean, double กลายเป็น Double และอื่น ๆ

ลองพิมพ์คลาสห่อหุ้มบางรายการกัน

public class Main {
    public static void main(String[] args) {
        Integer count = 42;
        Double price = 9.99;
        Boolean active = true;
        Character grade = 'A';
        System.out.println(count);
        System.out.println(price);
        System.out.println(active);
        System.out.println(grade);
    }
}

คลาสห่อหุ้มคือออบเจ็กต์

ชนิดข้อมูลพื้นฐานเก็บค่าไว้ ส่วนคลาสห่อหุ้มเป็นการอ้างอิงออบเจ็กต์ จึงสามารถชี้ไปยังสิ่งใดเลยด้วย null ได้

คุณสมบัตินี้ทำให้คลาสห่อหุ้มมีประโยชน์เมื่อค่าอาจไม่มีอยู่ เช่น คอลัมน์ฐานข้อมูลที่อนุญาตให้เป็น NULL

public class Main {
    public static void main(String[] args) {
        Integer missing = null;
        int present = 5;
        System.out.println(missing);
        System.out.println(present);
    }
}

ค่าคงที่ที่มีประโยชน์

คลาสห่อหุ้มมีค่าคงที่ที่สะดวกต่อการใช้งาน Integer.MAX_VALUE และ Integer.MIN_VALUE ให้ค่ามากที่สุดและน้อยที่สุดของ int

วิธีนี้ง่ายกว่าการจดจำตัวเลขเหล่านั้นด้วยตนเองมาก

public class Main {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);
    }
}

เมธอดตัวช่วย

คลาสห่อหุ้มยังเป็นกล่องเครื่องมือที่รวมเมธอดตัวช่วยแบบสแตติกไว้ด้วย ตัวอย่างเช่น Integer.toBinaryString แสดงตัวเลขในฐาน 2 และ Integer.max ส่งคืนค่าที่มากกว่าจากค่าสองค่า

public class Main {
    public static void main(String[] args) {
        System.out.println(Integer.toBinaryString(10));
        System.out.println(Integer.max(7, 3));
        System.out.println(Integer.toHexString(255));
    }
}

เหตุใดคอลเลกชันจึงต้องใช้คลาสห่อหุ้ม

ระบบชนิดข้อมูลทั่วไปของ Java ใช้ได้เฉพาะกับออบเจ็กต์ ไม่ใช่ชนิดข้อมูลพื้นฐาน คุณไม่สามารถเขียน List<int> ได้

แต่ให้ใช้ List<Integer> แทน คลาสห่อหุ้มทำให้ค่าพื้นฐานเข้ากับรูปแบบออบเจ็กต์ที่คอลเลกชันต้องการ

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(20);
        System.out.println(numbers);
    }
}

การเปรียบเทียบค่าของคลาสห่อหุ้ม

เมื่อต้องการเปรียบเทียบค่าตัวเลขภายในคลาสห่อหุ้มสองตัว ให้ใช้ .equals() หรือ .compareTo() ไม่ใช่ตัวดำเนินการทางคณิตศาสตร์กับออบเจ็กต์เหล่านั้นโดยตรง

compareTo ส่งคืนจำนวนลบ ศูนย์ หรือจำนวนบวก

public class Main {
    public static void main(String[] args) {
        Integer a = 100;
        Integer b = 200;
        System.out.println(a.equals(b));
        System.out.println(a.compareTo(b));
    }
}

หน่วยความจำและประสิทธิภาพ

ชนิดข้อมูลพื้นฐานใช้หน่วยความจำน้อยกว่าและทำงานเร็วกว่า เพราะไม่มีภาระของออบเจ็กต์ int หนึ่งค่าคือข้อมูลดิบขนาด 4 ไบต์เท่านั้น

ออบเจ็กต์คลาสห่อหุ้มมีข้อมูลส่วนหัวเพิ่มเติม สำหรับลูปที่ประมวลผลค่าหลายล้านค่า ให้เลือกใช้ชนิดข้อมูลพื้นฐาน

ค่าเริ่มต้นแตกต่างกัน

ฟิลด์ชนิดข้อมูลพื้นฐานที่ยังไม่ได้กำหนดค่าจะมีค่าเริ่มต้นคล้ายศูนย์: int คือ 0 และ boolean คือ false

ฟิลด์คลาสห่อหุ้มที่ยังไม่ได้กำหนดค่าจะมีค่าเริ่มต้นเป็น null ความแตกต่างนี้สำคัญเมื่อคุณพยายามใช้ค่าในภายหลัง

public class Main {
    static int primitiveField;
    static Integer wrapperField;

    public static void main(String[] args) {
        System.out.println(primitiveField);
        System.out.println(wrapperField);
    }
}

การเลือกใช้อย่างใดอย่างหนึ่ง

กฎง่าย ๆ คือ ให้ใช้ชนิดข้อมูลพื้นฐานเป็นค่าเริ่มต้นเพื่อประสิทธิภาพและความชัดเจน เปลี่ยนไปใช้คลาสห่อหุ้มเมื่อต้องการสมาชิกของคอลเลกชัน ชนิดข้อมูลทั่วไป หรือความสามารถในการแทนค่าที่ไม่มีอยู่ด้วย null

ตรวจสอบความเข้าใจสั้น ๆ

ทดสอบความเข้าใจของคุณเกี่ยวกับชนิดข้อมูลพื้นฐานและคลาสห่อหุ้ม

ทบทวน

คุณได้เรียนรู้ความแตกต่างระหว่างชนิดข้อมูลพื้นฐานและคลาสห่อหุ้ม

  • ชนิดข้อมูลพื้นฐานทั้งแปดชนิดจับคู่กับคลาสห่อหุ้มทั้งแปดคลาส เช่น Integer และ Double
  • คลาสห่อหุ้มเป็นออบเจ็กต์ สามารถเป็น null ได้ และใช้ในคอลเลกชันได้
  • ชนิดข้อมูลพื้นฐานทำงานเร็วกว่าและใช้ทรัพยากรน้อยกว่า จึงควรใช้เป็นค่าเริ่มต้น
  • คลาสห่อหุ้มยังมีค่าคงที่และเมธอดตัวช่วยที่มีประโยชน์

คำถามที่พบบ่อย

บทเรียน “ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม”

Integer, Double, Boolean และชนิดอื่น ๆ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดข้อมูลพื้นฐานเทียบกับชนิดห่อหุ้ม
  2. Autoboxing และ Unboxing
  3. การแยกวิเคราะห์และ Valueof
  4. ข้อควรระวังของ Autoboxing
← กลับไปที่ Java Academy