黑马程序员技术交流社区

标题: 代码块怎么用? [打印本页]

作者: lvfubin    时间: 2015-8-20 21:39
标题: 代码块怎么用?
  代码块份好几种,他们都有什么区别,什么时候用呢?求解。
作者: 蓬头小道士    时间: 2015-8-20 21:42
class Person
{
private String name="hello";
private int age;
static
{
   System.out.println("a");
}
{
   System.out.println("b");
}
Person(String name,int age)
{
   this.name=name;
   this.age=age;
   show();
}
public void show()
{
   System.out.println("name="+name+"  "+"age="+age);
}
}
class Test
{
public static void main(String[] args)
{
   Person p=new Person("java",25);
}
}
上面为一个基本的小程序,从上面的小程序我们可以大概知道主函数中Person p=new Person("java",25)代码在内存中加载流程。
1、new用到了Person.class,所以Person.class字节码先加载到内存中。
2、执行Static(静态)代码块,静态代码块随着类的加载而加载。
3、创建对象的成员变量,并对变量进行默认初始化(name=null,age=0),然后给变量进行赋值(name=hello,age=0);
4、执行构造代码块,构造代码块随着对象的创建而加载。
5、执行对象的构造函数。
6、将堆内存中的Person对象赋值给变量栈内存中的变量P。
作者: lvfubin    时间: 2015-8-21 21:33
回答的挺好,还有其他的吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2