C++ Y Java
En C++ el uso de punteros es común para manejar memoria dinámica. En Java no se programa con punteros, porque Java siempre utilizapunteros explícitos (direcciones de memoria). En Java “todo son punteros” -más o menos-
Java
Entrada y Salida
1
Java
Entrada y Salida
2
Referencias
Diferencias entre tiposprimitivos y Objetos int var1; MiClase objeto1; En la dirección de memoria var1 se almacena un valor entero La dirección de memoria objeto1 no apunta a los datos del objeto, sino que es una referencia alpropio objeto ( null si no se le ha asignado un objeto)
Java Entrada y Salida 3
Referencias
En C++ MiClase objeto1; crea el objeto y su memoria
“Una referencia es un puntero con la sintaxis de unavariable”
Java
Entrada y Salida
4
Asignación
En C++ ob1=ob2; copia los datos de un objeto ob2 a otro objeto ob1. En Java se copia la referencia ob1.met(); ob2.met(); Aplica el métodomet() al mismo objeto
Java Entrada y Salida 5
El operador new
Todo objeto en Java se crea con new, que devuelve una referencia al objeto. En C++ new devuelve un puntero.
En Java no podemoscorromper unos datos accediendo a su dirección de memoria.
Java
Entrada y Salida
6
1
Borrado de la memoria
En C++ se debe borrar con delete En Java no hay que preocuparse de borrar lamemoria, pues el recolector de basuras (garbage collector) borra los objetos no referenciados automáticamente.
Argumentos
En C++ se puede pasar un puntero como argumento de una función para no copiarlos datos de un objeto. En Java todos los objetos se pasan por referencia (evitando copiar objetos) y los tipos primitivos se pasan por valor (se crea una variable y se copia el valor).
JavaEntrada y Salida
7
Java
Entrada y Salida
8
Operador ==
En C++ el oreador ob1==ob2 indica si los datos de los distintos objetos son iguales En Java el operador == indica si las referencias...
Regístrate para leer el documento completo.