C++ Vs Java
El lenguaje C++ es un lenguaje derivado del C, pero mucho más complejo. Que además incluye definición de módulos (llamados clases), POO, tipificación más estricta, tratamiento de excepciones y plantillas (equivalentes a módulos genéricos).
El C++ fue estandarizado en 1998.
Mientras que el lenguaje Java es un lenguaje con una sintaxis similar a la del C++, pero unos conceptos dediseño totalmente diferentes como lo son la portabilidad de clases mediante: código intermedio estandarizado, e interpretado por una máquina virtual (portable, pero ineficiente) y las clases se cargan dinámicamente (y de sitios remotos). Gestión automática de memoria, que aumenta la fiabilidad, programación orientada a objetos, tipificación estricta, tratamiento de excepciones; recientemente,genéricos.
El Java pertenece a la empresa Sun y no está estandarizado.
Conceptos Básicos
En el siguiente cuadro se listan las palabras reservadas, aquellas que emplea el lenguaje Java, y que el programador no puede utilizar como identificadores. Algunas de estas palabras le resultarán familiares al programador del lenguaje C/C++. Las palabras reservadas señaladas con un asterisco (*) no seutilizan.
abstract | boolean | break | byte | byvalue* |
case | cast* | catch | char | class |
const* | continue | default | do | double |
else | extends | false | final | finally |
float | for | future* | generic* | goto* |
if | implements | import | inner* | instanceof |
int | interface | long | native | new |
null | operator* | outer* | package | private |
protected | public |rest* | return | short |
satatic | super | switch | synchronized | this |
throw | transient | true | try | var* |
void | volatile | while | | |
Las palabras reservadas se pueden clasificar en las siguientes categorías:
Tipos de datos: boolean, float, double, int, char
Sentencias condicionales: if, else, switch
Sentencias iterativas: for, do, while, continue
Tratamiento de lasexcepciones: try, catch, finally, throw
Estructura de datos: class, interface, implements, extends
Modificadores y control de acceso: public, private, protected, transient
Otras: super, null, this.
Comparación C++ vs JAVA
Sintaxis:
Prácticamente idéntica en C++ y Java.
Orientación a objetos:
En C++ se pueden escribir programas orientados a objetos, no orientados a objetos, o mezcla deambos (por ejemplo, tener clases con funciones globales en el mismo programa).
Java es puramente orientado a objetos; cualquier función debe pertenecer a alguna clase (es un método). Existe la función main, pero es un método estático de una clase (la clase principal)
Control sobre la plataforma (hardware + S.O.):
C y C++: el programador tiene control del procesador.
Java: el programa seejecuta 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; dicho código debe ser interpretado a posterior.
Liberación de Memoria:
C y C++: a cargo del programador(delete).
Java: automática; los objetos creados son destruidos automáticamente entre cuando se quedan sin referencias. Un proceso de la JVM llamado recolector de basura (garbage collector).
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 sonaccedidos mediante referencias (una referencia se puede considerar como el propio identificador del objeto); no existe aritmética de 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...
Regístrate para leer el documento completo.