Red de conocimiento informático - Problemas con los teléfonos móviles - Swift java rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento.

Swift java rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento rendimiento.

Pasar de Java a Swift es relativamente fácil. En comparación con Objective-C, la sintaxis de Swift está más cerca de Java y más parecida al reciente Kotlin. Swift admite tanto la programación orientada a objetos como la programación funcional. Swift es más potente y fácil de usar que Java. Existe una comparación aproximada entre Java y Swift en Internet:

Componentes básicos

1. Swift no tiene una función principal y es un poco como un lenguaje de programación. El punto de entrada predeterminado para un programa Swift es el archivo main.swift y, en las aplicaciones de iOS, el archivo AppDelegate.swift suele estar marcado como @UIApplicationMain. Se puede comparar con una aplicación definida en AndroidManifest.xml.

2.Swift no necesita definir terminadores de línea, es como un lenguaje de scripting.

3.Swift usa var para definir variables. Generalmente, no es necesario especificar un tipo de datos específico; el compilador lo juzgará por sí mismo. En caso de que el compilador no pueda saberlo, es necesario especificarlo explícitamente.

4.Swift usa let para definir constantes y static final usa Java.

5. Arrays y arrays en Java son el mismo concepto. Los diccionarios son mapas en Java. El valor del diccionario es diccionario [clave] y la interfaz es tan simple y conveniente como una matriz.

6.nil en Swift es similar a null en Java. Nil no se inicializó correctamente, pero no tiene valor.

7. Valor opcional significa que el valor puede ser cero. De forma predeterminada, Swift no puede asignar nil a una var a menos que se declare opcional. Opcional no se puede generar directamente y debe descomprimirse en forma de valor opcional. . Es un poco como el juicio vacío empaquetado en Java. ¡Funciona también! ¿en cambio? Declarar una variable sin expansión.

Control lógico

1. La sintaxis del cambio de Swift es similar a Java y C, pero no interrumpe y saldrá automáticamente del cambio cuando encuentre un caso. Para que varias situaciones diferentes se manejen de la misma manera, varias condiciones pueden ir seguidas de un caso, separadas por comas.

2. El conmutador de Swift admite operaciones, lo que significa que no solo es igual, sino que también admite el cumplimiento de requisitos específicos.

3. El bucle while es básicamente el mismo que el bucle en Java o C, pero la condición se escribe directamente después del while sin paréntesis.

4.4. El bucle for es básicamente el mismo que el de Java, pero no requiere paréntesis. En un bucle for,...

cada bucle.

Función

1. La definición de funciones es muy diferente a la de Java. La definición de la función Swift es la siguiente: nombre de la función func (argname: tipo) ->; tipo de retorno:

2. La función Swift puede devolver múltiples valores de retorno, lo cual es realmente poderoso.

3. Las funciones Swift pueden recibir parámetros indefinidos, básicamente similar a Java.

4. Las funciones se pueden anidar, algo que Java o C no tienen, y es bastante fácil de usar. Por ejemplo, a menudo hay una sección de lógica que es demasiado larga y no puede implementarse mediante una sola función. En Java o C, es común dividirse en varias funciones para que cada función sea breve y única. Sin embargo, las funciones así separadas no prueban que sean funcionales ni que sean lo suficientemente "cohesivas". Esta funcionalidad Swift anidada se puede implementar mejor.

5.Swift admite tipos de funciones, que determinan un tipo de función en función de los parámetros de entrada y los valores de retorno. Los tipos de funciones permiten que las funciones se utilicen como tipos de datos normales. Por ejemplo, el argumento de una función puede ser otra función. Tenga en cuenta que no es el valor de retorno de otra función, sino de otra función, siempre que los tipos coincidan. Esto es equivalente al polimorfismo a nivel de función, que es realmente poderoso.

6.Swift admite cierres, que creo que pueden entenderse como "funciones anónimas". Solo necesita describir la entrada y la salida, y separar las descripciones de entrada y salida con in. Ya es el cuerpo de una función y no es necesario definir un nombre de función.

Constructores de categorías y estructuras

1. La clase se llama init() directamente. Las llamadas a funciones de clase son básicamente las mismas que las de Java y C. Self es el equivalente Java de esto.

2. En Swift, los niveles de control de acceso de los miembros de la clase son público, interno y privado, que corresponden a público, protegido y privado en Java.

3.deinit es un destructor. También hay una función finalize() en Java. Sin embargo, no se garantiza que se llame a la función finalize() de Java, por lo que no se recomienda reescribir esta función.

4. La herencia de clases es un poco como C, use:.

5. A diferencia de Java, sus funciones setter y getter se llaman implícitamente. Creo que la idea de diseño de Swift es que los usuarios solo deben preocuparse por la entrada y la salida, y no preocuparse por nada más. Como si solo tuvieras que preocuparte por instalarte o llegar hasta aquí. Las funciones específicas de configuración y obtención están encapsuladas y no requieren que los usuarios se preocupen. Otro ejemplo es el tipo de método mencionado anteriormente. Siempre que se definan entrada y salida, se define un método, por lo que existen muchas implementaciones específicas de este tipo.

6.La enumeración Swift es similar a Java, esencialmente una clase que puede contener funciones.

Estructura del 7.7. Swift y las clases son básicamente iguales, excepto que las estructuras pasan una copia del contenido, mientras que las clases pasan una referencia. Esto es asombroso.

8. Las enumeraciones también admiten valores asociados, que no están disponibles en Java.

9. El protocolo es similar a la interfaz en Java.

10. Las extensiones son poderosas, incluso pervertidas. Puede agregar dinámicamente funciones y variables miembro a una clase y hacer que una clase implemente dinámicamente un protocolo sin modificar el código fuente de la clase. Agregar variables miembro, agregar funciones e implementar una interfaz en Java solo se puede lograr mediante herencia. Esto se implementa directamente y tiene efecto en todos los objetos de la clase, incluidos los creados antes de extender.

11. Los genéricos de Swift son similares a Java. Los genéricos Swift admiten declaraciones Where, que se pueden utilizar para un control más preciso además del control de tipos.

Gestión de memoria

Swift es similar a Java y no necesita gestionar la memoria por sí mismo. Swift recicla la memoria a través del mecanismo ARC (recuento automático de referencias), y Java tiene un mecanismo de recolección de basura para garantizar el reciclaje oportuno de la memoria. Sin embargo, los mecanismos de reciclaje de los dos son diferentes. Tengo entendido que el mecanismo ARC de Swift se centra en objetos no válidos, es decir, objetos a los que nadie hace referencia. Por lo tanto, si se hace referencia cíclicamente a dos objetos, no se pueden reciclar, lo que provoca una fuga. En este punto, necesita una referencia débil o una referencia inacabada para romper el ciclo.

El mecanismo de recolección de basura de Java se centra en qué objetos son válidos, es decir, algunos de los objetos a los que hace referencia GC Root son válidos y otros no. Por lo tanto, incluso si los objetos se refieren entre sí, el recolector de basura los reciclará siempre que GC Root no haga referencia a ellos. Desde esta perspectiva, la estrategia de Java es mejor. También podemos ver lo importante que es mirar los problemas desde otra perspectiva.