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 a
alcance variable de main()
la función, el b
alcance 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,
b
el 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[] array
este 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.
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 :
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:
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