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 a
escopo variável da main()
função, o b
escopo 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
b
o 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[] array
Este 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.
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 :
Então, de acordo com esta verdade, podemos facilmente aplicar a uma linha diferente de cada elemento da matriz da matriz
, por exemplo:
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