总结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.修饰类:不允许继承该类。防止被重写。


相关文章
|
6月前
final修饰的变量有三种
final修饰的变量有三种
69 0
|
存储 Cloud Native 编译器
C++ static与类
C++ static与类
|
6月前
final关键字与static对比
final关键字与static对比
|
6月前
|
Java 编译器
枚举类的final修饰
枚举类的final修饰
|
6月前
|
存储 设计模式 算法
[C++] static静态成员变量/函数的用法
[C++] static静态成员变量/函数的用法
78 1
修饰符static
修饰符static
48 0
Java常用关键字:this、super、final、static、访问修饰符
我从工作开始之前开始写博客,写到现在发现以前写的内容在现在看来有了更多想法,因此有了现在的知识重写计划,最主要的目的是维护github上的知识体系,让JavaStarter更加成熟。
|
安全 Java
Java关键字之static
Java static 关键字
233 0
Java关键字之static
|
Java
java的单例、static修饰符及static的继承
单例设计模型: static修饰符: ①:static静态只有一份(同一个虚拟机中) (节省资源),类代码被装载内存时,静态代码分配内存,并执行,并且常驻内存。 可参考:类加载顺序 ②:Static修饰成员变量,成为"类变量",属于整个类,类的共享变量。注:不能修饰局部变量。          static是一块为整个类共有一块存储区域,静态变量只有一份,值变化后,所有访问值变化
2156 0