static静态类,final,Java中程序的加载和执行过程

final 意为 :最终的 不可改变的   在java中可以用来修饰类,属性和方法。
final用来修饰类,表示该类不可被继承。
final用来修饰变量,叫常量。表示该变量的值不可被修改,只能初始化一次
final用来修饰方法,表示该方法不可被重写。

我们可以从final的字面意思来理解这个关键字的用法,因为他意为不可改变的我们可以联想到用在类中它就不能被继承,用在变量中则不可被修改,修饰方法,表示该方法不能被重写。

static意为:静态的
    可以用来修饰类,属性,方法和代码块
static用来修饰属性,叫类属性[静态属性],表示该类的对象共享一个属性[同一块内存空间]  static属性尽量使用类名直接调用。
static用来修饰方法,叫类方法[静态方法],表示该类的对象共享的一个方法。如果在子类中重写了静态方法,具体调用父类的还是子类重写的取决与对象声明的类型。

在static方法和static代码块中不能使用this和super关键字
在static方法和static代码块中不能直接使用非静态属性

java中程序的加载和执行过程
1.启动JVM
2.将要用到的class文件装载到JVM内存[装载类]在装载类的过程中,static的属性和static代码块会依次执行,static方法会被加载到方法区
3.JVM开始调用java程序的主函数,当创建一个类的对象的时候,首先非静态代码块和非静态属性[成员属性]依次执行,非静态方法[成员方法]会被加载到方法区,然后执行构造方法得到对象。
归为一个图来说就是

static属性/static代码块-->主函数-->非静态代码块/成员属性-->构造方法

最后说一下重载和重写的区别:
重载是一个类中出现多个同名不同参数返回值可以一样的方法我们称之为重载

重写,是指在子类中对父类的某方法进行重新定义,其子类的该方法名以及参数位置和个数均与父类相同,从而在调用子类的该方法时,不会执行父类的方法。如果在父类中以final定义的方法,在子类中无法重写,我们称之为重写。

重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。

猜你喜欢

转载自674993741.iteye.com/blog/2304733
今日推荐