En esta entrada trataremos sobre las diferencias existen entre los lenguajes de programación C/C++ y Java bajo los criterios de orientado a objetos, código de maquina generado, punteros, sobrecarga de funciones y operadores, entre otros.
Orientado a objetos
C++: Se pueden escribir programas orientados a objetos, no orientados a objetos, o una mezcla de ambos.
Java: Puramente orientado a objetos: cualquier función debe pertenecer a alguna clase. La función main es un método estático de la clase principal.
Código de máquina generado
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. Dicho código debe ser interpretado posteriormente para su ejecucion.
Punteros
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 (una referencia se puede considerar como el propio identificador del objeto). No existe aritmética de referencias.
Sobrecarga de funciones y operadores
C++: Existen ambos tipos de sobrecarga.
Java: Sólo existe la sobrecarga de funciones (métodos). Los operadores que existen ya vienen sobrecargados por el compilador como por el ejemplo el operador "+" para sumar números o concatenar cadenas.
Objetos
C++: Ningún ancestro común.
Java: Todos los objetos heredan automáticamente de la clase Object.
Orientado a objetos
C++: Se pueden escribir programas orientados a objetos, no orientados a objetos, o una mezcla de ambos.
Java: Puramente orientado a objetos: cualquier función debe pertenecer a alguna clase. La función main es un método estático de la clase principal.
Código de máquina generado
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. Dicho código debe ser interpretado posteriormente para su ejecucion.
Punteros
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 (una referencia se puede considerar como el propio identificador del objeto). No existe aritmética de referencias.
Sobrecarga de funciones y operadores
C++: Existen ambos tipos de sobrecarga.
Java: Sólo existe la sobrecarga de funciones (métodos). Los operadores que existen ya vienen sobrecargados por el compilador como por el ejemplo el operador "+" para sumar números o concatenar cadenas.
Objetos
C++: Ningún ancestro común.
Java: Todos los objetos heredan automáticamente de la clase Object.
No hay comentarios:
Publicar un comentario