1. Cómo se organiza la memoria
Cada computadora tiene memoria interna . ¿Qué es? ¿Qué propiedades tiene? Y, lo más importante, ¿en qué nos beneficia?
Cada programa (incluidos los programas escritos en Java) se carga en la memoria principal antes de ejecutarse. La memoria principal contiene el código del programa (que es ejecutado por el procesador), así como los datos del programa (es decir, datos que el propio programa pone en la memoria).
¿Qué es la memoria y cómo es?
Una hoja de cálculo de Excel consta de celdas . Cada celda tiene su propio identificador único ( A1
, A2
, ... B1
, B2
). Si conoce el identificador de una celda , siempre puede escribir algún valor en él u obtener cualquier valor que esté almacenado allí. La memoria de la computadora está organizada de una manera muy similar.
El programa y los datos del programa se almacenan en la memoria cuando el programa se está ejecutando. Toda la memoria de la computadora está compuesta por pequeñas celdas llamadas bytes . Cada celda tiene un identificador único, o número, asociado a ella: 0
, 1
, 2
, 3
, ...; (la numeración empieza desde cero). Si conocemos el número de una celda , podemos guardar datos en ella. O obtener datos de él. Algunas celdas almacenan el código del programa, es decir, el conjunto de comandos para el procesador. Otros almacenan los datos utilizados por el programa. El número de la celda también se llama la dirección de la celda .
El procesador sabe cómo ejecutar comandos que se han cargado en la memoria. Casi todos los comandos del procesador son algo así como tomar datos de algunas celdas , hacer algo con ellos y luego enviar el resultado a otras celdas .
Combinamos cientos de comandos simples para obtener comandos complejos y útiles.
Cuando se declara una variable en el código, se le asigna una parte de la memoria que aún no se está utilizando. Suele ser unos pocos bytes. Declarar una variable requiere que indiques el tipo de información que el programa almacenará en ella: números, texto u otros datos. Después de todo, si no sabe el tipo de información que se almacenará, entonces no está claro qué tamaño de bloque de memoria debe asignarse para la variable.
En los albores de la era de las computadoras, los programas trabajaban directamente con direcciones de memoria, pero luego, para conveniencia de los programadores, las celdas comenzaron a recibir nombres. Un nombre de variable único es sobre todo para la comodidad de los programadores, ya que el programa maneja bien las direcciones de memoria simples.
2. Variables en memoria
En total, Java tiene 4 tipos de datos para almacenar números enteros. Estos son byte
, short
y int
.long
Tipo | Tamaño en bytes | Origen del nombre del tipo |
---|---|---|
byte |
1 |
byte es una reelaboración deliberada de mordida para evitar confusiones con bit |
short |
2 |
Abreviatura de entero corto |
int |
4 |
Abreviatura de entero |
long |
8 |
Abreviatura de entero largo |
Además, Java tiene 2 tipos de números reales: float y double:
Tipo | Tamaño en bytes | Origen del nombre del tipo |
---|---|---|
float |
4 |
Abreviatura de número de punto flotante |
double |
8 |
Abreviatura de doble flotador |
Cada vez que la ejecución del programa llega a un comando para crear una variable, se le asigna un pequeño bloque de memoria (el tamaño depende del tipo de variable).
Los programas Java no pueden acceder a la memoria directamente. Todo el trabajo con la memoria ocurre solo a través de la máquina virtual Java.
3. El String
tipo en la memoria
El String
tipo puede almacenar grandes cantidades de datos, lo que implica que no es solo un tipo de datos, sino una clase completa.
El String
objeto se coloca en un bloque de memoria asignado que almacena la dirección de otro bloque de memoria en el que se almacena el texto.
La int
a
variable ocupa 4
bytes y almacena el valor 1
.
La int
b
variable ocupa 4
bytes y almacena el valor 10,555
. Usamos una coma como separador de miles. Y usamos un punto como separador decimal.
La double
d
variable ocupa 8
bytes y almacena el valor 13.001
.
La String
str
variable ocupa 4
bytes y almacena el valor G13
, que es la dirección de la primera celda del bloque de memoria que contiene el texto.
Un texto del String
object
se almacena en un bloque de memoria separado. La dirección de su primera celda se almacena en la str
variable.
4. Por qué la numeración empieza por cero en programación
La gente suele preguntarse por qué los programadores casi siempre empiezan a contar desde cero. Bueno, el hecho es que hay muchas situaciones en las que es más conveniente contar desde cero (por supuesto, también hay situaciones en las que es más conveniente contar desde 1
).
El ejemplo más simple de es el direccionamiento de memoria. Si a su variable se le han asignado 4
bytes de memoria y sabe que esa X
es la dirección del primer byte, ¿cuáles son las direcciones de cada byte? , , , . Tan simple como eso, tenemos un grupo de bytes a los que se puede acceder con los índices , , , .X+0
X+1
X+2
X+3
0
1
2
3
Cuando pensamos en una dirección relativa dentro de un bloque de datos, la indexación desde cero es lo que tiene sentido. Esta es la principal razón para contar desde cero .
GO TO FULL VERSION