Red de conocimiento informático - Aprendizaje de programación - ¿Cuál es la diferencia entre Java y C#?

¿Cuál es la diferencia entre Java y C#?

1. Archivos fuente. C# puede estar en un archivo .cs. Aparecen varios espacios de nombres (espacios de nombres, algunos similares al paquete) y se definen varias clases. C# contiene directivas de preprocesamiento.

2. Tipo de datos.

a) C# define struct (estructura), que no puede ser abstracta ni heredada, y es un tipo de valor.

b) C# no tiene concepto de tipos básicos, todos son tipos orientados a objetos e int es la abreviatura de Int32.

c) En Java, const es una palabra reservada y final tiene el mismo significado que const en C#. También hay una palabra de solo lectura en C# que permite la asignación de valores iniciales en tiempo de ejecución.

d) Para comparar cadenas, puede usar = para comparar valores en C# y, al igual que Java, usar StringBuffer para reducir la sobrecarga de memoria.

3. Aspectos del operador. C# agrega Marcado y Sin marcar para evitar errores de compilación. Por ejemplo, "Pague un largo a int32. Si el 32 alto es cero, no habrá ningún error. De lo contrario, habrá un error de desbordamiento. Sin marcar le dice al compilador que no se preocupe por el desbordamiento y lo convierta tanto como sea posible. "

4. Aspecto de la oración ramificada. Goto es una palabra reservada en Java. Los casos en switch en C# no se ejecutarán secuencialmente y debe haber una palabra clave break o goto al final.

5. No parece haber diferencia en las declaraciones de bucle.

6. Modificadores de acceso. Poner main en el alcance. C# agrega interno e interno protegido. El primero significa que solo se puede ver desde el ensamblado actual, es decir, un DLL o EXE que se puede ensamblar en tiempo de compilación, similar a un JAR; significa que es visible para el ensamblaje actual o se incluirá a partir de ahora. Las clases heredadas de clases son visibles. Sellado es equivalente a la palabra clave final en Java.

7. Métodos. Al igual que Java, solo los tipos básicos se pasan por valor, otros se pasan por referencia. Sin embargo, C# también puede pasar tipos básicos por referencia, utilizando la palabra clave ref. La palabra clave out es algo similar a los procedimientos almacenados de Oracle. La diferencia con ref es que el método ignora el valor inicial del parámetro out y el método debe asignar un valor al parámetro out.

8. Atributos. Getter y Setter se escriben de manera diferente.

9. Herencia. C# agrega la palabra clave base para apuntar a la clase principal. En C#, la subclase solo puede anular aquellos métodos con la palabra clave virtual en la clase principal, y es necesario declarar la anulación al reescribir. Al igual que las clases abstractas, la palabra clave abstracta también debe anularse. La interfaz en C# no puede declarar constantes y las propiedades de la interfaz solo representan Getter o Setter.

10. No disponible en Java (Java realiza eventos implementando una clase de escucha personalizada). C# define delegados similares a punteros de función para implementar eventos.

11. Sobrecarga del operador. Ninguno en Java. La sobrecarga del operador debe ser un método estático de la clase, la sobrecarga == y otras operaciones de igualdad también deben sobrecargarse.

12. Aspectos anormales. Es muy similar a Java, excepto que no hay una palabra clave throws y no es necesario interceptar la excepción (por supuesto, debe interceptarse en la entrada principal del programa).

13. C# agrega un indexador, que puede acceder a clases o estructuras como matrices. Personalmente, creo que faltan algunas palabras, lo que todavía causa cierta confusión.

14. El atributo de C# es mucho más potente que la anotación de Java. Sin embargo, después de agregar AOP, este tipo de función dinámica de Java también es buena.

15. En C#, también puedes usar punteros directamente para asignar o recuperar memoria. Solo necesitas usar dos palabras clave, inseguro y fijo. 0 Comentarios.