静态代码块static{ }---static 成员变量
public class Block {
static int b=100;
static {
b=-1;
}
//测试
public static void main(String[] args) {
System.out.print(b);//-1
}
}
//-----------------------------
public class Block2 {
static {
b=-1;
}
static int b=100;
//测试
public static void main(String[] args) {
System.out.print(b);//100
}
}
构造代码块{ }--- 成员变量
public class Block {
int a=10;
{
a=30;
}
{
a=20;
}
//测试
public static void main(String[] args) {
System.out.print(new Block().a);//20
}
}
//-----------------------------
public class Block {
{
a=30;
}
int a=10;
{
a=20;
}
//测试
public static void main(String[] args) {
System.out.print(new Block().a);//20
}
}
//==========================
public class Block {
{
a=30;
}
{
a=20;
}
int a=10;
//测试
public static void main(String[] args) {
System.out.print(new Block().a);//10
}
}
结论: static{ }---static 变量, 从上到下,依次执行,以最后一个为准;
{ }--成员变量:从上到下,依次执行,以最后一个为准;