แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | int | ยาว |
---|---|---|
ขั้นพื้นฐาน | ประเภทข้อมูล int เป็น 32- บิต | ชนิดข้อมูลยาวเป็น 64- บิต |
ไบต์ | หากนับเป็นไบต์ int จะเท่ากับ 4 ไบต์ | หากนับเป็นไบต์ความยาวจะเท่ากับ 8 ไบต์ |
พิสัย | ใน Java ช่วงของประเภท int คือ –2, 147, 483, 648 ถึง 2, 147, 483, 647 | ในชวาช่วงของชนิดความยาวคือ –9, 223, 372, 036, 854, 775, 808 ถึง 9, 223, 372, 036, 854, 775, 807 |
คำหลัก | คำหลักที่ใช้ในการประกาศตัวแปรประเภท int คือ "int" | คำหลักที่ใช้ในการประกาศตัวแปรชนิดยาวคือ "ยาว" |
หน่วยความจำ | หน่วยความจำที่จำเป็นในการจัดเก็บตัวแปร int น้อยกว่าเมื่อเปรียบเทียบกับความยาว | หน่วยความจำที่จำเป็นสำหรับการจัดเก็บตัวแปรแบบยาวนั้นใหญ่กว่าเมื่อเปรียบเทียบกับ int |
คำจำกัดความของประเภท int
int ชนิดข้อมูลเป็นชนิดข้อมูลที่ใช้กันมากที่สุดซึ่งเก็บค่าจำนวนเต็มในนั้น ค่าที่ตัวแปร int สามารถเก็บได้นั้นไม่สั้นเกินไปและไม่ยาวเกินไป โดยทั่วไปแล้วค่าของตัวแปร int จะใช้เป็นตัวแปรลูปซึ่งควบคุมลูปหรือใช้เป็นตัวแปรดัชนีของอาร์เรย์ ไบต์ชนิดข้อมูลและ short มีช่วงสั้นกว่าเมื่อเปรียบเทียบกับชนิดข้อมูล int แต่ไม่สามารถแทนที่ int ได้แม้ว่าค่าของตัวแปร int จะอยู่ในช่วงที่สั้นลง เหตุผลที่อยู่เบื้องหลังคือเมื่อเราใช้ data type byte และ short ใน expression แล้วในขณะที่ประเมิน expression นั้น data type byte และ short จะได้รับการเลื่อนระดับเป็น int โดยคอมไพเลอร์ ดังนั้นจากนี้จึงอาจกล่าวได้ว่าเป็นการดีกว่าที่จะใช้ int เมื่อต้องการจำนวนเต็ม
ลองมาดูการใช้งานประเภทข้อมูล
ไบต์ a = 70; ไบต์ b = 80; int c = a * b; // ไม่มีข้อผิดพลาด ไบต์ d = a + 10; // ข้อผิดพลาดในการคอมไพล์เวลา
ในขณะที่คุณสามารถสังเกตเห็นในโค้ดข้างต้นทั้งสองตัวแปรไบต์ a และ b มีค่า 70 และ 80 ซึ่งเป็นค่าไบต์ที่ถูกต้อง แต่ผลลัพธ์ระดับกลางของ a * b; เกินขีด จำกัด ของไบต์ ดังนั้นคอมไพเลอร์จะส่งเสริมตัวแปรไบต์สั้นและถ่านโดยอัตโนมัติเพื่อพิมพ์ int หากพวกเขาจะใช้ในการแสดงออก ตอนนี้คุณสามารถเห็นได้ว่าผลลัพธ์ของ a * b ถูกกำหนดให้กับตัวแปร int ซึ่งไม่ทำให้เกิดข้อผิดพลาดและการคอมไพล์ได้อย่างราบรื่นเพราะตัวแปร a และ b ได้รับการเลื่อนตำแหน่งให้เป็นประเภท int และการกำหนดประเภท int ให้กับ type int ไม่ ' ไม่ทำให้เกิดข้อผิดพลาด
ในบรรทัดสุดท้ายของโค้ดคุณสามารถเห็นนิพจน์โดยที่ค่า 10 ถูกเพิ่มลงในตัวแปรไบต์ 'a' ผลลัพธ์ยังคงไม่เกินขีด จำกัด ของไบต์ แต่การกำหนดผลลัพธ์ระหว่างกลางของนิพจน์“ a + 10” ให้กับตัวแปรไบต์ 'd' ทำให้เกิดข้อผิดพลาดในเวลาคอมไพล์เนื่องจากในขณะที่ตัวแปรไบต์การประเมินผลนิพจน์ 'a' ได้รับการเลื่อนระดับเป็นประเภท int และไม่อนุญาตให้กำหนดประเภท int เป็น type byte ดังนั้นจึงทำให้เกิดข้อผิดพลาดในเวลารวบรวม
ความหมายของประเภทยาว
ความยาวชนิดข้อมูลมีช่วงและความกว้างที่ใหญ่ที่สุดเมื่อเปรียบเทียบกับชนิดไบต์สั้นและ int ใน Java ชนิดแบบยาวเป็นชนิดจำนวนเต็มแบบ 64 บิต ชนิดยาวถูกใช้โดยที่ int ประเภทไม่ใหญ่พอที่จะเก็บค่าที่ต้องการ ช่วงยาวคือ –9, 223, 372, 036, 854, 775, 808 ถึง 9, 223, 372, 036, 854, 775, 807 ซึ่งค่อนข้างใหญ่เพื่อเก็บค่าที่มากกว่าเช่นจำนวนเต็มจำนวนมาก เราสามารถเข้าใจประเภทที่มีความยาวได้ด้วยตัวอย่างด้านล่าง
น้ำหนักคลาส {โมฆะคงที่สาธารณะหลัก (String args []) {รายการ int; int wt_per_item; กรัมยาว กล่องยาว รายการ = 10, 000000 // ระบุรายการตัวเลข wt_per_item = 10, 000; // ระบุน้ำหนักของหนึ่งรายการเป็นกิโลกรัมกรัม = wt_item * 1, 000; // แปลงน้ำหนักเป็นกรัมกล่อง = รายการ * กรัม; // คำนวณน้ำหนักของกล่องเป็นกรัม System.out.println ("จำนวนรายการ" + รายการ); System.out.println ("น้ำหนักต่อรายการ" + wt_per_item + "กิโลกรัม"); System.out.println ("น้ำหนักของกล่องเป็นกรัม" + กล่อง + "กิโลกรัม"); }} จำนวนรายการ 10, 000, 000 น้ำหนักต่อรายการ 10, 000 กิโลกรัมน้ำหนักของกล่องเป็นกรัม 100000000000000 กิโลกรัม
สังเกตผลลัพธ์ในโค้ดข้างต้น ผลลัพธ์ที่คำนวณได้สำหรับน้ำหนักของกล่องทั้งหมดที่มีกล่องที่มี 10, 000, 000 รายการซึ่งต่อน้ำหนักรายการ 10, 000 กิโลกรัม ค่าที่คำนวณได้สำหรับน้ำหนักของกล่องเป็นกรัมไม่สามารถถือได้โดยตัวแปร int ดังนั้นบางครั้งจำเป็นต้องใช้ชนิดแบบยาวเมื่อค่าขนาดใหญ่ถูกคำนวณหรือพักไว้
ความแตกต่างที่สำคัญระหว่าง int กับ long
- ความแตกต่างพื้นฐานระหว่างชนิด int และ long คือความกว้างโดยที่ int คือ 32 บิตและ long คือ 64 บิต
- ชนิด int และ long เมื่อนับเป็นไบต์แทนที่จะเป็นบิต type int คือ 4 ไบต์และชนิด long นั้นเป็นสองเท่าถ้า type int คือ 8 ไบต์
- ใน Java ช่วงของชนิด int นั้นอยู่ระหว่าง –2, 147, 483, 648 ถึง 2, 147, 483, 647 ในขณะที่ช่วงยาวของประเภท int นั้นอยู่ระหว่าง –9, 223, 372, 036, 854, 775, 804, 775, 804, 775
- คำหลักที่ใช้ในการประกาศตัวแปรของ int ชนิดคือ "int" ในทางกลับกันคำสำคัญที่ใช้ในการประกาศตัวแปรชนิด long คือ“ long”
- โดยทั่วไปหน่วยความจำที่จำเป็นในการเก็บค่าของประเภท int น้อยกว่าเมื่อเทียบกับความยาว
สรุป:
ในขณะที่เขียนโค้ดหากมีความจำเป็นต้องใช้ค่าช่วงกลางคุณสามารถใช้ชนิด int แต่เมื่อเอาต์พุตที่สร้างโดยนิพจน์ใด ๆ จะใหญ่ขึ้นหรือใช้ค่าขนาดใหญ่กว่าสำหรับการคำนวณแล้วตัวแปรชนิดแบบยาวต้องใช้เพื่อเก็บ ค่า