miércoles, 26 de febrero de 2014

DIFERENCIAS ENTRE JAVA Y C++


  DIFERENCIAS MAS NOTORIAS:
 Orientación a objetos:
  • En C++ se pueden escribir programas orientados a objetos, no orientados a objetos, o mezcla de ambos (por ejemplo, tener clases con funciones globales en el mismo programa)
  • Java es puramente orientado a objetos; cualquier función debe pertenece a alguna clase (es un método). 

Control sobre la plataforma (hardware+S.O.)
  • C y C++: el programador tiene control del procesador.
  • Java: el programa se ejecuta sobre un procesador virtual (JVM) que abstrae al programador de la plataforma concreta

Código de máquina generado:
  • C y C++: el compilador genera código de máquina para una plataforma concreta
  • Java: el compilador genera código de máquina (bytecode) para el procesador JVM

Liberación de Memoria:
  • C y C++: a cargo del programador (delete).
  • Java: automática; los objetos creados son destruidos automáticamente ente cuando se quedan sin referencias.

Punteros:
  • C y C++: existen punteros con una aritmética bien definida, y entre otras cosas, permiten programador explorar la memoria del computador físico.
  • Java: no existe el concepto de puntero; los objetos son accedidos mediante referencias.

Paquetes:
  • C y C++: no existe tal concepto; lo más aproximado son los archivos de biblioteca (.h)
  • Java: un paquete es una entidad organizativa que permite agrupar clases, interfaces y excepciones, así como que sus elementos dispongan de una determinada visibilidad con respecto a elementos externos al paquete.

Conversión implícita de tipos:
  • C y C++: existe (flexibilidad para el programador)
  • Java: no existe por considerarse un mecanismo objeto de errores potenciales

Sobrecarga de funciones y operadores:
  • C++: existen ambos tipos de sobrecarga
  • Java: sólo existe la sobrecarga de funciones (métodos).

Herencia múltiple:
  • C++: existe
  • Java: no existe por considerarse poco eficiente.

Interfaces:
  • C++: no existen este concepto.
  • Java: existe el concepto de interfaz como conjunto de especificaciones de métodos y de atributos constantes.

Estructuras dinámicas:
  • C++: Librería STL
  • Java: paquete java. útil. Los nombres y el funcionamiento son distintos.

JAVA VS  C++
Compiladores:
  • C++: Muchos compiladores. Pueden ser bastante distintos.
  • Java: Un único compilador siempre igual.

Objetos:
  • C++: Ningún ancestro común.
  • Java: Todos los objetos heredan automáticamente de la clase Object.



No hay comentarios:

Publicar un comentario