总结static和final关键字

简介: 总结static和final关键字


image.png

1.static

1.static有什么作用

static:可以在没有建立对象时候使用。

  1. 修饰变量:是全局变量,在类加载之后放于方法区,只在初始化时加载一次,且全局共享。如果不赋初值就默认为0。
  2. 修改方法:静态方法不能调用非静态的变量和方法(因为非静态的方法和变量需要对象来调用,但是不可能使用),非静态方法能够使用静态方法,使用“类名.方法”调用,而不能用对象调用。因为this也是通过对象调用,所有不能使用this。可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
  3. 修饰类:只有一种情况,静态内部类。使用场景:静态内部类使用场景一般是当外部类需要使用内部类,而内部类无需外部类资源,并且内部类可以单独创建的时候。特点:
  1. 内部类只能访问外部类静态的变量和方法。
  2. 静态内部类能声名普通的变量和方法,而普通内部类不能声名静态方法和变量。
  1. 修饰代码块:可以优化性能,在类加载时调用。且只调用一次。(加载顺序 父类的静态代码块-子类的静态代码块-父类的构造方法-子类的构造方法),静态语句块中只能访问定义在静态语句块之前的变量,定义在它之后的变量可以赋值,但不能访问

2.为什么要使用静态方法

静态方法的好处就是不用生成类的实例就可以直接调用。

static方法修饰的成员不再属于某个对象,而是属于它所在的类。只需要通过其类名就可以访问,不需要再消耗资源反复创建对象。

在类第一次加载的时候,static就已经在内存中了,直到程序结束后,该内存才会释放。

如果不是static修饰的成员函数,在使用完之后就会立即被JVM回收。

3.什么时候使用static?

如果这个方法是作为一个工具来使用的,就声明为static,不需要new一个对象就可以使用。比如:connect DB就可以声明一个Connection()的static方法。

2.final

final主要的作用就是防止修饰的对象改变。

  • 1.修饰变量:不允许变量改变。
  • 2.修饰方法:防止继承的重写改变该方法。
  • 3.修饰类:不允许继承该类。防止被重写。


相关文章
|
9月前
final修饰的变量有三种
final修饰的变量有三种
104 0
|
9月前
|
消息中间件 Kubernetes NoSQL
static、const关键字
static、const关键字
|
9月前
final关键字与static对比
final关键字与static对比
|
9月前
|
Java 编译器
枚举类的final修饰
枚举类的final修饰
修饰符static
修饰符static
63 0
Java常用关键字:this、super、final、static、访问修饰符
我从工作开始之前开始写博客,写到现在发现以前写的内容在现在看来有了更多想法,因此有了现在的知识重写计划,最主要的目的是维护github上的知识体系,让JavaStarter更加成熟。
|
缓存 安全 Java
局部变量修饰为final
最近在团队中引入checkstyle[1] ,自动执行规范检查,加入到ci步骤里面,让流程工具化,工具自动化,摆脱人工检查,在团队开发中硬性统一,更便于协作顺畅 checkstyle里面有个规范:所有local variable必须修饰为final 这是为什么呢?
140 0
|
安全 Java
Java关键字之static
Java static 关键字
249 0
Java关键字之static
static类为什么不能用sealed关键字修饰
今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。
917 0