Diferencias Entre C y Java

Embed Size (px)

Citation preview

Lenguajes Sintaxis:

C, C++ Java Prcticamente idntica en Prcticamente idntica en C++ y Java C++ y Java 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) El programador tiene control del procesador. Es puramente orientado a objetos; cualquier funcin debe pertenecer a alguna clase (es un mtodo). Existe la funcin main, pero es un mtodo, pero es un mtodo esttico de una clase (la clase principal) El programa se ejecuta sobre un procesador virtual (JVM) que abstrae al programador de la plataforma concreta. El compilador genera cdigo de mquina (bytecode) para el procesador JVM; dicho cdigo debe ser interpretado a posteriori. Automtica; los objetos creados son destruidos automticamente cuando se quedan sin referencias. Un proceso de la JVM llamado recolector de basura (garbage collector). 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 aritmtica de referencias. Un paquete es una entidad organizativa que permite agrupar clases, interfaces y excepciones, as como que sus

Orientacin a objetos:

Control sobre la plataforma (hardware+S.O.):

Cdigo de mquina generado:

El compilador genera cdigo de mquina para una plataforma concreta.

Liberacin de Memoria:

A cargo del programador (delete).

Punteros:

Existen punteros con una aritmtica bien definida, y entre otras cosas, permiten programador explorar la memoria del computador fsico.

Paquetes:

No existe tal concepto; lo ms aproximado son los archivos de biblioteca (.h).

Conversin implcita de tipos:

Existe (flexibilidad para el programador).

Sobrecarga de funciones y operadores:

Existen ambos tipos de sobrecarga.

Herencia mltiple:

Existe.

Interfaces:

No existe este concepto.

Estructuras dinmicas:

Librera STL

Compiladores:

Objetos:

Muchos compiladores. Pueden ser bastante distintos. Ningn ancestro comn.

elementos dispongan de una determinada visibilidad con respecto a elementos externos al paquete. No existe por considerarse un mecanismo objeto de errores potenciales. Slo existe la sobrecarga de funciones (mtodos); Los operadores que existen ya vienen sobrecargados por el compilador, (p.e. + para sumar nmeros o concatenar cadenas). No existe por considerarse poco eficiente (esto implic algunas crticas a Java desde ciertos sectores). Existe el concepto de interfaz como conjunto de especificaciones de mtodos y de atributos constantes. Paquete java.util. Los nombres y el funcionamiento son distintos. Un nico compilador siempre igual. Todos los objetos heredan automticamente de la clase Object.