静态static

static本身是一个修饰符,可以修饰变量,方法,内部类,代码块.静态是从类的层面上来看的,已经超越了对象

所有的静态相关都是用static关键字修饰

static修饰成员变量(不能修饰局部变量)

           static修饰的成员变量开辟空间在方法区,所以就一份内存空间,任何方法都可以修改这个变量

            一般静态变量做一些公用或者共用的计数,但是要慎用.

             静态变量最好做成局部变量,作用域越小,受干扰的可能性就越小

             一般情况下,修饰成员变量,用static final,这个成员变量成为静态常量

static修饰方法(方法不能被重写为非static方法)

                 方法是存储在方法区的,非静态方法和静态方法都存储在方法区,在存储上是没有区别的,但是调用是有区别的

                非静态方法被调用必须先实例化此方法对应的类的对象,通过对象打点调用方法

                静态方法可以直接通过类名打点调用,

                如果这个方法需要被频繁调用且不需要操作数据,这个方法最好设置成静态方法

                 静态方法不能使用this,this属于对象,不属于类

                  而静态的属于类,不属于对象,this和静态的属于同一级

static修饰一段代码块---静态代码块/静态块

                        代码块就是包含一些逻辑,所以静态代码块还是存储在方法区的

                         但是静态代码块的执行实际是有区别的

                         能写代码逻辑的地方(方法和静态代码块中都可以)

                        方法中的代码逻辑是否被执行取决于程序员是否调用该方法

                        静态代码块在类加载到方法区就自动执行静态代码块

                          代码块实在静态代码块之后,构造函数之前执行

                        执行顺序:静态代码块--->类代码块----->构造函数

总结

静态的方法只能访问静态的方法和静态的属性,即静态的只能访问静态的

非静态的能访问静态的方法和属性,也能访问非静态的方法和属性

静态的方法即可用类名调用(建议),也可以用对象调用(不建议)

加载顺序

a.第一个类加载,执行第一个类的静态代码块

b.第一个类若包含第二个类作为第一个类的属性(注意new和不new的问题)

            new:第二个类加载,执行第二个类的静态代码块

                     执行第二个类的类代码块,然后第二个类的构造方法

            不new:不加载第二个类

c.第一个类的类代码块,注意c步骤,b步骤的顺序

            b在c前(在第一个类中的放置顺序):执行顺序:a-->b-->c-->d

            b在c后(在第一个类中的放置顺序):执行顺序:a-->c-->b-->d

d.第一个类的构造函数

 

静态+常量:  static final同时修饰

static final同时修饰的变量一般变量名全部大写,字母间用下划线隔开

如 :public static final int FILE_BLOCK_SIZE=4*1024*1024;

一般存放整个项目都要用到的常量,使用时通过类名打点调用即可

 

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值