Conhecimento básico que é fácil de ignorar em Java

Bem-vindo a prestar atenção à minha conta pública [Software Big Bang]
Java aprendendo
conhecimento básico que é fácil de ignorar em
Java Java básico orientado a objetos
Classes principais em
Java Java classes abstratas e interfaces
Exceções em
Java genéricos e coleções em Java
Basicamente, todos os elementos de entrada na linguagem Java usam ASCII , enquanto identificadores , caracteres , strings e comentários usam Unicode

Variáveis ​​locais são definidas em um bloco ou dentro do corpo do método dentro de uma faixa limitada de ação de uma variável local, mas dentro dos respectivos blocos ou o método in vivo é eficaz, além do corpo do bloco essas variáveis ​​ou métodos não funcionarão .

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);
    }
}

No exemplo acima, o aescopo variável da main()função, o bescopo variável do { }.
Quando o escopo da variável é excedido , o sistema libera seu valor, ou seja, o tempo de vida da variável é limitado por seu escopo.

Por exemplo bo valor em execução para }o tempo seguinte, seu valor será liberado imediatamente

Se uma variável for inicializada no escopo, o sistema irá reinicializar a variável toda vez que o bloco de código for chamado .

As variáveis ​​locais devem ser inicializadas antes do uso , ou seja, as variáveis ​​devem ter um valor antes de serem usadas (primeiro escreva e depois leia).

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);//正确,已赋值
    }
}

Isso é diferente da linguagem C , a linguagem C atribuirá automaticamente variáveis ​​não atribuídas ao tipo padrão

#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)O número inteiro será enviado como uma string binária e a saída negativa será o 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 , a função da instrução switch foi aprimorada , permitindo que o valor da expressão de controle seja uma variável ou expressão do tipo Stirng string . O código a seguir demonstra a função aprimorada 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;//不是必须要写的
        }
    }
}

A linguagem Java não fornece uma instrução goto para controlar o salto do programa, mas fornece uma instrução break rotulada , que pode ser usada em conjunto com uma instrução rotulada para sair do loop interno ou bloco interno.
Quando o rótulo não é usado , o loop interno 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

Se você usar tags , você sairá do loop 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 : Você não pode pular de fora do loop para dentro do loop.

Criação de array :
int[] arrayEste processo cria uma variável de array na área da pilha e não alocou espaço de memória para o array no heap, portanto, os elementos do array ainda não podem ser acessados.
array=new int[5]Esse processo aloca espaço de armazenamento no heap e inicializa os elementos na matriz por padrão.
Insira a descrição da imagem aqui
System.out.println(array)Esta frase irá gerar o código hash do objeto array .
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);
        }
    }
}

O mesmo se aplica a matrizes bidimensionais . Na verdade, um array bidimensional em Java também é um array unidimensional.
Veja o esquema de memória :
Insira a descrição da imagem aqui
Então, de acordo com esta verdade, podemos facilmente aplicar a uma linha diferente de cada elemento da matriz da matriz
, por exemplo:
Insira a descrição da imagem aqui
primeiro aplique para um grupo de variáveis ​​de dois dígitos na pilha int[][] array;
e, em seguida, aplique um espaço de três linhas na pilha array = new int[3][];
ao lado de cada Um espaço de alocação de linhaarray[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

Acho que você gosta

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