Java Data Types

           variable แต่ละตัวจะใช้พื้นที่ใน memory จำนวนหนึ่ง จะมากน้อยเพียงใดขึ้นอยู่กับ data type
variable ใน java มี data type ซึ่งแบ่งออกเป็น 2 groups หลักๆ คือ

1. Primitive Data Type คือ ประเภทของตัวแปรในการอ้างถึงข้อมูลที่ถูกเก็บไว้ใน memory โดยจะเก็บค่าจริงโดยตรง ซึ่ง Primitive Data Type มี 8 ตัวดังนี้

boolean  มีขนาดที่ไม่แน่นอน ใช้กับข้อมูลประเภทตรรกศาสตร์เป็นได้อย่างใดอย่างหนึ่ง true หรือ false
byte        8 bit ใช้กับตัวเลข ค่าตั้งแต่ -128 to 127
short      16 bit ใช้กับตัวเลข ค่าตั้งแต่-32.768 to 32.767
char       16 bit ใช้กับข้อมูลชนิดตัวอักษร Unicode character
int           32 bit ใช้กับตัวเลข ค่าตั้งแต่ -2.147.483.648 to 2.147.483.647
long        64 bit ใช้กับตัวเลข ค่าตั้งแต่ เยอะมากๆขอละไว้
float        32 bit ใช้กับเลขทศนิยม ค่าตั้งแต่ เยอะมากๆขอละไว้    
double    64 bit ใช้กับเลขทศนิยม ค่าตั้งแต่ เยอะมากๆขอละไว้

primitive data types พวกนี้ไม่ใช่ object ไม่มีการ reference ถึง object ใดๆ

2. Object Reference คือ ประเภทของตัวแปรในการอ้างถึงข้อมูลที่ถูกเก็บไว้ใน memory โดยจะเก็บ address ที่มีการ reference ถึงแหล่งเก็บที่เก็บค่าจริงๆนั้นอยู่ นั่นหมายความว่าเป็นการ reference  ถึง object ดังนั้นคุณสามารถมี multiple references ถึงแหล่งเก็บตัวเดียวกันได้เพราะเป็น Object ซึ่งคุณสามารถสร้าง Object Reference มาใช้งานเป็นชนิดของคุณเอง แต่ในภาษา Java ได้มีการสร้าง Object Reference หลักไว้ให้คุณเรียกใช้งาน มีดังนี้

Boolean          มีขนาดที่ไม่แน่นอน ใช้กับข้อมูลประเภทตรรกศาสตร์เป็นได้อย่างใดอย่างหนึ่ง true หรือ false
Byte                8 bit ใช้กับตัวเลข ค่าตั้งแต่ -128 to 127
Short              16 bit ใช้กับตัวเลข ค่าตั้งแต่-32.768 to 32.767
Character       16 bit ใช้กับข้อมูลชนิดตัวอักษร Unicode character
Integer            32 bit ใช้กับตัวเลข ค่าตั้งแต่ -2.147.483.648 to 2.147.483.647
Long               64 bit ใช้กับตัวเลข ค่าตั้งแต่ เยอะมากๆขอละไว้
Float               32 bit ใช้กับเลขทศนิยม ค่าตั้งแต่ เยอะมากๆขอละไว้
Double            64 bit ใช้กับเลขทศนิยม ค่าตั้งแต่ เยอะมากๆขอละไว้
String              N byte ใช้กับตัวอักษรเป็นชุดสายอักขระ

การประกาศและการกำหนดค่าใดๆในกับตัวแปรชนิด Object Reference ต้องใช้คำสั่ง new เพราะเป็น Object เช่น

Integer number = new Integer(10);

Object Reference are immutable หมายความว่า ค่าที่เก็บภายใน object ที่ถูกสร้างขึ้นแล้วไม่สามารถเปลี่ยนแปลงค่าได้ ดังตัวอย่างข้างต้น ค่า 10 ถูกเก็บใว้ใน  object ชื่อ number ประเภท Integer จะไม่สามารถเปลี่ยนแปลงค่าได้อีกแล้ว ดังนั้นเราสามารถกำหนดค่าได้แค่ครั้งเดียวคือตอนสร้าง

Auto Boxing

ใช้สำหรับลด code เมื่อต้องการกำหนดค่าของตัวแปรประเภท primitive data types ให้กับตัวแปรประเภท Object Reference โดยประเภทของตัวแปรต้องเป็นชนิดที่เสมือนกัน เช่น int กับ Integer , float กับ Float เป็นต้น


ตัวอย่าง

int number = 10;
Integer numberler = number;

Compiler จะจัดการอ่านแบบนี้ให้

int number = 10;
Integer numberler = new Integer(number); 

Auto UnBoxing


ใช้เมื่อต้องการกำหนดค่าของตัวแปรประเภท Object Reference ให้กับตัวแปรประเภท primitive data types

ตัวอย่าง

Integer numberler = new Integer(10); 
int number  = numberler;

Compiler จะจัดการอ่านแบบนี้ให้

Integer numberler = new Integer(10); 
int number = numberler.intValue();




ไม่มีความคิดเห็น:

แสดงความคิดเห็น