static关键字的讲解(Java)...


关于static关键字,我们可以从变量和方法两个角度讲解。


1.用static修饰变量:
  1. 变量分为成员变量和局部变量。
  2. 成员变量包括:
    用static修饰的成员变量叫静态变量。
    没有用static修饰的成员变量叫实例变量。

静态变量调用方法:“类名.”(静态变量相当于共有的特征不需要创建对象可以访问)
实例变量调用方法:创建对象,“引用.”(实例变量是对象级别的变量,需要创建对象才能访问,所以需要**引用.**的方法)

举例:定义中国人类 ,定义"名字"和"国家"属性,中国人的名字属性是不同的,必须创建对象,用"引用.“调用,而"国家"这个属性,无论创建多少个对象它的结果都是"中国”,所以将"名字"属性定义为静态变量,直接"类名."就可以访问。

<mark>重点</mark>:静态变量在JVM的方法区内存中,在类加载的时候初始化,不需要创建对象内存就开辟了,所以定义静态变量的好处就是方便调用和节省内存空间。

所以我们这里可以总结一下:
JVM栈内存保存局部变量堆内存保存实例变量方法区保存静态变量


2.用static修饰方法:
  1. 用static修饰的方法叫静态方法。
  2. 没有static修饰的方法叫实例方法。

静态方法调用方法:"类名."的方式调用方法。(与静态变量同理,静态方法是一种可以共享的方法)
实例方法调用方法:创建对象,通过"引用."的方式调用。(必须创建对象,是对象级别的)

<mark>特别注意</mark>:

  1. 静态方法中不可以使用this关键字。
  2. 静态方法中不可以直接调用非静态方法。
  3. 局部变量不可以加static。

通过代码加深理解:

结果:


3.静态代码块:

如果在执行类时,希望先执行类的初始化动作,用static定义一个静态区域。

public class Demo01{
   
static{
    
......
} }

<mark>重点</mark>:

  1. 类加载的时候执行,且执行一次。(记录日志,时间等)
  2. 可以编写多个,自上而下顺序执行。
  3. 作用:初始化连接池,配置XML文件等。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务