Pensando en Java aprendizaje Miscelánea (Sección 1-4)

Programa de control de flujo

operador de desplazamiento

operador orientado Shift bits de operando binario, que puede ser tratada con un solo número entero tipo. operador de desplazamiento a la izquierda (<<) operador puede mover el lado izquierdo del operando izquierdo del operador de mediana operador especificado a la derecha (en el complemento bajo 0). "Firmado" utilizando un desplazamiento a la derecha del operador "extensión de signo": si el valor es positivo, 0 se inserta en un nivel alto, y si el valor es negativo, entonces un alto inserción. Java también añadir un operador de "sin firmar" desplazamiento a la derecha (>>>), que utiliza "cero extienden": independientemente del signo, se insertan en la parte alta 0. Si por char, byte o de tratamiento del desplazamiento corto, el cambio tiene lugar antes, convierte automáticamente en un int. Sólo es necesario con cinco inferior derecha. Esto nos impide un poco realistas mueva los dígitos de un número en int. Si el cambio a un valor de largo, el resultado final es de tipo largo. En este punto, sólo se utiliza la parte derecha de seis bajo para evitar el movimiento del valor de la mediana a larga lista. Sin embargo, durante el "sin firmar" cuando el desplazamiento a la derecha se puede ejecutar en un problema, si por byte y short valores y operaciones de cambio puede no obtener los resultados correctos. Ellos se convierten automáticamente a un int y un desplazamiento a la derecha. Pero la "expansión cero" no va a suceder, por lo que en esos casos el resultado será -1.

El cambio puede utilizar el signo igual (= >> o << >>> = o =) composiciones. En este caso, el valor de cálculo de la parte izquierda del operador mueve hacia la derecha por el valor del número especificado de bits, los resultados obtenidos y luego de vuelta a la izquierda de la asignación de valores.

public class Test {
    public static void main(String[] args) {
        int i = 8;
        i >>= 2;
        System.out.println(i);
        i <<= 1;
        System.out.println(i);
        i <<= 1;
        System.out.println(i);
        i >>>= 1;
        System.out.println(i);
        i >>>= 1;
        System.out.println(i);
    }
}
// output
/*
2 4 8 4 2
*/

operador ternario

? Expresión booleana 0: Valor 1

public class Test {
    public static void main(String[] args) {
        int i = 10;
        System.out.println(i < 10 ? 5 : 11);
        System.out.println(i == 10 ? i / 2 : 0);
    }
}
// output
/*
11 5
*/

prioritarias operadores de expresiones
operadores unitarios> Aritmética (turno) del operador> operadores relacionales> Lógico (bit a bit) operador> operador condicional> Asignación

  • Los operadores unarios: +, -
  • Aritméticos (SHIFT) operadores: *, /,%, +, -, <<, >>
  • Los operadores relacionales:>, <,> =, <=, == ,! =
  • Lógicas (bit a bit): operadores &&, ||, y, |, ^
  • Condición (Tríada): A> B X :? Y
  • Asignación: = (asignación, y un compuesto, tal como * =)

el uso de etiquetas Goto en Java

A pesar del uso excesivo de Goto puede hacer que el programa puede leer, pero en algunos casos, ir a es la mejor manera de flujo de control de la estructura, por lo que una gran parte del lenguaje más o menos aún conserva parte de su uso para Java, el único etiqueta se utiliza en su lugar antes de que el bucle.

public class Test {
    public static void main(String[] args) {
        int i = 0;
        outer:
        for (;true;){
            inner:
            for (;i < 10;i++){
                System.out.println("i = " + i);
                if (i == 2){
                    System.out.println("continue");
                    continue ;
                }
                if (i == 3){
                    System.out.println("break");
                    i++;
                    break ;
                }
                if (i == 7){
                    System.out.println("continue outer");
                    i++;
                    continue outer;
                }
                if (i == 8){
                    System.out.println("break outer");
                    break outer;
                }
                for (int k = 0; k < 5;k++){
                    if (k ==3) {
                        System.out.println("continue inner");
                        continue inner;
                    }
                }
            }
        }

    }
}
// output
/*
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
*/

Tenga en cuenta que cuando se utiliza el interruptor ... declaración del caso, después de encontrarse con un caso que se encuentran, si no después de la pausa, continuará con la siguiente instrucción después de la pausa sin tubo no cumple con las condiciones, hasta que encuentra un descanso declaración o segmento de programa se termina. Entre el general debe cambiar ... declaración de caso, el último lugar en una condición predeterminada para realizar tareas en condiciones de ninguna alternativa.

public class Test {
    public static void main(String[] args) {
        int i = 5;
        switch (i){
            case 3:
                System.out.println("case3: " + i);
            case 5:
                System.out.println("case5: " + i);
            case 7:
                System.out.println("case7: " + i);
            default:
                System.out.println("default: " + i);
        }
    }
}
// output
/*
case5: 5
case7: 5
default: 5
*/
public class Test {
    public static void main(String[] args) {
        int i = 5;
        switch (i){
            case 3:
                System.out.println("case3: " + i); break;
            case 5:
                System.out.println("case5: " + i); break;
            case 7:
                System.out.println("case7: " + i); break;
            default:
                System.out.println("default: " + i); break;
        }
    }
}
// output
/*
case5: 5
*/

Tenga en cuenta que el factor interruptor de selección requerida debe ser un valor entero de la int o carbón. Y si un factor de flotación cadena o alternativamente utiliza, entonces no van a trabajar en la sentencia switch.

Math.random()0-1 producirá un valor, que está en el intervalo [0, 1).

Cuando usamos el constructor, si nosotros mismos no hacemos ninguna definición de la clase, se creará un constructor predeterminado sin argumentos para nosotros, y cuando definimos cualquier constructor, con o sin parámetros, el sistema ya no continuará para ayudarnos a crear un constructor sin argumentos.

Nota: Aunque podemos acceder a los métodos estáticos y variables estáticas en el método no estático, pero lo contrario no es suficiente. Debido a la estructura de datos estáticos para ser no estático métodos tienen prioridad.

Java es utilizado por la recuperación recolector de basura ya no ocupan objetos de uso de memoria. Pero el recolector de basura para liberar sólo sabe que la memoria asignada por el nuevo, así que no sé cómo liberar el objeto de la memoria "especial". Para resolver este problema, Java proporciona un método llamado finalizar (), se puede definir para nuestra clase. En el caso ideal, si funciona así: Una vez que el recolector de basura está listo para liberar la memoria ocupada por objetos, primero llama finalize (), pero sólo una vez en el próximo proceso de recolección de basura, en realidad se va a recuperar la memoria . Así que si usa finalize (), se puede hacer un trabajo importante durante el saneamiento y la limpieza de la recolección de basura.

La recolección de basura es solamente acerca de la memoria con la memoria que es la única razón de la existencia del recolector de basura es recuperar programas que ya no uso.

Uno de los más útiles lugar de finalización () es observar el proceso de recolección de basura.

En una clase, la secuencia es como se define en el orden determinado por las variables de clase. Incluso si se encuentran un gran número de definiciones de variables en el medio de los métodos definidos, esas variables inicializadas (incluso antes de que las llamadas de constructor) antes de llamar a cualquier método.

Supongo que te gusta

Origin www.cnblogs.com/zhhfan/p/12600360.html
Recomendado
Clasificación