final和static关键字二

static

  静态的东西可以被该类所有的对象共享;

    被存在方法区中的静态区中。

  静态的东西可以直接用对象名调用,也可以用类名调用,但是推荐用类名调用;

    假如不用类名调用的话,还得新建一个对象才可以调用。浪费空间。

  静态的随着类的加载而加载进来,比创建对象要加载的早,非静态的东西随着对象的创建而存在, 它比静态的加在的晚。

  静态的方法内,不能有this,因为this指向的是对象,但是静态的方法比对象先出现

  代码:

    局部代码块:大括号内的,一旦执行完,立刻销毁内存。

    构造代码块:每次调用构造方法,都会执行构造代码块,而且会在构造方法之前。

       作用:可以把所有构造方法里面,共有的一些反复的代码,放在构造代码块内。

package final_demo;

public class Person {
    {
        System.out.println("构造代码块");
    }
    public Person() {
        System.out.println("无参构造方法");
    }
    public Person(int age) {
        System.out.println("有参构造方法 "+ age);
    }
    static {
        System.out.println("静态代码块");
    }
}
 
 
package final_demo;

public class Demo4 {
    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person(10);
    }
}
 
  
 
//静态代码块
//构造代码块
//无参构造方法
//构造代码块
//有参构造方法 10

猜你喜欢

转载自www.cnblogs.com/huasheng2020/p/13366410.html