static定义的变量表明他是可以共享的
public class Person{
String name;
static String address = "地球";
public Person(String name,String address){
this.name = name;
this.address = address;
}
public static void main(String[] args){
Person p1 = new Person("张三","火星");
Person p2 = new Person("李四","土星");
p1.address = "冥王星";
System.out.println(p1.address);
System.out.println(p2.address);
}
}
输出结果:
冥王星
冥王星
static定义之后,这个变量他是共享的,当p1的address变定义为冥王星之后,p2的address也自动变成冥王星。这个值,存在于内存的静态区(datesegment)
但是不推荐这么使用静态变态,推荐的是使用类名去访问静态的内容。
public class Test{
{
System.out.println("通用构造器");
}
static {
System.out.println("静态构造器");
}
public Test {
System.out.println("构造方法");
}
public static void main(String[] args){
new Test();
}
}
运行结果:
静态构造器
通用构造器
构造方法
创造对象的简单过程:
1.静态构造器
2.通用构造器
3.构造方法->创建对象
由于创建对象的过程是在静态内容加载完成之后,在静态方法和静态块里不能使用this。