“สวัสดี อามีโก้!”
"สวัสดี ริชิ!"
"คุณเข้าใจพื้นฐานของไวยากรณ์ Java แล้ว ดังนั้นตอนนี้ฉันต้องการให้รายละเอียดเพิ่มเติมแก่คุณ"
"วันนี้ เราจะพูดถึงประเภทดั้งเดิมและจำนวนหน่วยความจำที่พวกเขาใช้ ความรู้นี้จะมีประโยชน์ แม้กระทั่งในปัจจุบัน นี่คือประเภทพื้นฐาน:"
พิมพ์ | ขนาด ไบต์ |
ช่วงค่า | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|---|---|
ไบต์ | 1 | -128 .. 127 | 0 | จำนวนเต็มน้อยที่สุด 1 ไบต์ |
สั้น | 2 | -32,768 .. 32,767 | 0 | จำนวนเต็มสั้น 2 ไบต์ |
นานาชาติ | 4 | -2*10 9 .. 2*10 9 | 0 | จำนวนเต็ม 4 ไบต์ |
ยาว | 8 | -9*10 18 .. 9*10 18 | 0 ลิตร | จำนวนเต็มยาว 8 ไบต์ |
ลอย | 4 | -10 127 .. 10 127 | 0.0f | จำนวนเศษส่วน 4 ไบต์ |
สองเท่า | 8 | -10 1023 .. 10 1023 | 0.0d | เศษส่วนที่มีขนาดเป็นสองเท่าของจำนวนทศนิยม 8 ไบต์ |
บูลีน | 1 | ถูกผิด | เท็จ | ประเภทบูลีน (จริงหรือเท็จเท่านั้น) |
ถ่าน | 2 | 0..65,535 | '\u0000' | อักขระ 2 ไบต์ ค่าที่ไม่ได้ลงนามทั้งหมด |
วัตถุ | 4 | การอ้างอิงใด ๆ หรือเป็นโมฆะ | โมฆะ | เก็บการอ้างอิงถึงอินสแตนซ์ของ Object หรือคลาสที่สืบทอดมาจาก Object |
"ฉันจะบอกคุณเพิ่มเติมเกี่ยวกับแต่ละประเภท"
"ประเภทไบต์เป็นประเภทจำนวนเต็มที่น้อยที่สุด ตัวแปรประเภทนี้ใช้หน่วยความจำเพียง 1 ไบต์ ไบต์สามารถเก็บค่าในช่วงระหว่าง -128 ถึง 127"
"ทำไมเราถึงต้องการตัวพิมพ์เล็ก ทำไมเราใช้ int ตลอดเวลาไม่ได้"
"เราทำได้ แต่ถ้าคุณกำลังสร้างอาร์เรย์ขนาดใหญ่ที่องค์ประกอบไม่จำเป็นต้องเก็บค่าที่มากกว่า 100 ทำไมไม่ใช้ประเภทนี้ล่ะ สมเหตุสมผลไหม"
" Shortมีความยาวเป็นสองเท่าของไบต์ และยังเก็บเฉพาะจำนวนเต็มเท่านั้น จำนวนบวกที่ใหญ่ที่สุดที่เก็บได้คือ 32,767 จำนวนลบที่ใหญ่ที่สุดที่สามารถเก็บได้คือ -32,768"
" ประเภท int ที่คุณคุ้นเคย สามารถเก็บจำนวนเต็มในช่วง ±2,000,000,000"
" ประเภท ทศนิยม ถูกสร้างขึ้นเพื่อจัดเก็บจำนวนจริง (เศษส่วน) ขนาดของมันคือ 4 ไบต์"
"ตัวเลขเศษส่วนถูกจัดเก็บในรูปแบบที่ค่อนข้างน่าสนใจ"
"ตัวอย่างเช่น หมายเลข 987654.321 สามารถแสดงเป็น 0.987654321*10 6ซึ่งหมายความว่าสามารถแสดงเป็นตัวเลขสองตัวในหน่วยความจำ: 0. 987654321 ( mantissa หรือ significand ) และ6 ( เลขชี้กำลังฐาน 10 )"
"เราต้องการสิ่งนั้นเพื่ออะไร"
"แนวทางนี้ช่วยให้เราใช้ 4 ไบต์ในการจัดเก็บตัวเลขที่มากกว่าที่ int สามารถจัดเก็บได้ ในการทำเช่นนี้ เราต้องเสียสละความแม่นยำ มีเพียงส่วนหนึ่งของไบต์เหล่านั้นเท่านั้นที่ใช้จัดเก็บแมนทิสซา ซึ่งหมายความว่าตัวเลขเหล่านี้จะจัดเก็บเท่านั้น ทศนิยม 6-7 ตำแหน่ง ทศนิยมที่มีนัยสำคัญน้อยกว่าจะถูกทิ้ง"
"ตัวเลขเหล่านี้เรียกอีกอย่างว่า เลขจุดไอซิ่งแบบ ลอยตัว นี่คือที่ มาของชื่อ ประเภท โฟลต "
"ฉันเห็น."
" ประเภท doubleคล้ายกับfloatแต่ยาวเป็นสองเท่า (ตามชื่อ) ซึ่งกินพื้นที่ได้ถึง 8 ไบต์มันสามารถรองรับแมนทิสซาที่ใหญ่กว่าและตัวเลขที่มีนัยสำคัญมากกว่าได้ หากคุณต้องการจัดเก็บจำนวนจริง ให้ลองใช้ประเภทนี้เสมอ "
" ถ่านเป็นประเภทไฮบริด ค่าของมันสามารถตีความได้ทั้งเป็นตัวเลข (ซึ่งสามารถเพิ่มหรือลบได้) และอักขระ สิ่งนี้เป็นไปได้เพราะแม้ว่าอักขระจะมีการแสดงภาพ แต่คอมพิวเตอร์ส่วนใหญ่มองว่าเป็นตัวเลข และสะดวกกว่า ให้ถือว่าเป็นตัวเลขอีกอย่างหนึ่ง: ประเภท อักขระเป็นค่าบวกเสมอ ไม่สามารถเก็บค่าลบได้ "
" ประเภท บูลีนเป็นประเภทตรรกะที่เก็บได้เพียงสองค่า : จริงหรือเท็จ "
"แม้ว่าจะมีอยู่ในแผนภูมินี้ แต่ ประเภท วัตถุไม่ใช่ประเภทดั้งเดิมมันเป็นคลาสพื้นฐานสำหรับทุกคลาสใน Java อันดับแรก คลาสทั้งหมดได้รับมาจากคลาสนี้ ดังนั้นจึงมีเมธอดของมัน ประการที่สอง ตัวแปรอ็อบเจกต์สามารถจัดเก็บการอ้างอิงได้ ไปยังอ็อบเจกต์ประเภทใดก็ได้ รวมถึง null ( การอ้างอิง แบบ null )"
"วันนี้ฉันได้เรียนรู้อะไรมากมาย ขอบคุณสำหรับบทเรียนนะ ริชิ"
GO TO FULL VERSION