1. En bucles importantes, elimine las llamadas a métodos al juzgar la terminación del bucle.
Copie el código de código de la siguiente manera:
for(int i=0; i<colección.size(); i++)
{
...
}
for(int i=0; i<colección.size(); i++)
{
...
}
Reemplazar con…
Copie el código de código de la siguiente manera:
¿Ver copia simple en el portapapeles?
for(int i=0;n=colección.size();i<n;i++)
{
...
}
2. Por lo general, mueva los elementos que no están relacionados con el índice del bucle fuera del bucle.
Copie el código de código de la siguiente manera:
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/escalaA*escalaB;
}
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/escalaA*escalaB;
}
Cambiar a
Copie el código de código de la siguiente manera:
doble escala = escalaB/escalaA;
for(int i=0; terminal=x.length; i<terminal; i++){
X[i]=x[i]*escala;
}
2. cuerda
Eliminar la concatenación de cadenas Al crear cadenas largas, utilice siempre StringBuffter en lugar de String
Preasignar espacio StringBuffer
StringBuffer sb = nuevo StringBuffer(5000);
3. Tipos de datos básicos
Utilice tipos de datos básicos en bucles importantes (los tipos de datos int suelen ser más rápidos que los tipos de datos largos/dobles)
Las clases contenedoras de tipos de datos básicos (booleano, entero, etc.) se utilizan principalmente cuando el parámetro del método pasado debe ser una referencia a un objeto (en lugar de un tipo de datos básico).
Utilice el modificador final estático para todas las expresiones algebraicas constantes.
Uno hace que sea más fácil hacer referencia a las constantes (el compilador precalcula expresiones constantes)
4. Anormalidad
Las excepciones solo se utilizan para una única condición de error verdadera.
Lanzar una excepción y ejecutar un bloque catch es costoso (principalmente debido a que se obtiene una instantánea de la pila de subprocesos al crear una excepción)
Se lanza una excepción sólo cuando la condición es realmente anormal
Realice optimizaciones del compilador y del tiempo de ejecución colocando varias llamadas a métodos en un bloque try/catch en lugar de implementar varios bloques try/catch para cada llamada a método.
5.Parámetro
Tenga en cuenta que todos estos consejos variarán entre plataformas y máquinas virtuales.
Por ejemplo: en algunos contenedores de servlets, es más rápido generar bytes a través de un OutputStream; en otros contenedores, es más rápido generar caracteres a través de un PrintWriter.
Estos consejos describen las recomendaciones más portátiles.
Es posible que necesites ejecutar algunos puntos de referencia para determinar qué es más rápido en tu plataforma.