回顾Java中被遗忘的细节(五)

来源:互联网 发布:网络音乐最新排行榜 编辑:程序博客网 时间:2024/06/07 23:37
凡是用final关键字修饰的变量或者方法或者类,都表示这是最后的一个节点了,修饰的类,不能被继承,修饰的方法不能被重写,修饰的变量是一个常量,只能初始化一次,常见的是在定义的时候给出变量值,或者是在构造方法里面赋值,当用final修饰局部变量的时候,如果该变量是基本数据类型,则其值为一个常量不能再改变,若是一个引用类型的则地址值不能发生改变,但是对象的内容--->>即地址指向的对象是可以改变的

static关键字是静态的意思。可以修饰成员变量和成员方法。静态修饰的变量或者方法的特点:都是随着类的加载而加载,并优先于对象存在,且被类的所有对象共享。而这其实也是我们判断该不该使用静态的依据。建议通过类名调用。静态需要注意在静态方法中没有this对象而且静态只能访问静态
静态变量和成员变量的区别
所属不同
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用


代码块指用{}括起来的代码。分为局部代码块----->>>用于限定变量的生命周期,及早释放,提高内存利用率。构造代码块----->>>把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。静态代码块----->>>对类的数据进行初始化,仅仅只执行一次。其中,静态代码块是最先执行,构造代码块紧随其后,最后才是构造方法


Override(方法重写)和Overload(方法重载的区别在于:在子类中,出现和父类中一模一样的方法声明的现象是方法重写,同一个类中,出现的方法名相同,参数列表不同的现象是方法重载,方法重载能改变返回值类型,因为它和返回值类型无关
0 0