Consejos de codificación Java que pueden aumentar la eficiencia mil veces
Consejos de Java para mejorar mil veces la eficiencia
1. Intente especificar el modificador final de clases y métodos
No se pueden derivar clases con modificadores finales. En la API central de Java, hay muchos ejemplos de aplicaciones finales, como java.lang.String, donde toda la clase es final. Especificar el modificador final para una clase evita que la clase se herede y especificar el modificador final para un método evita que el método se anule. Si una clase se designa como final, todos los métodos de esa clase son finales. El compilador de Java buscará oportunidades para incorporar todos los métodos finales. La incorporación desempeña un papel importante en la mejora de la eficiencia de ejecución de Java. Para obtener más información, consulte Optimización del tiempo de ejecución de Java. Esto puede mejorar el rendimiento en una media del 50%.
2. Intente reutilizar objetos tanto como sea posible
Especialmente cuando se utilizan objetos String, se debe usar StringBuilder/StringBuffer cuando se producen conexiones de cadenas. Dado que la máquina virtual Java no solo dedica tiempo a generar objetos, es posible que también deba dedicar tiempo a recolectar basura y procesarlos en el futuro. Por lo tanto, generar demasiados objetos tendrá un gran impacto en el rendimiento del programa.
3. Utilice variables locales tanto como sea posible
Los parámetros pasados al llamar al método y las variables temporales creadas durante la llamada se guardan en la pila más rápido. Las variables estáticas, las variables de instancia, etc. se crean en el montón, lo cual es lento. Además, el contenido de las variables creadas en la pila desaparece cuando finaliza el método y no se requiere recolección de basura adicional.
4. Cierre la secuencia de manera oportuna
Durante el proceso de programación Java, tenga cuidado al realizar conexiones de bases de datos y operaciones de secuencia de E/S. Después de su uso, cierre la secuencia a tiempo. para liberar recursos. Debido a que operar estos objetos grandes causará una gran sobrecarga del sistema, un poco de descuido tendrá consecuencias graves.
5. Utilice las excepciones con precaución
Las excepciones son perjudiciales para el rendimiento. Para generar una excepción, primero debe crear un nuevo objeto. El constructor de la interfaz Throwable llama al método de sincronización local llamado filllnStackTrace(). El método fillnStackTrace() verifica la pila y recopila información de seguimiento de llamadas. , la máquina virtual Java debe ajustar la pila de llamadas, porque se crea un nuevo objeto durante el procesamiento. Las excepciones solo se pueden usar para el manejo de errores y no deben usarse para controlar el flujo del programa.
6. ...catch in a loop. ··, debe colocarse en el nivel más externo
Si escribes esto sin ningún motivo, siempre que tu líder sea de mayor rango y tenga un trastorno obsesivo-compulsivo. Probablemente te regañará por el motivo por el que lo escribiste. Aparece este tipo de código basura
7. No declares la matriz como pública estática final
Porque esto no tiene sentido. simplemente define la referencia como estática final y el contenido de la matriz aún se puede cambiar a voluntad. Declarar la matriz como pública es una vulnerabilidad de seguridad, lo que significa que la matriz se puede cambiar mediante clases externas. >8. Intente utilizar singletons en situaciones apropiadas.
El uso de singletons puede reducir la carga de carga, acortar el tiempo de carga y mejorar la eficiencia de la carga, pero no se aplica a singletons en todas partes. adecuado para los siguientes tres aspectos: p>
(1) Controlar el uso de recursos y controlar el acceso concurrente a los recursos a través de la sincronización de subprocesos;
(2) Controlar la generación de instancias para lograr el propósito de ahorrar recursos;
(3) Controlar el intercambio de datos y permitir la comunicación entre múltiples procesos o subprocesos no relacionados sin establecer una correlación directa
9. Sesiones
Para borrar las sesiones que ya no están activas, muchos servidores de aplicaciones tienen un tiempo de espera de sesión predeterminado, generalmente de 30 minutos. Cuando el servidor de aplicaciones necesita guardar más sesiones, opera si no hay memoria suficiente. El sistema transferirá algunos datos al disco y el servidor de aplicaciones también puede volcar algunas sesiones inactivas al disco según el algoritmo MRU (usado más recientemente) e incluso puede generar una excepción de falta de memoria.
Si la sesión se va a volcar al disco, primero se debe serializar. En clústeres a gran escala, el costo de serializar objetos es muy elevado. Por lo tanto, cuando la sesión ya no sea necesaria, se debe llamar inmediatamente al método invalidate() de HttpSession para borrar la sesión
10. Utilice bloques de código sincronizados en lugar de métodos sincronizados
Esto. es importante en el módulo multiproceso. El artículo "Bloque de método de bloqueo sincronizado" lo ha dejado muy claro, a menos que esté seguro de que es necesario sincronizar un método completo, intente utilizar bloques de código sincronizados para evitar sincronizar código que no es necesario. sincronizarse y afectar la eficiencia de ejecución.
11. Declarar la constante como estática final y nombrarla en letras mayúsculas.
De esta manera, estos contenidos se pueden colocar en el grupo de constantes durante la compilación para evitar calcular el valor de la constante durante el tiempo de ejecución. Además, nombrar las constantes con letras mayúsculas también puede facilitar la distinción de las constantes de las variables.