Ahora que ya sabemos un poco más sobre las referencias en Java, vamos a compararlas con los punteros de C y C++.
Los punteros en C y C++ están orientados hacia un modelo físico de funcionamiento. Es decir, que el modelo de punteros se mapea directamente sobre el modelo hardware. Este modelo asume cosas como el no movimiento, lo que hace que mecanismos como la liberación automática resulten mucho menos eficientes o simplemente imposibles. Cosas como la distribución en redes y la persistencia de objetos son muy difíciles de conseguir en C y C++. Aunque no hay implementaciones en Java, por ahora, para la persistencia y la distribución, la característica opaca de las referencias en Java hace que el soporte para estas prestaciones sea mucho más simple.
C y C++ permiten el uso de punteros de tal forma que podemos corromper el
sistema, cosa que no puede suceder con las referencias en Java. Cualquier
intento de hacer esto sería abortado por el compilador o por el sistema en
ejecución (lanzando una excepción). C y C++ dejan la protección de memoria al
sistema operativo, que solamente tiene el recurso de generar un error del
sistema cuando un puntero accede a una posición no válida. Por el contrario, con
el uso de las referencias, Java nos protege contra nuestras propias tendencias
autodestructivas.
|
|
[Anterior] [Indice] [Siguiente] |