static和final

时间:2021-06-26 04:21:30
是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢? 
在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制)
因为static得方法在装载class得时候首先完成,比 构造方法早,此时非static得属性和方法还没有完成初始化,所以static修饰的方法不能调用非static方法和属性

  1. final修饰的类不能被继承。

  2. Sting就是一个被final修饰的类,我们只能用,不用继承

  3. final不仅可以修饰类,还可以修饰变量,被final修饰的变量就是一个常量,只能赋值一次

  4. 注意final和finally的区别,final是修饰类或者变量,finally是在异常处理中使用,如:

    try{ }catch(){}finally{}中,finally的作用一般用于必须处理的事情,如关闭连接

  5. finalize(),方法名用于垃圾回收