Ver Mensaje Individual
  #8 (permalink)  
Antiguo 01/08/2008, 00:28
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Diferencias entre java y C++

Cita:
Iniciado por HackmanC Ver Mensaje
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++.
Como ya he dicho, alguna gente considera que los arrays en C++ no son "verdaderos" por que como no se comprueba que te salgas del indice en tiempo de ejecución, se pueden hacer muchas "cochinadas" y pervertir su uso real de arrays. Es una cuestion semántica y como la mayoría de tales cuestiones, como si un lenguaje es OO al 100%, sirve poco más que para iniciar flames en foros .


Cita:
Iniciado por HackmanC Ver Mensaje
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.
Eliminar la aritmetica de punteros no es por los diferentes sistemas operativos donde ha de correr, es para evitar los problemas que da el abuso de los mismos, ya que los problemas de errores al usarla son dificiles de detectar y pueden tener consecuencias catastroficas. De hecho, es una de las cosas que usan virus y "exploits" para infectar programas.

Cita:
Iniciado por HackmanC Ver Mensaje
Runtime r = Runtime.getRuntime();
r.gc();
La frase más correcta escrita debió ser: "no hay forma de controlar cuando hace su trabajo". Con lo que has escrito tu puedes pedirle al GC que haga su trabajo, pero no te garantiza que limpie completamente. Lo unico que se garantiza es que "se esforzará en limpiar" . La diferencia es sutil pero importante, por si esperamos que al hacer Runtime.gc() nos haya limpiado todo y pretendemos calcular con eso el tamaño que ocupaba un objeto, por ejemplo.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.