Conocimientos básicos que son fáciles de ignorar en Java

Bienvenido a prestar atención a mi cuenta pública [Software Big Bang]
Aprendizaje de
conocimientos básicos de Java que son fáciles de ignorar en
Java Conceptos básicos orientados a objetos
de
Java Clases principales en Java Clases abstractas e interfaces
de
Java Excepciones en Genéricos de Java y colecciones en Java
Básicamente, todos los elementos de entrada en el lenguaje Java usan ASCII , mientras que los identificadores , caracteres , cadenas y comentarios usan Unicode

Las variables locales se definen en un bloque o dentro del cuerpo del método dentro de un rango limitado de acción de una variable local, pero dentro de los bloques respectivos o el método in vivo es efectivo, más allá del cuerpo del bloque, estas variables o métodos no funcionarán .

public class VarScope {
    
    
    public static void main(String[] args) {
    
    
        // a 变量的作用范围在整个main()方法内
        int a = 10;
        {
    
    
            // b 的作用范围是当前的两个大括号内
            int b = a * a;
            //下面的语句是正确的
            System.out.println("a = " + a + ", b = " + b);
        }
        //下面这条语句是可以执行的
        System.out.println("a = " + a);
        //不可以执行,超出作用域范围
//        System.out.println("b = " + b);
    }
}

En el ejemplo anterior, el aalcance variable de main()la función, el balcance variable del { }.
Cuando se excede el alcance de la variable , el sistema liberará su valor, es decir, la vida útil de la variable está limitada por su alcance.

Por ejemplo, bel valor en ejecución hasta }el momento posterior, su valor se liberará inmediatamente

Si se inicializa una variable en el alcance, el sistema reinicializará la variable cada vez que se llame al bloque de código .

Las variables locales deben inicializarse antes de su uso , es decir, las variables deben tener un valor antes de poder usarse (escribir primero y luego leer).

public class VarValue {
    
    
    public static void main(String[] args) {
    
    
        int a = 10;
        int b;
        System.out.println("a = " + a);//正确,已赋值
//        System.out.println("b = " + b);//错误,还没有被赋值
        b = 20;
        System.out.println("b = " + b);//正确,已赋值
    }
}

Esto es diferente del lenguaje C , el lenguaje C asignará automáticamente variables no asignadas al tipo predeterminado

#include <stdio.h>
int main()
{
    
    
	int z; 
	printf("z=%d\n",z);
	return 0;
 } 
z=0

--------------------------------
Process exited after 0.01581 seconds with return value 0
请按任意键继续. . .

Integer.toBinaryString(num)El número entero se emitirá como una cadena binaria y la salida negativa será el complemento.

public class IntValueDemo {
    
    
    public static void main(String[] args) {
    
    
        int a = 0b01001;
        System.out.println("二进制a的值为"+a);
        int b = 012;
        System.out.println("八进制b的值为"+b);
        int c = 19;
        System.out.println("十进制c的值为"+c);
        System.out.println("十进制c 的二进制表示为"+Integer.toBinaryString(c));
        int d = 0xFF;
        System.out.println("十六进制d的值为"+d);
        int e = -19;
        //负数的二进制会以补码形式存储
        System.out.println("十六进制e 的二进制表示为"+Integer.toBinaryString(e));
    }
}
二进制a的值为9
八进制b的值为10
十进制c的值为19
十进制c 的二进制表示为10011
十六进制d的值为255
十六进制e 的二进制表示为11111111111111111111111111101101

A partir de Java7 , se ha mejorado la función de la instrucción switch , permitiendo que el valor de la expresión de control sea una variable o expresión de tipo Stirng string . El siguiente código demuestra la función mejorada de switch

public class SwitchDemo {
    
    
    public static void main(String[] args) {
    
    
        String season = "秋天";
        switch(season)
        {
    
    
            case "春天":
                System.out.println("春天来了!");
                break;
            case "秋天":
                System.out.println("秋天来了!");
                break;
            default:
                System.out.println("可能是夏天或者冬天!");
                break;//不是必须要写的
        }
    }
}

El lenguaje Java no proporciona una instrucción goto para controlar el salto del programa, pero proporciona una instrucción de ruptura etiquetada , que se puede usar junto con una instrucción etiquetada para salir del bucle interno o del bloque interno.
Cuando no se utiliza la etiqueta , el lazo interior salta

public class BreakDemo {
    
    
    public static void main(String[] args) {
    
    
        int loop = 5;
        for (int i = 0; i < loop; i++) {
    
    
            for (int j = 0; j < loop; j++) {
    
    
                if (1 == j){
    
    
                    System.out.println(j);
                    break;
                }
            }
        }
    }
}
1
1
1
1
1

Process finished with exit code 0

Si usa etiquetas , se sale del bucle externo:

public class BreakDemo {
    
    
    public static void main(String[] args) {
    
    
        int loop = 5;
        tag : for (int i = 0; i < loop; i++) {
    
    
            for (int j = 0; j < loop; j++) {
    
    
                if (1 == j){
    
    
                    System.out.println(j);
                    break tag;
                }
            }
        }
    }
}
1

Process finished with exit code 0

Nota : no puede saltar desde fuera del bucle hacia dentro del bucle.

Creación de matriz :
int[] arrayeste proceso crea una variable de matriz en el área de la pila y no ha asignado espacio de memoria para la matriz en el montón, por lo que todavía no se puede acceder a los elementos de la matriz.
array=new int[5]Este proceso asigna espacio de almacenamiento en el montón e inicializa los elementos en la matriz de forma predeterminada.
Inserte la descripción de la imagen aquí
System.out.println(array)Esta oración generará el código hash del objeto de matriz .
para cada uso

for(数据类型变量名:数组名)
public class ForeachDemo {
    
    
    public static void main(String[] args) {
    
    
        int[] array = {
    
    1,2,3,4,5};
        for (int e : array
             ) {
    
    
            System.out.println(e);
        }
    }
}

Lo mismo se aplica a las matrices bidimensionales . De hecho, una matriz bidimensional en Java también es una matriz unidimensional.
Ver esquema de memoria :
Inserte la descripción de la imagen aquí
De acuerdo con esta verdad, podemos aplicar fácilmente a una línea diferente de cada elemento de la matriz de la matriz
, por ejemplo:
Inserte la descripción de la imagen aquí
primero solicite un grupo de variables de dos dígitos en la pila int[][] array;
y luego solicite un espacio de tres líneas en la pila array = new int[3][];
junto a cada Espacio de asignación de una filaarray[0] = new int[2]; array[1] = new int[3];array[2] = new int[1];

public class ArrayTwo {
    
    
    public static void main(String[] args) {
    
    
        int[][] array;
        array = new int[3][];
        array[0] = new int[]{
    
    1,2};
        array[1] = new int[]{
    
    1,2,3};
        array[2] = new int[]{
    
    1};

        for (int i = 0; i < array.length; i++) {
    
    
            for (int j = 0; j < array[i].length; j++) {
    
    
                System.out.print(array[i][j]+"  ");
            }
            System.out.println();
        }
    }
}
1  2  
1  2  3  
1  

Process finished with exit code 0

Supongo que te gusta

Origin blog.csdn.net/weixin_44895666/article/details/107172849
Recomendado
Clasificación