final修饰符—不可变】的更多相关文章

final 修饰符 修饰类 不可以有子类 修饰变量 变量一旦获得初始值就不可改变,不能被重新赋值 成员变量:初始值必须有程序员显式设置,系统不会对其隐式初始化 类变量:静态初始化块 | 声明该类变量时      实例变量:非静态初始化块 | 声明该实例变量时 | 构造器中      局部变量:初始值必须有程序员显式设置,系统不会对其隐式初始化                 定义变量时指定 | 后面代码中指定                 形参变量由传入参数值来完成初始化,故不能被赋值    …
final从字面上理解含义为“最后的,最终的”.在Java中也同样表示出此种含义. final可以用来修饰变量(包括类属性.对象属性.局部变量和形参).方法(包括类方法和对象方法)和类. 1. final修饰类: final修饰类即表示此类已经是“最后的.最终的”含义.因此,用final修饰的类不能被继承,即不能拥有自己的子类. 如果视图对一个已经用final修饰的类进行继承,在编译期间或发生错误. 2. final修饰方法: final修饰的方法表示此方法已经是“最后的.最终的”含义,亦即此方…
1.什么时候可以选择final修饰符 如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰. 2.用final修饰的类 首先大家要明白,用final修饰的类是不能被继承的,下面来看一个错误案例. eg: final class Penguin { } class SubPenguin extends Penguin { } 此时这段代码的class SubPenguin extends Penguin这行代码会报错: The type SubPenguin canno…
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放.堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由于要在运行时动态分配内存,存取速度较慢. 栈的优势是…
final修饰变量 final修饰符一般用于基本数据类型(int,float)或者不可变对象(String).这时候可以看作常量变量. 但是当final作用于可变数据类型时(数组,一般对象),仅仅表示存储在该变量中的对象的引用不被改变,但该对象的属性依然可以改变. 下面是final作用于可变数据类型时的例子 public class main01 { public static void main(String[] args) { final T t = new T(10); final int…
一.final修饰符概述 1. final可以修饰类.变量和方法 2. final修饰的类.变量和方法不可改变 3. 不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不能派生子类 4. 通过使用final关键字,允许Java实现不可变类,不可变类会让系统更加安全 二.final成员变量 1. 对于final修饰的成员变量而言,一旦有了初始值,就不能被重新赋值 2. 由于成员变量不一定需要显式初始化,故那些既没有在定义时指定初始值,也没有在初始化块.构造器中指定初始…
final修饰的类不可以有子类,例如:java.lang.Math类就是一个final类,它不可以有子类 子类继承父类,可以访问父类的内部数据,可以重写父类的方法来改变父类方法的实现细节,可能导致不安全因素:为了保证某个类不可被继承,则可以使用fianl修饰这个类, 代码示例: public final class FinalClass{} //下面的类定义将出现错误 class Sub extends FinalClass{} FinalClass为final类,不能被继承,编译错误 ====…
在Java中修饰符总共有一下几种: 1.访问控制修饰符    分别有:public private protected,缺省 2.其它修饰符      分别有:abstract,final,static,native,synchronized,transient,volatile等 对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误.但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改. 不过一般情况下,一个方法的形参不用final修饰.只有在特殊情况下,那就是:方…
java修饰符分类修饰符字段修饰符方法修饰符根据功能同主要分下几种 1.权限访问修饰符 public,protected,default,private,四种级别修饰符都用来修饰类.方法和字段 包外 子类 包内 类内 public yes yes yes yes protected no yes yes yes default no no yes yes private no no no yes 2.final修饰符 final意思变修饰类.字段.方法修饰类类能被扩展(extends)也能被继承…
在Java类里只能包含成员变量.方法.构造器.初始化块.内部类(包括接口.枚举)5种成员,类成员是用static来修饰的,其属于整个类. 当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员,因此即使某个实例为null,它也可以访问它所属类的类成员. public class NullAcessStatic { public static void test() { System.out.println("static修饰的类方法"); } public static void…