代码块概述:在java中使用{}括起来的代码被称为代码块
代码块分类:根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块
局部代码块:在方法中出现,限定变量生命周期,极早释放,提高内存利用率
public class daimakuai {
public static void main(String[] args) {
int x;
}
System.out.println(x);
}
由于即使释放了所以无法打印x的值,会报错,
构造代码块(初始化块):在类中方法外出现,多个构造方法方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行
public class daimakuai {
public static void main(String[] args) {
daima s1=new daima();
s1.setage(17);
s1.setname("zhang");
System.out.println(s1.getage()+s1.getname());
System.out.println("___________________");
daima s2=new daima("朴",27);
s2.speak();
}
}
class daima{
private int age;
private String name;
public daima(){
System.out.println("空参构造");
}
public void setage(int age) {
this.age=age;
}
public int getage() {
return age;
}
public void setname(String name) {
this.name=name;
}
public String getname() {
return name;
}
public daima(String name,int age) {
System.out.println("有参构造");
this.name=name;
this.age=age;
}
{
System.out.println("构造代码块");
}
public void speak(){
System.out.println(name+age);
}
}
输出如图:
静态代码块:在类中方法外出现,并加上static修饰,用于给类进行初始化,在加载的时候就执行,并且只执行一次,一般用于加载驱动,优先于主方法去执行的。
public class daimakuai {
public static void main(String[] args) {
daima s1=new daima();
s1.setage(17);
s1.setname("zhang");
System.out.println(s1.getage()+s1.getname());
System.out.println("___________________");
daima s2=new daima("朴",27);
s2.speak();
}
}
class daima{
private int age;
private String name;
public daima(){
System.out.println("空参构造");
}
public void setage(int age) {
this.age=age;
}
public int getage() {
return age;
}
public void setname(String name) {
this.name=name;
}
public String getname() {
return name;
}
public daima(String name,int age) {
System.out.println("有参构造");
this.name=name;
this.age=age;
}
{
System.out.println("构造代码块");
}
public void speak(){
System.out.println(name+age);
}
static{
System.out.println("静态代码块");
}
}