CodeGym /หลักสูตร /All lectures for TH purposes /การกำหนดที่อยู่หน่วยความจำและตัวแปร

การกำหนดที่อยู่หน่วยความจำและตัวแปร

All lectures for TH purposes
ระดับ, บทเรียน
มีอยู่

1. วิธีจัดระเบียบหน่วยความจำ

คอมพิวเตอร์ทุกเครื่องมี หน่วยความ จำภายใน มันคืออะไร? มันมีคุณสมบัติอะไรบ้าง? และที่สำคัญมีประโยชน์ต่อเราอย่างไร?

ทุกโปรแกรม (รวมถึงโปรแกรมที่เขียนด้วยภาษาจาวา) จะถูกโหลดลงในหน่วยความจำหลักก่อนดำเนินการ หน่วยความจำหลักประกอบด้วยรหัสโปรแกรม (ซึ่งดำเนินการโดยโปรเซสเซอร์) เช่นเดียวกับข้อมูลโปรแกรม (เช่น ข้อมูลที่โปรแกรมใส่ไว้ในหน่วยความจำ)

หน่วยความจำคืออะไรและเป็นอย่างไร

สเปรดชีต Excel ประกอบด้วยเซลล์ แต่ละเซลล์มีตัวระบุเฉพาะ ของตัวเอง ( A1, A2, ... B1, B2) หากคุณทราบตัวระบุของเซลล์คุณสามารถเขียนค่าบางอย่างลงในเซลล์นั้นหรือรับค่าใดๆ ก็ได้ที่เก็บไว้ที่นั่น หน่วยความจำของคอมพิวเตอร์มีการจัดระเบียบในลักษณะที่คล้ายกันมาก

โปรแกรมและข้อมูลโปรแกรมจะถูกเก็บไว้ในหน่วยความจำเมื่อโปรแกรมทำงาน หน่วยความจำของคอมพิวเตอร์ทั้งหมดประกอบด้วยเซลล์ขนาดเล็กที่เรียกว่าไบต์ แต่ละเซลล์มีตัวระบุเฉพาะหรือตัวเลขที่เชื่อมโยง: 0, 1, 2, 3, ...; (การนับเริ่มต้นจากศูนย์) ถ้าเราทราบจำนวนเซลล์เราสามารถบันทึกข้อมูลในนั้น หรือรับข้อมูลจากมัน บางเซลล์เก็บรหัสของโปรแกรม คือ ชุดคำสั่งสำหรับโปรเซสเซอร์ อื่น ๆ เก็บข้อมูลที่ใช้โดยโปรแกรม หมายเลขของเซลล์เรียกอีกอย่างว่าที่อยู่ของเซลล์

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

เรารวมคำสั่งง่ายๆ หลายร้อยคำสั่งเพื่อให้ได้คำสั่งที่ซับซ้อนและมีประโยชน์

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

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


2. ตัวแปรในหน่วยความจำ

Java มีข้อมูลทั้งหมด 4 ประเภทสำหรับเก็บจำนวนเต็ม เหล่า นี้คือbyte, short, intและlong

พิมพ์ ขนาดเป็นไบต์ ที่มาของชื่อประเภท
byte 1 ไบต์เป็นการจงใจปฏิเสธการกัดเพื่อหลีกเลี่ยงความสับสนกับบิต
short 2 ย่อมาจากShort Integer
int 4 ย่อมาจากจำนวนเต็ม
long 8 ย่อมาจากLong Integer

นอกจากนี้ Java มี 2 ประเภทสำหรับจำนวนจริง: float และ double:

พิมพ์ ขนาดเป็นไบต์ ที่มาของชื่อประเภท
float 4 ย่อมาจากเลขทศนิยม
double 8 ย่อมาจากDouble Float

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

ที่อยู่ของตัวแปรคือที่อยู่ของเซลล์แรกของบล็อกหน่วยความจำที่จัดสรร

ไม่อนุญาตให้โปรแกรม Java เข้าถึงหน่วยความจำโดยตรง การทำงานใดๆ กับหน่วยความจำจะเกิดขึ้นผ่านเครื่องเสมือน Java เท่านั้น


3. Stringประเภทในหน่วยความจำ

ประเภทStringสามารถจัดเก็บข้อมูลจำนวนมาก ซึ่งหมายความว่าไม่ได้เป็นเพียงประเภทข้อมูล แต่เป็นคลาสที่สมบูรณ์

อStringอบเจกต์ถูกวางในบล็อกหน่วยความจำที่จัดสรรซึ่งเก็บที่อยู่ของหน่วยความจำอีกบล็อกหนึ่งซึ่งเก็บข้อความไว้

ตัวแปรint aครอบครอง ไบต์และ เก็บ4ค่า1

ตัวแปรint bครอบครอง ไบต์และ เก็บ4ค่า 10,555เราใช้เครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน และเราใช้จุดเป็นตัวคั่นทศนิยม

ตัวแปรdouble dครอบครอง ไบต์และ เก็บ8ค่า13.001

ตัวแปรString strครอบครอง4ไบต์และเก็บค่าG13ซึ่งเป็นที่อยู่ของเซลล์แรกของบล็อกหน่วยความจำที่มีข้อความ

ข้อความของ the String objectถูกจัดเก็บไว้ในบล็อกหน่วยความจำแยกต่างหาก ที่อยู่ของเซลล์แรกจะถูกเก็บไว้ในstrตัวแปร


4. ทำไมการนับเลขจึงเริ่มต้นด้วยศูนย์ในการเขียนโปรแกรม

ผู้คนมักสงสัยว่าทำไมโปรแกรมเมอร์มักจะเริ่มนับหนึ่งจากศูนย์ ความจริงก็คือมีหลายสถานการณ์ที่สะดวกกว่าในการนับจากศูนย์ (แน่นอนว่ายังมีสถานการณ์ที่สะดวกกว่าในการนับจาก1)

ตัวอย่างที่ง่ายที่สุดคือการระบุที่อยู่หน่วยความจำ หากตัวแปรของคุณได้รับการจัดสรร4ไบต์ของหน่วยความจำ และคุณรู้ว่านั่นXคือแอดเดรสของไบต์แรก แล้วแอดเดรสของแต่ละไบต์คืออะไร , , , . ง่ายๆ เพียงเท่านี้ เรามีกลุ่มของไบต์ที่สามารถเข้าถึงได้ด้วยดัชนี, , ,X+0X+1X+2X+30123

เมื่อเรานึกถึงที่อยู่สัมพัทธ์ภายในบล็อกข้อมูล การสร้างดัชนีจากศูนย์เป็นสิ่งที่สมเหตุสมผล นี่คือเหตุผลหลักในการนับจากศูนย์


ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION