Está en la página 1de 2

Lenguajes C, C++ Java

Sintaxis: Prácticamente idéntica en Prácticamente idéntica en


C++ y Java C++ y Java

Orientación a objetos: Se pueden escribir Es puramente orientado a


programas orientados a objetos; cualquier función
objetos, no orientados a debe pertenecer a alguna
objetos, o mezcla de clase (es un método).
ambos (por ejemplo, Existe la función main,
tener clases con pero es un método, pero
funciones globales en el es un método estático de
mismo programa) una clase (la clase
principal)
Control sobre la El programador tiene El programa se ejecuta
plataforma control del procesador. sobre un procesador
(hardware+S.O.): virtual (JVM) que abstrae
al programador de la
plataforma concreta.
Código de máquina El compilador genera El compilador genera
generado: código de máquina para código de máquina
una plataforma concreta. (bytecode) para el
procesador JVM; dicho
código debe ser
interpretado a posteriori.
Liberación de Memoria: A cargo del programador Automática; los objetos
(delete). creados son destruidos
automáticamente cuando
se quedan sin
referencias. Un proceso
de la JVM llamado
recolector de basura
(garbage collector).
Punteros: Existen punteros con una No existe el concepto de
aritmética bien definida, y puntero; los objetos son
entre otras cosas, accedidos mediante
permiten programador referencias (una
explorar la memoria del referencia se puede
computador físico. considerar como el propio
identificador del objeto);
no existe aritmética de
referencias.
Paquetes: No existe tal concepto; lo Un paquete es una
más aproximado son los entidad organizativa que
archivos de biblioteca permite agrupar clases,
(.h). 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 Existe (flexibilidad para el No existe por
tipos: programador). considerarse un
mecanismo objeto de
errores potenciales.
Sobrecarga de Existen ambos tipos de Sólo existe la sobrecarga
funciones y sobrecarga. de funciones (métodos);
operadores: Los operadores que
existen ya vienen
sobrecargados por el
compilador, (p.e. + para
sumar números o
concatenar cadenas).
Herencia múltiple: Existe. No existe por
considerarse poco
eficiente (esto implicó
algunas críticas a Java
desde ciertos sectores).
Interfaces: No existe este concepto. Existe el concepto de
interfaz como conjunto de
especificaciones de
métodos y de atributos
constantes.
Estructuras dinámicas: Librería STL Paquete java.util. Los
nombres y el
funcionamiento son
distintos.
Compiladores: Muchos compiladores. Un único compilador
Pueden ser bastante siempre igual.
distintos.
Objetos: Ningún ancestro común. Todos los objetos
heredan
automáticamente de la
clase Object.

También podría gustarte