1. Bagaimana ingatan disusun

Setiap komputer mempunyai memori dalaman . Apa itu? Apakah sifat yang ada padanya? Dan, yang paling penting, bagaimana ia memberi manfaat kepada kita?

Setiap program (termasuk program yang ditulis dalam Java) dimuatkan ke dalam memori utama sebelum dilaksanakan. Memori utama mengandungi kod atur cara (yang dilaksanakan oleh pemproses) serta data atur cara (iaitu data yang dimasukkan oleh atur cara itu sendiri ke dalam ingatan).

Apakah ingatan dan bagaimana ia?

Hamparan Excel terdiri daripada sel . Setiap sel mempunyai pengecam uniknya sendiri ( A1, A2, ... B1, B2). Jika anda mengetahui pengecam sel , maka anda sentiasa boleh menulis beberapa nilai ke dalamnya atau mendapatkan apa sahaja nilai yang disimpan di sana. Memori komputer disusun dengan cara yang hampir sama.

Data atur cara dan atur cara disimpan dalam ingatan semasa atur cara berjalan. Semua memori komputer terdiri daripada sel kecil yang dipanggil bait . Setiap sel mempunyai pengecam unik, atau nombor, yang dikaitkan dengannya: 0, 1, 2, 3, ...; (penomboran bermula dari sifar). Jika kita tahu nombor sel , kita boleh menyimpan data di dalamnya. Atau dapatkan data daripadanya. Sesetengah sel menyimpan kod program, iaitu set arahan untuk pemproses. Yang lain menyimpan data yang digunakan oleh program. Nombor sel juga dipanggil alamat sel .

Pemproses tahu bagaimana untuk melaksanakan arahan yang telah dimuatkan ke dalam memori. Hampir semua perintah pemproses adalah seperti mengambil data daripada beberapa sel , melakukan sesuatu dengannya , kemudian menghantar hasilnya ke sel lain .

Kami menggabungkan beratus-ratus arahan mudah untuk mendapatkan arahan yang kompleks dan berguna.

Apabila pembolehubah diisytiharkan dalam kod, sebahagian memori yang belum digunakan akan diperuntukkan untuknya. Ini biasanya beberapa bait. Mengisytiharkan pembolehubah memerlukan anda menunjukkan jenis maklumat yang akan disimpan oleh program di dalamnya: nombor, teks atau data lain. Lagipun, jika anda tidak tahu jenis maklumat yang akan disimpan, maka tidak jelas berapa besar blok memori yang perlu diperuntukkan untuk pembolehubah.

Pada awal zaman komputer, program berfungsi secara langsung dengan alamat memori, tetapi kemudian, untuk kemudahan pengaturcara, sel mula diberi nama. Nama pembolehubah yang unik adalah di atas semua untuk kemudahan pengaturcara, kerana program ini mengendalikan alamat memori biasa dengan baik.


2. Pembolehubah dalam ingatan

Secara keseluruhannya, Java mempunyai 4 jenis data untuk menyimpan integer. Ini ialah byte, short, intdan long.

taip Saiz dalam bait Asal nama jenis
byte 1 byte ialah ejaan semula gigitan yang disengajakan untuk mengelakkan kekeliruan dengan bit
short 2 Pendek untuk Integer Pendek
int 4 Pendek untuk Integer
long 8 Pendek untuk Integer Panjang

Selain itu, Java mempunyai 2 jenis untuk nombor nyata: float dan double:

taip Saiz dalam bait Asal nama jenis
float 4 Singkatan untuk Nombor Titik Terapung
double 8 Pendek untuk Double Float

Setiap kali pelaksanaan program mencapai arahan untuk mencipta pembolehubah, blok memori kecil diperuntukkan untuknya (saiz bergantung pada jenis pembolehubah).

Alamat pembolehubah ialah alamat sel pertama blok memori yang diperuntukkan.

Program Java tidak dibenarkan mengakses memori secara langsung. Mana-mana dan semua kerja dengan memori hanya berlaku melalui mesin maya Java.


3. StringJenis dalam ingatan

Jenis ini Stringboleh menyimpan sejumlah besar data, yang membayangkan bahawa ia bukan hanya jenis data, tetapi kelas penuh.

Objek Stringdiletakkan dalam blok memori yang diperuntukkan yang menyimpan alamat blok memori lain di mana teks disimpan.

Pembolehubah int amenduduki 4bait dan menyimpan nilai 1.

Pembolehubah int bmenduduki 4bait dan menyimpan nilai 10,555. Kami menggunakan koma sebagai pemisah beribu-ribu. Dan kami menggunakan noktah sebagai pemisah perpuluhan.

Pembolehubah double dmenduduki 8bait dan menyimpan nilai 13.001.

Pembolehubah String strmenduduki 4bait dan menyimpan nilai G13, yang merupakan alamat sel pertama blok memori yang mengandungi teks.

Satu teks String objectdisimpan dalam blok memori yang berasingan. Alamat sel pertamanya disimpan dalam pembolehubah str.


4. Mengapa penomboran bermula dengan sifar dalam pengaturcaraan

Orang sering tertanya-tanya mengapa pengaturcara hampir selalu mula mengira dari sifar. Sebenarnya, terdapat banyak situasi apabila lebih mudah untuk mengira dari sifar (sudah tentu, terdapat juga situasi apabila lebih mudah untuk mengira dari 1).

Contoh paling mudah ialah pengalamatan memori. Jika pembolehubah anda telah diperuntukkan 4bait memori dan anda tahu itu Xadalah alamat bait pertama, maka apakah alamat bagi setiap bait? , , , . Semudah itu, kami mempunyai sekumpulan bait yang boleh diakses dengan indeks , , , .X+0X+1X+2X+30123

Apabila kita memikirkan alamat relatif dalam blok data, pengindeksan daripada sifar adalah perkara yang masuk akal. Ini adalah sebab utama untuk mengira dari sifar .