Hola,
Solamente me gustaría aclarar lo siguiente...
Cita:
Iniciado por astaros ... Una de las diferencias entre Java y C++, es que Java introdujo arrays que realmente lo son ...
Que es un array verdadero ? C++ tiene arrays falsos ?
Quien define qué es un array ? En Java el Array es un objeto, por lo que tiene mayor funcionalidad, igual que si usas Vector:: en C++.
Cita:
Iniciado por astaros ... y eliminaron la aritmetica de punteros ...
La aritmetica de punteros se eliminó completamente, puesto que Java es un lenguage que funciona en diferentes sistemas operativos y arquitecturas. Funciona indistintamente en un procesador de 16, 32 o 64 bits sin necesidad de compilar de nuevo el código, al contrario de C++. Creo que ocultando los punteros al programador (acceso directo a memoria) fue importante para eliminar los inconvenientes entre varias arquitecturas de hardware y software.
Pero tiene un concepto de "referencias", que en su debido límite viene a compararse a los punteros.
Código:
// ************ Java
public class Test {
private class _v {
public _v(int v) { value = v; };
public int value;
}
public Test() {
_v p = new _v(1);
_v q;
q = p;
System.out.println(p.value + " " + p.toString()); // 1 Test$_v@19821f
System.out.println(q.value + " " + q.toString()); // 1 Test$_v@19821f
}
public static void main(String[] args) {
new Test();
}
}
// ************ C++
#include "iostream"
using namespace std;
class _v {
public:
_v(int v) { value = v; };
int value;
};
int main() {
_v* p = new _v(1);
_v* q;
q = p;
cout << p->value << " " << (void *)p << endl; // 1 00032E18
cout << q->value << " " << (void *)q << endl; // 1 00032E18
delete q;
return 0;
}
En Java, q hace referencia a p de una forma parecida a un puntero.
En C, son punteros. (Solo hay 1 instancia de _v en los dos ejemplos).
Cita:
Iniciado por djagu_26 ... ya que posee un GC(garbage collector) que cuando pasa(automatica no hay forma de llamarlo) ...
Runtime r = Runtime.getRuntime();
r.gc();
Cita:
Iniciado por Xinef ... que tenga tipos de datos primitivos o básicos le quita porcentaje.
. Es decir, Java no es orientado a objetos "puro".
Para cada tipo primitivo hay una clase que encapsula el tipo.
Saludos,