การเขียนโปรแกรม: Java ประเภทของข้อมูล

ชนิดข้อมูลถูกกำหนดโดยสามองค์ประกอบ:

  • ชุดของค่าหรือวัตถุ
  • ชุดของการดำเนินการที่สามารถนำไปใช้กับค่าทั้งหมดในชุด;
  • การนำเสนอข้อมูลเพื่อกำหนดที่เก็บข้อมูล

ชนิดข้อมูลใน Java คืออะไร?

ภาษาการเขียนโปรแกรมมีชนิดในตัวที่กำหนดไว้ล่วงหน้าและอนุญาตให้โปรแกรมเมอร์กำหนดชนิดของตัวเอง

ใน Java ชนิดข้อมูลจะแบ่งออกเป็นแบบดั้งเดิมและแบบอ้างอิง

“ ดั้งเดิม” หมายความว่ามันเพิ่มเติมการแบ่งเป็นไปไม่ได้ หากต้องการขยายหรือเปลี่ยนภาษาการเขียนโปรแกรมไม่อนุญาต ชนิดข้อมูลนี้อธิบายโดยผู้ใช้ดั้งเดิมและประเภทอื่น ๆ

ตัวแปรชนิดดั้งเดิมประกอบด้วยค่าและหนึ่งการอ้างอิงประกอบด้วยที่อยู่ของวัตถุในหน่วยความจำ

ชนิดข้อมูล java

ภาษาจาวา ประเภทข้อมูล: เวลาและวันที่

ข้อมูล Compound แบ่งออกเป็นคลาสอินเทอร์เฟซและอาร์เรย์ สมาชิกของประเภทอินเตอร์เฟสเป็นวิธีนามธรรมและค่าคงที่ ใน Java ชนิดข้อมูลวันที่และเวลาจะถูกระบุโดยตัวสร้าง Date ():

  • d = new Date ()

ตัวอย่างของลิงค์ก็เป็นสตริงเช่นกัน

ภาษาจาวา ประเภทข้อมูล: สตริง

สตริงเป็นคลาสที่กำหนดในไลบรารี Java และสามารถใช้เพื่อทำงานกับข้อความ (ลำดับของอักขระ)

การประกาศตัวแปร String อ้างอิงมีดังนี้: String str

ก่อนที่คุณจะกำหนดการอ้างอิงวัตถุให้กับตัวแปรดังกล่าวคุณต้องสร้างโดยใช้โอเปอเรเตอร์ใหม่ ตัวอย่างเช่นคุณสามารถสร้างวัตถุของคลาสสตริงด้วยข้อความ "Hello":

  • str = new String ("Hello")

จะเกิดอะไรขึ้นเมื่อเรียกใช้รหัสนี้ก่อนจัดสรรหน่วยความจำและชื่อ str เกี่ยวข้องกับเซลล์หน่วยความจำนี้ สิ่งนี้ไม่แตกต่างจากการประกาศตัวแปรดั้งเดิม ส่วนรหัสที่สองสร้างวัตถุ String ในหน่วยความจำด้วยข้อความ“ Hello” และเก็บลิงค์ไปยังมัน (หรือที่อยู่หน่วยความจำ) ใน str

ประเภทข้อมูลอ้างอิง Java ยังอนุญาตให้กำหนดการอ้างอิงไปยังวัตถุที่เก็บไว้ในตัวแปรหนึ่งและอีกอันหนึ่ง ทั้งคู่อ้างถึงวัตถุเดียวกันในหน่วยความจำ สามารถทำได้ดังนี้:

  • String str1;
  • String str2;
  • str1 = new String ("Hello");
  • str2 = str1;

มี Permalink null ที่สามารถกำหนดให้กับตัวแปรอ้างอิงใด ๆ มันไม่ได้หมายถึงวัตถุใด ๆ

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

  • String str1 = "Hello"

ดั้งเดิมชนิดข้อมูล Java - ไบต์สั้น intยาว, ถ่าน, ลอย, สองครั้งและบูลีน พวกเขาแบ่งออกเป็นสองประเภท: ตรรกะและตัวเลข หลังสามารถแบ่งออกเป็นจำนวนเต็มและจำนวนจุดลอยตัว

ชนิดข้อมูลจำนวนเต็ม Java เป็นชนิดตัวเลขที่มีค่าเป็นจำนวนเต็ม มีห้าคน: ไบต์สั้น int ยาวและถ่าน

ชนิดข้อมูล java

int

Int เป็นชนิดข้อมูลดั้งเดิมที่มีการลงชื่อแบบ 32 บิต ตัวแปรใช้หน่วยความจำ 32 บิต ช่วงที่ถูกต้องคือตั้งแต่ -2147483648 ถึง 2147483647 (-231 มากถึง 231 - 1) จำนวนเต็มทั้งหมดในช่วงนี้คือตัวอักษรหรือค่าคงที่จำนวนเต็ม ตัวอย่างเช่น 10, -200, 0, 30, 19 เป็นตัวอักษร int สามารถกำหนดให้กับตัวแปร int:

  • int num1 = 21;

