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