1. Urządzenie pamięci

Każdy komputer ma pamięć RAM . Co to jest, jakie ma właściwości, a przede wszystkim co nam daje?

Każdy program (w tym programy napisane w Javie) jest ładowany do pamięci RAM przed wykonaniem . Pamięć RAM zawiera kod programu (który jest wykonywany przez procesor) oraz dane programu (które sam program umieszcza w pamięci).

Co to jest pamięć RAM i jak wygląda?

Wyobraź sobie Excel 😎 Strona w Excelu składa się z komórek , a każda komórka ma swój unikalny numer ( A1, A2, ... B1, B2). Znając numer komórki , zawsze możesz wpisać do niej jakąś wartość lub pobrać wartość, która jest tam przechowywana. Pamięć komputera jest bardzo podobna.

Program i jego dane są przechowywane w pamięci podczas pracy . Cała pamięć komputera jest reprezentowana w postaci małych komórek- bajtów . Każda komórka ma swój unikalny numer - 0, 1, 2, 3, ...; (numeracja zaczyna się od zera). Znając numer komórki możemy w tej komórce przechowywać pewne dane. Albo zabierz je od niej. Niektóre komórki przechowują kod programu - zestaw instrukcji dla procesora, inne - dane tego programu. Numer komórki jest również nazywany adresem komórki .

Procesor jest w stanie wykonywać instrukcje z programu załadowanego do pamięci. Prawie wszystkie polecenia procesora są mniej więcej takie: pobierz dane z niektórych komórekzrób coś z nimiumieść wynik w innych komórkach

Łącząc setki prostych poleceń, otrzymujemy złożone i przydatne polecenia.

Gdy zmienna jest deklarowana w kodzie programu, przydzielana jest jej część nieużywanej pamięci . Zwykle jest to kilka bajtów. Deklarując zmienną, należy określić typ informacji, które program będzie w niej przechowywał: liczby, tekst lub inne dane. W końcu nie znając rodzaju informacji, nie jest jasne, jaki rozmiar bloku pamięci należy przeznaczyć na zmienną.

U zarania przemysłu komputerowego programy działały po prostu z numerami komórek pamięci, ale potem, dla wygody programistów, komórkom zaczęto nadawać nazwy. Unikalna nazwa zmiennej służy przede wszystkim wygodzie programistów: program podczas działania poradziłby sobie z liczbami.


2. Zmienne w pamięci

W sumie Java ma 4 typy danych do przechowywania liczb całkowitych. To jest byte, short, inti long.

Typ Rozmiar, bajty Pochodzenie nazwy
byte 1 Bajt , ponieważ zajmuje jeden bajt pamięci
short 2 Skrót od krótkiej liczby całkowitej
int 4 Skrót od liczby całkowitej
long 8 Skrót od długiej liczby całkowitej

Również w Javie istnieją 2 typy rzeczywiste - float i double:

Typ Rozmiar, bajty Pochodzenie nazwy
float 4 Skrót od liczby zmiennoprzecinkowej
double 8 Skrót od Double Float

Za każdym razem, gdy wykonanie programu dochodzi do instrukcji tworzenia zmiennej, zostaje jej przydzielony niewielki obszar pamięci (wielkość zależy od typu zmiennej).

Adres zmiennej to adres pierwszej komórki przydzielonego jej bloku pamięci.

Programy Java nie mają bezpośredniego dostępu do pamięci. Cała praca z pamięcią odbywa się tylko za pośrednictwem maszyny Java.


3. Wpisz Stringw pamięci

Typ Stringmoże przechowywać duże ilości danych, więc nie jest to tylko typ danych, ale kompletna klasa.

Same dane typu (tekst) Stringumieszczane są w specjalnym obiekcie, dla którego przydzielona jest pamięć, a adres tego obiektu jest już umieszczony w zmiennej, dla której również przydzielona jest pamięć.

Zmienna int a zajmuje 4bajty i przechowuje wartość 1.

Zmienna int b zajmuje 4bajty i przechowuje wartość 10,555. Przecinek nie jest częścią ułamkową liczby, ale separacją cyfr. Część ułamkowa jest oddzielona kropką

Zmienna double d zajmuje 8bajt i przechowuje wartość 13.001.

Zmienna String str zajmuje 4bajty i przechowuje wartość G13- adres pierwszej komórki obiektu zawierającego tekst.

String object (zawierający tekst) jest przechowywany w osobnym bloku pamięci. Adres jego pierwszej komórki jest przechowywany w zmiennej str.


4. Dlaczego w programowaniu wszystko jest numerowane od zera

Ludzie bardzo często zastanawiają się, dlaczego w programowaniu niemal wszędzie zaczyna się od zera. Faktem jest, że jest wiele sytuacji, w których wygodniej jest liczyć od zera (choć są też sytuacje, w których wygodniej jest liczyć od 1).

Najprostszą z tych sytuacji jest adresowanie pamięci. Jeśli 4do Twojej zmiennej został przydzielony bajt pamięci i masz X- adres pierwszego bajtu, to jakie będą adresy wszystkich bajtów? , , , . Tutaj otrzymaliśmy już grupę bajtów z indeksami , , , .X+0X+1X+2X+30123

Kiedy myślimy o adresie względnym w bloku danych, zawsze otrzymujemy numerację od zera. Jest to pierwszy i najczęstszy powód liczenia od zera .