ตัวอักษรทั้งหมดสามารถแสดงเป็นเลขฐานสองฐานแปดทศนิยมและเลขฐานสิบหก

เมื่อตัวอักษรเริ่มต้นจากศูนย์และมีตัวเลขอย่างน้อยสองหลักจะถือว่าการเขียนในรูปแบบฐานแปด 0 และ 00 แทนค่าเดียวกัน - ศูนย์

ตัวอักษร int ทั้งหมดในรูปแบบเลขฐานสิบหกเริ่มต้นด้วย 0x หรือ 0x และต้องมีตัวเลขฐานสิบหกอย่างน้อยหนึ่งหลัก:

  • int num1 = 0x123

ตัวอักษร int รูปแบบไบนารีเริ่มต้นด้วย 0b หรือ 0B:

  • int num1 = 0b10101

เวลาชนิดข้อมูล java

ยาว

นี่คือชนิดดั้งเดิมที่มีการลงชื่อแบบ 64 บิต มันถูกใช้เมื่อผลลัพธ์ของการคำนวณอาจเกินช่วงของ int ระยะยาว - ตั้งแต่ -263 มากถึง 263- 1. จำนวนเต็มทั้งหมดในช่วงนี้เป็นตัวอักษรชนิดยาว

หากต้องการแยกประเภทข้อมูล int และ long ใน Java ตัวอักษรของประเภทสุดท้ายจะลงท้ายด้วย L หรือ l เสมอ

ตัวอักษรจำนวนเต็มแบบยาวสามารถแสดงในรูปแบบฐานแปดฐานสิบหกและรูปแบบไบนารี

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

เนื่องจากช่วง int น้อยกว่าความยาวค่าของตัวแปร int สามารถกำหนดให้กับตัวแปรชนิดยาวได้เสมอ แต่การมอบหมายแบบย้อนกลับไม่สามารถทำได้แม้จะอยู่ในช่วงของ int การอ้างอิงที่ชัดเจนนั้นใช้สำหรับสิ่งนี้:

  • num1 = (int) num2;

ชนิดข้อมูลสตริง java

ไบต์

Byte เป็นชนิดดั้งเดิมจำนวนเต็ม 8 บิต ช่วงของมันคือ -128 ถึง 127 (-27 มากถึง 27 - 1) นี่เป็นชนิดจำนวนเต็มขนาดเล็กที่สุดที่มีใน Javaตามกฎแล้วตัวแปรไบต์จะถูกใช้เมื่อโปรแกรมเกี่ยวข้องกับค่าจำนวนมากในช่วงตั้งแต่ -128 ถึง 127 หรือเมื่อทำงานกับข้อมูลไบนารี ไม่เหมือนกับตัวอักษร int และ long ตัวอักษร byte จะหายไป อย่างไรก็ตามคุณสามารถกำหนดตัวแปรไบต์ให้กับตัวอักษร int ใด ๆ เนื่องจากมันจะแทนที่ช่วงไบต์

หากค่าของตัวแปรอยู่นอกช่วง Java จะโยนข้อผิดพลาดคอมไพเลอร์

นอกจากนี้คุณสามารถกำหนดเฉพาะตัวอักษร int แต่ไม่ใช่ค่าที่เก็บไว้ในตัวแปร int เนื่องจากอาจทำให้สูญเสียความแม่นยำ สิ่งนี้จะต้องใช้การส่งแบบชัดแจ้ง

  • b1 = (ไบต์) num1

สั้น

แสดงให้เห็นถึงชนิดข้อมูลดั้งเดิมจำนวนเต็ม 16 บิตที่เซ็นชื่อ ช่วงของมันคือจาก -32768 ถึง 32767 (หรือ -215 มากถึง 215 - 1)

โดยทั่วไปความต้องการตัวแปรสั้น ๆเกิดขึ้นเมื่อโปรแกรมใช้ค่าจำนวนมากที่ไม่เกินช่วงที่ระบุ ไม่มีตัวอักษรสั้น ๆ แต่สามารถกำหนดค่าตัวอักษร int ใด ๆ ภายในช่วงสั้น ๆ ได้ ค่าของตัวแปรไบต์สามารถกำหนดได้เสมอ กฎที่เหลือสำหรับการกำหนดตัวแปร int หรือ long short นั้นเหมือนกับ byte

ชนิดข้อมูล Java ดั้งเดิม

ถ่าน

Char ไม่ได้ลงนาม 16 บิตชนิดข้อมูลดั้งเดิมที่แสดงถึงอักขระ Unicode การไม่มีเครื่องหมายหมายความว่าตัวแปรไม่สามารถมีค่าลบได้ ช่วงคือตั้งแต่ 0 ถึง 65535 ซึ่งเหมือนกับการเข้ารหัสชุดอักขระ Unicode ตัวอักษรหมายถึงค่าถ่านและสามารถแสดงในรูปแบบต่อไปนี้:

  • อักขระเครื่องหมายคำพูดเดี่ยว
  • ลำดับของอักขระควบคุม
  • ลำดับอักขระควบคุม Unicode
  • ลำดับของอักขระควบคุมฐานแปด

