Final-Metaverse-Fantasy
全部标签目录final关键字final修饰变量final修饰方法final修饰类static关键字static修饰变量static修饰方法static修饰代码块static定义内部类关于初始化顺序final关键字final修饰变量被修饰的变量不能被改写对于基本类型来说,其值不能改变对于引用类型(对象),对象的引用不能改变,但对象内部的属性是可以改变的tips:在并发编程中,适当用final修饰一些只读变量,有利于减少额外的同步开销final修饰方法被修饰的方法不能被子类重写private方法隐式被定为final,所以若子类中定义的方法和父类中的private方法命名相同。那么此时子类并不是重写该父类方
目录final关键字final修饰变量final修饰方法final修饰类static关键字static修饰变量static修饰方法static修饰代码块static定义内部类关于初始化顺序final关键字final修饰变量被修饰的变量不能被改写对于基本类型来说,其值不能改变对于引用类型(对象),对象的引用不能改变,但对象内部的属性是可以改变的tips:在并发编程中,适当用final修饰一些只读变量,有利于减少额外的同步开销final修饰方法被修饰的方法不能被子类重写private方法隐式被定为final,所以若子类中定义的方法和父类中的private方法命名相同。那么此时子类并不是重写该父类方
抽象类抽象类和普通类没什么大的差异,抽象类不能被实例化,必须用abstarct修饰,权限修饰符只能是public/protected类型;如果不写权限修饰符,则它默认就是public类型的。抽象类必须被继承才能实例化,所以它不能被final修饰。因为被final修饰的类不能被继承,被final修饰的方法不能被重写。抽象类被继承时,子类要重写父类的抽象方法,否则也只能将子类定义为抽象类。publicabstactvoidgetA();抽象类体现的是模板思想,在抽象类中已经实现了的成员就是模板。finalfinal:表示最终的,可以修饰类、方法、属性修饰变量,有且仅能被赋值一次。:修饰静态成员变量
抽象类抽象类和普通类没什么大的差异,抽象类不能被实例化,必须用abstarct修饰,权限修饰符只能是public/protected类型;如果不写权限修饰符,则它默认就是public类型的。抽象类必须被继承才能实例化,所以它不能被final修饰。因为被final修饰的类不能被继承,被final修饰的方法不能被重写。抽象类被继承时,子类要重写父类的抽象方法,否则也只能将子类定义为抽象类。publicabstactvoidgetA();抽象类体现的是模板思想,在抽象类中已经实现了的成员就是模板。finalfinal:表示最终的,可以修饰类、方法、属性修饰变量,有且仅能被赋值一次。:修饰静态成员变量
目录1final基本用法1.1final修饰变量1.2final修饰方法参数1.3final修饰方法1.4final修饰类1.5空白final1.6staticfinal2jvm角度理解final不可变性3final多线程下可见性4final域重排序规则5面试常见问题5.1所有的final修饰的字段都是编译期常量吗?5.2final类型的类如何拓展?5.3如何理解private所修饰的方法是隐式的final?1final基本用法final:“这是无法改变的"final可以修饰:变量、参数、方法、类1.1final修饰变量修饰变量(变量、局部变量),当变量类型为:基本类型,一旦被赋值,该值不能被
目录1final基本用法1.1final修饰变量1.2final修饰方法参数1.3final修饰方法1.4final修饰类1.5空白final1.6staticfinal2jvm角度理解final不可变性3final多线程下可见性4final域重排序规则5面试常见问题5.1所有的final修饰的字段都是编译期常量吗?5.2final类型的类如何拓展?5.3如何理解private所修饰的方法是隐式的final?1final基本用法final:“这是无法改变的"final可以修饰:变量、参数、方法、类1.1final修饰变量修饰变量(变量、局部变量),当变量类型为:基本类型,一旦被赋值,该值不能被
本文主要讲述java的final关键字和相关细节。 老韩知识介绍: 示例代码如下:1publicclassFinalTest{2publicstaticvoidmain(String[]args){34}5}67/**8*(4)final修饰类时,不能被继承9*/10finalclassA{11privateStringname;12/**13*(1)final修饰成员变量,不能修改14*/15publicfinalintid=100;1617publicvoidupdateId(){18//id=104;19System.out.println(id);20}2122/**23*(2)f
本文主要讲述java的final关键字和相关细节。 老韩知识介绍: 示例代码如下:1publicclassFinalTest{2publicstaticvoidmain(String[]args){34}5}67/**8*(4)final修饰类时,不能被继承9*/10finalclassA{11privateStringname;12/**13*(1)final修饰成员变量,不能修改14*/15publicfinalintid=100;1617publicvoidupdateId(){18//id=104;19System.out.println(id);20}2122/**23*(2)f
结论:final修饰对象,对象的内容可变,引用不可变。final应用于类、方法和变量、对象时意义是不同的,但本质是一样的,都表示不可改变。但是修饰对象时要注意:因为对象是引用类型,存储的是地址,所以final修饰之后,指的是引用地址不可变。案例:finalchar[]chars={'1','2','3'};//定义final修饰的char数组对象System.out.println(chars);System.out.println("chars数组地址"+chars.hashCode());chars[0]='0';chars[2]='b';System.out.println(chars)
结论:final修饰对象,对象的内容可变,引用不可变。final应用于类、方法和变量、对象时意义是不同的,但本质是一样的,都表示不可改变。但是修饰对象时要注意:因为对象是引用类型,存储的是地址,所以final修饰之后,指的是引用地址不可变。案例:finalchar[]chars={'1','2','3'};//定义final修饰的char数组对象System.out.println(chars);System.out.println("chars数组地址"+chars.hashCode());chars[0]='0';chars[2]='b';System.out.println(chars)