C++ y Java están orientados a objetos, ¿cuál es la diferencia?
1. Punteros
El lenguaje JAVA permite a los programadores acceder directamente a los objetos sin mirar. para punteros y agrega funciones de administración automática de memoria, evitando así de manera efectiva errores de operación de punteros en el lenguaje C/C++, como fallas del sistema causadas por punteros salvajes. Pero esto no significa que JAVA no tenga punteros. Los punteros todavía se usan dentro de la máquina virtual, pero los externos no pueden usarlos. Esto es beneficioso para la seguridad de los programas Java.
2. Herencia múltiple
C++ admite herencia múltiple, que es una característica de C++ que permite que múltiples clases principales deriven una clase. Java no admite la herencia múltiple, pero permite que una clase herede múltiples interfaces (extiende + implementación), lo que implementa la función de herencia múltiple de C++ y evita muchos inconvenientes causados por la herencia múltiple en C++.
3. Tipos de datos y clases
Java es un lenguaje completamente orientado a objetos, y todas las funciones y variables deben ser parte de una clase. Todos los tipos de datos, excepto los tipos de datos primitivos, se tratan como objetos de clase, incluidas las matrices. Los objetos combinan datos y métodos, encapsulándolos en clases para que cada objeto pueda implementar su propia funcionalidad y comportamiento. C++ permite definir funciones y variables globalmente. Además, Java elimina molestias innecesarias al eliminar estructuras y uniones en c/c++.
4. Gestión automática de la memoria
Todos los objetos de un programa Java se crean en la pila de memoria utilizando el nuevo operador, que es similar al nuevo operador en C++. La siguiente declaración implica crear un objeto de clase Read y luego llamar al método de trabajo del objeto:
Read r = new Read()
r.work();
<; p>Read r = new Read(); la declaración crea una instancia de Read en la estructura de la pila. En Java, cuando un objeto ya no se utiliza, el recolector de basura lo marca para indicar que ha sido eliminado. El recolector de memoria inútil en JAVA se ejecuta en segundo plano como un hilo y funciona en tiempo de inactividad.5. Sobrecarga de operadores
Java no admite la sobrecarga de operadores. La sobrecarga de operadores se considera una característica destacada de C++ 10, pero en Java, aunque las clases pueden implementar tales funciones en gran medida, la conveniencia de la sobrecarga de operadores todavía sufre mucho.
El lenguaje Java no admite la sobrecarga de operadores para mantener el lenguaje Java lo más simple posible.
6. Preprocesamiento
Java no admite el preprocesamiento. C/C10 tiene una etapa de preprocesamiento durante la compilación llamada preprocesador.
7 Java no admite parámetros de función predeterminados, pero C/10 sí.
En el lenguaje C, el código se organiza en forma de funciones y las funciones pueden acceder a las variables globales de el programa. C/C10 agregó clases, las clases proporcionan algoritmos de clase y los algoritmos de clase son funciones conectadas a la clase.
Java no tiene funciones. Como lenguaje más puro orientado a objetos que C++, obliga a los desarrolladores a incluir todas las rutinas en las clases; de hecho, el uso de métodos para implementar rutinas puede alentar a los desarrolladores a realizar una codificación más organizada.
8 cadenas
c y c ten ten no admiten variables de cadena, y el terminador nulo se usa en los programas c y c ten ten para indicar el final de la cadena, mientras que en En Java, las cadenas se implementan a través de objetos de clase (strinR y stringBuffer), y los objetos de clase son el núcleo del lenguaje Java:
(1) Los métodos para construir cadenas y acceder a elementos de cadena se utilizan en todo el sistema. son consistentes;
(2) La clase de cadena J3Yang se define como parte del lenguaje Java, en lugar de una extensión no relacionada;
(3) Las cadenas de Java implementan valores nulos Verificación en tiempo de ejecución, lo que ayuda a eliminar ciertos errores que ocurren en tiempo de ejecución;
(4) Las cadenas Java implementan comprobaciones en tiempo de ejecución para valores nulos, lo que ayuda a eliminar ciertos errores que ocurren en tiempo de ejecución. Algunos errores;
(5) Las cadenas Java implementan la verificación en tiempo de ejecución de valores nulos. p>
(4) Las cuerdas se pueden conectar con "diez".
9 "declaración goto
La "terrible" declaración goto es una "reliquia" de c y c++ y es técnicamente una parte legal del lenguaje. El uso de declaraciones goto puede llevar a que el programa estructura Confusa y difícil de entender. La declaración goto se utiliza en subrutinas de transferencia incondicional y tecnología de ramificación multiestructura. Por varias razones, Java no proporciona una declaración goto, aunque especifica goto como palabra clave, pero no admite su uso. El programa es conciso y fácil de leer.
l0. Conversión de tipos
A veces se produce una conversión implícita de tipos de datos en c y c decimal, lo que implica realizar una conversión de tipos automáticamente. en c. ten ten, se puede asignar un valor de punto flotante a una variable entera sin la mantisa. JAVA no admite la conversión automática en c ten ten. Si es necesario, el programa debe forzarlo explícitamente.
11. Excepciones
El mecanismo de excepción en JAVA se utiliza para capturar eventos anormales y mejorar la tolerancia a fallas del sistema
intento{// Código que puede generar excepciones
p>}catch(nombre del tipo de excepción){
// Procesamiento
}