สัญลักษณ์สามารถแสดงได้โดยใส่ไว้ในเครื่องหมายคำพูดเดี่ยว: ถ่าน C1 = "A" เครื่องหมายคำพูดคู่แสดงถึงตัวอักษรสตริงที่ไม่สามารถกำหนดให้กับตัวแปร char แม้ว่าสตริงจะมีอักขระเพียงตัวเดียวก็ตาม ไม่อนุญาตเนื่องจากไม่ได้กำหนดการอ้างอิงไปยังตัวแปรพื้นฐาน ตัวอักษรสตริงทั้งหมดเป็นอ็อบเจ็กต์สตริง ดังนั้นการอ้างอิง ในขณะที่ตัวอักษรจะเป็นประเภทดั้งเดิม

ลิเทอรัลซีเควนซ์ซีเควนซ์เขียนเป็นแบ็กสแลชตามด้วยอักขระในเครื่องหมายคำพูดเดี่ยว มีทั้งหมด 8 รายการ: 'n', 'r', 'f', 'b', 't', '\', '" ',' ''

Unicode Escape Sequence คือ"uxxxx" โดยที่ u (แบ็กสแลชตามด้วย u ตัวพิมพ์เล็ก) หมายถึงการเริ่มต้นและ xxxx แสดงถึงเลขฐานสิบหกสี่หลักพอดีของรหัสอักขระ Unicode ตัวอย่างเช่น "A" คือทศนิยม 65 และเลขฐานสิบหก 41 ดังนั้น อักขระนี้สามารถแสดงเป็น "u0041"

ลำดับหลีกเลขฐานแปดเขียนเป็น "nnn" โดยที่ n คือเลขฐานแปด (0-7) ค่ามีตั้งแต่ "00" ถึง "377" โดยที่ 3778 สอดคล้องกับ25510... ดังนั้นจึงใช้แทนอักขระที่มีรหัสตั้งแต่ 0 ถึง 255 ที่จำเป็นสำหรับความเข้ากันได้กับภาษาโปรแกรมอื่นๆ ต่างจากลำดับ Unicode ซึ่งต้องใช้เลขฐานสิบหกทั้งสี่หลัก คุณสามารถใช้เลขฐานแปด 1, 2 หรือ 3 หลักที่นี่: "n", "nn" หรือ "nnn"

ประเภทข้อมูลอ้างอิงจาวา

ประเภทบูลีน

บูลีนมีค่าที่ถูกต้องเพียงสองค่าเท่านั้น:จริงและเท็จ พวกเขาถูกเรียกว่าตัวอักษรบูลีน ตัวแปรบูลีนไม่สามารถส่งไปยังประเภทอื่นและในทางกลับกัน Java ไม่ได้ระบุขนาดของบูลีน - ขึ้นอยู่กับการใช้งานเฉพาะของ JVM

ประเภทข้อมูล Java Floating Point

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

ในภาษา Java ชนิดข้อมูลทศนิยมใช้ 32 บิต ตามมาตรฐาน IEEE 754 ค่านี้สอดคล้องกับความแม่นยำเดียว ซึ่งช่วยให้คุณแสดงตัวเลขได้ เช่น ตัวเลข 1.4 x 10-45 และ 3.4 x 1038ทั้งด้านบวกและด้านลบ

จำนวนจริงทั้งหมดที่ลงท้ายด้วย f หรือ F เรียกว่าจำนวนจริงลอยตัว สามารถแสดงในรูปแบบทศนิยมและในสัญกรณ์วิทยาศาสตร์ ตัวอย่างเช่น:

  • ลอย f1 = 3.25F;
  • ลอย f2 = 32.5E-1F;
  • ลอย f3 = 0.325E + 1F

ประเภทกำหนดศูนย์สองตัว: + 0.0F (หรือ 0.0F) และ -0.0Fอย่างไรก็ตาม เพื่อวัตถุประสงค์ในการเปรียบเทียบ ศูนย์ทั้งสองจะถือว่าเท่ากัน นอกจากนี้ เขายังกำหนดอนันต์สองประเภท: บวกและลบ ผลลัพธ์ของการดำเนินการบางอย่าง (เช่น การหาร 0.0F ด้วย 0.0F) ไม่ได้กำหนดไว้และแสดงด้วยค่าพิเศษ NaN

ประเภทข้อมูลวันที่และเวลาของจาวา

ความแม่นยำสองเท่า

ดับเบิลใช้ 64 บิตเพื่อเก็บตัวเลขทศนิยม ตัวเลขความแม่นยำสองเท่าสามารถแสดงค่าบวกและลบ 4.9 x 10-324 และ 1.7 x 10308.

ตัวเลขจริงทั้งหมดเป็นค่าเริ่มต้นตัวอักษรคู่ อีกทางเลือกหนึ่ง พวกเขาสามารถระบุอย่างชัดเจนด้วยคำต่อท้าย d หรือ D ตัวอย่างเช่น 19.27d ตัวอักษรคู่สามารถแสดงในรูปแบบทศนิยมและในสัญกรณ์วิทยาศาสตร์