C++ vs java

Solo disponible en BuenasTareas
  • Páginas : 7 (1732 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de febrero de 2011
Leer documento completo
Vista previa del texto
Diferencias entre C++ y Java
Posted noviembre 23, 2007 by Abelardo Jara in Programacion C++ en Linux. 4 comentarios
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 de ambos (por ejemplo, tener clases
con funciones globales en el mismo programa)
Java es puramente orientado aobjetos; cualquier función debe pertenecer
a alguna clase (es un método). Existe la función main, pero es un método,
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 se ejecuta sobre un procesador virtual (JVM) que
abstrae al programador de la plataforma concretaCó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 posteriori
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 sinreferencias. 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 son accedidos
mediante referencias (una referencia se puede considerar como el propio
propio identificadordel 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
determinada visibilidad con respecto a elementos externos al paquete
Conversión implícita de tipos:
Cy 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); Los
operadores que existen ya vienen sobrecargados por el compilador,
(p.e. + para sumar números o concatenar cadenas).
Herenciamúltiple:
C++: existe
Java: no existe por considerarse poco eficiente (esto implicó algunas
críticas a Java desde ciertos sectores)
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.util. Los nombres y el funcionamiento son distintos.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.

Java

Características del lenguaje Java
Lenguaje simple
Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantesdesde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivosen poco tiempo.
Orientado a objetos
Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la programación orientada a objetos, especialmente en entornos cada vez más complejos y basados en...
tracking img