java关键字static浅谈

经过一段时间的学习,对于java中的static关键字进行了一些简单的总结,欢迎广大学友补充,一起交流学习

  1. static关键字 静态方法,不动用不会占用cpu和空间 不是抽象,不能被重载 static{}类加载就执行一次
    不用初始化类就能访问static变量 一个静态变量就是一个类,不需要通过对象引用来调用,可以直接通过类名来访问
    抽象方法不能用static 抽象方法无法直接访问成员方法和成员变量 涉及堆和栈的先后问题
    先进后出原则,使用static,只要加载类就会调用static关键字,就会直接进入方法堆中,并且形成一个方法栈 不用依赖任何对象
    对于static方法没有this的(this表示的是当前对象)
    静态方法中不能直接访问非静态成员方法和非静态成员变量,但是非静态成员方法可以访问静态成员的方法和变量
    用static修饰变量:静态变量被所有对象共享,在内存中只有一个副本,仅在类初始化时被加载
    而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
    static成员变量的初始化顺序按照定义的顺序进行初始化。
    static用来形成静态代码块以优化程序性能。(只会在类被初次加载的时候执行一次。)
    static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来依次执行每个static块,并且只会执行一次。
    在C/C++中static关键字是可以作用于局部变量的,但是在Java中是不允许使用static修饰局部变量的。这是Java语法的规定。
    静态成员变量虽然独立于对象,但是不代表不可以通过对象去访问 所有的静态方法和静态变量都可以通过对象访问(只要权限足够)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章