1. Como a memória é organizada

Todo computador tem memória interna . O que é? Que propriedades tem? E, mais importante, como isso nos beneficia?

Todo programa (incluindo programas escritos em Java) é carregado na memória principal antes de ser executado. A memória principal contém o código do programa (que é executado pelo processador), bem como os dados do programa (ou seja, dados que o próprio programa coloca na memória).

O que é memória e como ela é?

Uma planilha Excel consiste em células . Cada célula tem seu próprio identificador exclusivo ( A1, A2, ... B1, B2). Se você conhece o identificador de uma célula , sempre pode escrever algum valor nela ou obter qualquer valor armazenado lá. A memória do computador é organizada de maneira muito semelhante.

O programa e os dados do programa são armazenados na memória quando o programa está em execução. Toda a memória do computador é composta por pequenas células chamadas bytes . Cada célula tem um identificador único, ou número, associado a ela: 0, 1, 2, 3, ...; (a numeração começa do zero). Se soubermos o número de uma célula , podemos salvar dados nela. Ou obtenha dados dele. Algumas células armazenam o código do programa, ou seja, o conjunto de comandos para o processador. Outros armazenam os dados usados ​​pelo programa. O número da célula também é chamado de endereço da célula .

O processador sabe como executar comandos que foram carregados na memória. Quase todos os comandos do processador são algo como pegar dados de algumas células , fazer algo com eles e então enviar o resultado para outras células .

Combinamos centenas de comandos simples para obter comandos complexos e úteis.

Quando uma variável é declarada no código, um pedaço de memória que ainda não está sendo usado é alocado para ela. Isso geralmente é alguns bytes. A declaração de uma variável requer que você indique o tipo de informação que o programa armazenará nela: números, texto ou outros dados. Afinal, se você não conhece o tipo de informação a ser armazenada, não está claro o tamanho de um bloco de memória que precisa ser alocado para a variável.

No alvorecer da era do computador, os programas trabalhavam diretamente com endereços de memória, mas depois, para conveniência dos programadores, as células começaram a receber nomes. Um nome de variável exclusivo é, acima de tudo, para a conveniência dos programadores, uma vez que o programa lida com endereços de memória simples muito bem.


2. Variáveis ​​na memória

Ao todo, Java tem 4 tipos de dados para armazenar números inteiros. Estes são byte, shorte int.long

Tipo Tamanho em bytes Origem do nome do tipo
byte 1 byte é uma soletração deliberada de mordida para evitar confusão com bit
short 2 Abreviação de Inteiro Curto
int 4 Abreviação de Inteiro
long 8 Abreviação de inteiro longo

Além disso, Java possui 2 tipos para números reais: float e double:

Tipo Tamanho em bytes Origem do nome do tipo
float 4 Abreviação de número de ponto flutuante
double 8 Abreviação de Double Float

Cada vez que a execução do programa atinge um comando para criar uma variável, um pequeno bloco de memória é alocado para ela (o tamanho depende do tipo da variável).

O endereço de uma variável é o endereço da primeira célula do bloco de memória alocado.

Os programas Java não têm permissão para acessar a memória diretamente. Todo e qualquer trabalho com memória acontece apenas através da máquina virtual Java.


3. O Stringtipo na memória

O Stringtipo pode armazenar grandes quantidades de dados, o que implica que não é apenas um tipo de dados, mas uma classe completa.

O Stringobjeto é colocado em um bloco de memória alocado que armazena o endereço de outro bloco de memória no qual o texto está armazenado.

A int avariável ocupa 4bytes e armazena o valor 1.

A int bvariável ocupa 4bytes e armazena o valor 10,555. Usamos uma vírgula como separador de milhar. E usamos um ponto como separador decimal.

A double dvariável ocupa 8bytes e armazena o valor 13.001.

A String strvariável ocupa 4bytes e armazena o valor G13, que é o endereço da primeira célula do bloco de memória que contém o texto.

Um texto do String objecté armazenado em um bloco separado de memória. O endereço de sua primeira célula é armazenado na strvariável.


4. Por que a numeração começa com zero na programação

Muitas vezes as pessoas se perguntam por que os programadores quase sempre começam a contar do zero. Bem, o fato é que existem muitas situações em que é mais conveniente contar a partir do zero (claro, também existem situações em que é mais conveniente contar a partir de 1).

O exemplo mais simples é o endereçamento de memória. Se sua variável recebeu 4bytes de memória e você sabe que esse Xé o endereço do primeiro byte, quais são os endereços de cada byte? , , , . Simples assim, temos um grupo de bytes que podem ser acessados ​​com índices , , , .X+0X+1X+2X+30123

Quando pensamos em um endereço relativo dentro de um bloco de dados, a indexação a partir do zero é o que faz sentido. Esta é a principal razão para contar a partir do zero .