首页 > 编程知识 正文

投用和使用的区别,建筑面积和使用面积的区别

时间:2023-05-06 08:25:00 阅读:251163 作者:2353

final、static和static final区别和使用 1.final关键字 final关键字修饰变量:

1.这个变量必须在构造对象时就能够初始化

2.如果是基本数据类型的变量,那么这个变量一旦初始化就不能更改,相当于一个常量

3.如果是引用数据类型的变量,则初始化后就不能更改它的引用,不过引用对象变量的值可以更改

final关键字修饰方法:

1.表明这个方法不能被子类重写,防止类修改它的含义

与static比较都不能重写但可以被子类继承调用,不同在于static可以写一个同名方法隐藏父类的方法,而final不行

与private比较,private无法被子类继承,可以在子类中写一个新的同名方法,而final修饰的可以被子类继承调用,但final不能被重写,不能被修改,也就不能写一个新的同名方法。

使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。类中所有的private方法都隐式地指定为final。

final关键字修饰类:

1.表明这个类不能被继承

2.final类中的所有成员方法都会被隐式的指定为final方法,但成员变量可是final也可以是非final。

2.static关键字 static关键字修饰变量:

1.static关键字修饰的变量也叫类变量,整个类共享这一个静态变量,使用类名.变量访问。

2.与非静态变量区别,静态变量在内存中只有一个,随类加载而加载,程序结束时销毁,非静态每个对象都有单独的一个,随着对象一起创建销毁

static关键字修饰方法:

1.静态方法是不在对象上执行的方法,不需要类的实例化,可以直接通过类调用。

2.在类加载时分配内存空间(类中只有一个),在调用时执行,静态方法只能调用静态变量和静态方法,且不能被重写。

注意:static方法会被子类继承,子类可以直接调用,当父类和子类具有方法名相同的静态方法时,通过子类调用的方法是子类的方法而父类的方法隐藏了。父类方法的隐藏并不是重写,例如使用虚拟方法调用创建的对象调用静态方法(虚拟方法调用即类多态的使用,用父类声明创建子类对象即向上转型),编译和实现的都是父类的静态方法而不是子类的静态方法,即方法没有被重写。

static关键字修饰代码块:

1.静态代码块只在类加载时执行一次,静态代码块及非静态代码块的执行顺序(1.首先加载父类的静态字段或者静态语句块 2.子类的静态字段或静态语句块 3.父类普通变量以及语句块 4.父类构造方法被加载 5.子类变量或者语句块被加载 6.子类构造方法被加载)

static关键字修饰内部类:

1.静态内部类的创建不依赖与外部类,创建普通内部类之前需要先创建外部类的对象( 外部类. 内部类 内部类对象 = 外部类对象.new 内部类(); ) ,而创建静态内部类之前不需要先创建外部类,可以直接创建静态内部类。( 外部类.内部类 对象=new 外部类.内部类(); )
2.静态内部类可以调用外部类的静态变量和静态方法,但不能调用外部类的非静态变量和非静态方法。

static关键字静态导包:

import static com.xxx.ClassName.xxx 静态导包可以简化静态方法和静态变量的使用

3.static final关键字 static final关键字修饰变量:

static final用在变量上相当于一个”全局变量“,一旦初始化后就不能被修改,并且可以通过类名调用,整个类共享一个

static final关键字修饰方法:

static final用在方法上表明方法不能被子类修改(可以被继承被调用),并且可以通过类名调用

static final 与 final static相同

用Python爬了微信好友字节跳动后端面经(11)c#并行编程示例分享html中头部标签是什么

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。