ทุกอย่างมาจากฮาร์ดแวร์
ไบต์เป็นหน่วยที่เล็กที่สุดของหน่วยความจำบนฮาร์ดแวร์ส่วนใหญ่
ทุกประเภทที่คุณเพิ่งพูดถึงนั้นสร้างจากหลายไบต์
ไบต์คือ 8 บิต เมื่อคุณสามารถแสดง 8 booleans แต่คุณไม่สามารถค้นหาทีละครั้ง คุณอยู่ 1 คุณกำลังพูดถึงทั้ง 8
มันเคยง่ายขนาดนั้น แต่จากนั้นเราเปลี่ยนจากบัส 8 บิตเป็น 16, 32 และตอนนี้ 64 บิตบัส
ซึ่งหมายความว่าในขณะที่เรายังคงอยู่ที่ระดับไบต์เราไม่สามารถเรียกข้อมูลไบต์เดียวจากหน่วยความจำอีกต่อไปโดยไม่ได้รับไบต์ข้างเคียง
ประสบกับฮาร์ดแวร์นี้นักออกแบบภาษาเลือกที่จะให้เราเลือกประเภทที่อนุญาตให้เราเลือกประเภทที่เหมาะสมกับฮาร์ดแวร์
คุณสามารถอ้างว่ารายละเอียดดังกล่าวสามารถและควรถูกแยกออกไปโดยเฉพาะอย่างยิ่งในภาษาที่มุ่งหวังที่จะทำงานบนฮาร์ดแวร์ใด ๆ สิ่งนี้จะมีข้อกังวลด้านประสิทธิภาพที่ซ่อนอยู่ แต่คุณอาจถูกต้อง มันไม่ได้เกิดขึ้นแบบนั้น
Java พยายามทำสิ่งนี้จริงๆ ไบต์ถูกเลื่อนระดับเป็น Ints โดยอัตโนมัติ ความจริงที่จะผลักดันคุณถั่วในครั้งแรกที่คุณพยายามที่จะทำงานอย่างจริงจังในนั้น
เหตุใดมันจึงทำงานได้ไม่ดี
จุดขายที่ยิ่งใหญ่ของ Java ย้อนกลับไปในแต่ละวันที่คุณสามารถนั่งลงด้วยอัลกอริทึม C ที่รู้จักกันดีพิมพ์มันขึ้นมาใน Java และด้วยการปรับแต่งเล็กน้อยมันจะทำงานได้ และ C นั้นใกล้กับฮาร์ดแวร์มาก
การรักษาขนาดการเรียงตัวของอินทิกรัลไม่ได้ทำงานร่วมกัน
ดังนั้นพวกเขาสามารถมี พวกเขาไม่ได้
บางทีโปรแกรมเมอร์อาจไม่ต้องการให้ใครบางคนสามารถใช้ตัวเลขที่ใหญ่กว่าขนาดที่กำหนดและช่วยให้พวกเขา จำกัด มันได้
นี่คือการคิดที่ถูกต้อง มีวิธีการทำเช่นนี้ ฟังก์ชั่นยึดหนึ่ง ภาษาสามารถไปไกลเท่าที่จะอบขอบเขตโดยพลการในประเภทของพวกเขา และเมื่อขอบเขตเหล่านี้เป็นที่รู้จักกันในเวลารวบรวมที่จะช่วยให้การเพิ่มประสิทธิภาพในการจัดเก็บตัวเลขเหล่านั้น
Java ไม่ใช่ภาษานั้น