标题: 黑马程序员_java学习07天_知识点总结 [打印本页] 作者: 邵旭博 时间: 2012-4-22 22:32 标题: 黑马程序员_java学习07天_知识点总结 同步更新博客:http://a7635368a.blog.163.com/blog/static/205859040201232295743350/
心里话:昨天磕得太晚了,被妈咪发现了,以后早睡早起.O(∩_∩)O
class StaticCode
{
StaticCode()
{
System.out.println("b");
}
static//静态代码块:随着类加载而执行,只执行一次,并优先于主函数,用于给类进行初始化
{
System.out.println("a");
}
{
System.out.println("c");
}
StaticCode(int x)
{
System.out.println("d");
}
public static void show()//show()函数中没有调用数据(对象的特有数据)那么该功能可以定义成静态
{
System.out.println("show run");
}
}
class text
{
public static void main(String[] args)
{
new StaticCode(4);//a c b 创建对象
StaticCode s = null;//空:不创建类:没有代码执行
StaticCode s = new StaticCode();//a c b创建对象:静态代码块执行,构造代码块执行,函数代码执行
StaticCode.show();//a show run:加载类,不创建对象,调用函数:静态代码块执行,函数内代码执行
new StaticCode();//a c b 创建对象
}
}
StaticCode s = new StaticCode()
1.在栈中执行主函数,定义p
2.找到Person.class文件加载在内存中
3.方法区加载成员变量,方法
4.静态代码块执行,进行类初始化
5.在堆内存中开辟空间,分配内存地址
6.在堆内存中建立对象的特有属性,并进行默认初始化
7.对属性进行显示初始化
8.对象构造代码块初始化
9.与之对应的构造函数初始化
10.将内存地址付给栈内存中的变量
new StaticCode(4)
调用一般函数执行顺序:栈加载函数-->加载类-->方法区加载-->静态代码块-->创建对象-->构造代码块-->调用函数代码
StaticCode.show()
调用静态函数执行顺序:栈加载函数-->加载类-->方法区加载-->静态代码块-->调用函数代码