zoukankan      html  css  js  c++  java
  • Java中的final和static

    1.final修饰类
    用final修饰类,表示这个类不能被继承

    2.final修饰方法

    即父类的final方法是不可以被子类继承重写的。
    如果父类中的final方法是public修饰的,子类可以继承到此方法,子类会重写此方法,将会导致编译出错
    如果父类中的final方法是private修饰的,子类继承不到此方法,这时子类可以定义一个和父类中的final方法相同的方法,因为这个方法是属于子类重新定义的,所以编译不会出错

    3.final修饰变量
    final成员变量表示常量,一但被赋值,值不可以再被改变
    当final修饰一个基本数据类型时,该基本数据类型的值在初始化之后便不能再改变。
    当final修饰一个引用类型时,在初始化之后不能再让其指向其他对象,但是对象的内容是可以改变的。

    4.static关键字作用:在没有创建对象的情况下来调用方法/变量
    static修饰的方法或变量不需要依赖对象进行访问,只要类被加载了就可以
    1.static修饰的方法,即类.方法

    2.static变量
    即静态变量,静态变量可以被所有对象共享。
    对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
    对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
    static成员变量的初始化顺序按照定义的顺序进行初始化。static不可以修饰局部变量;
    所以一般在需要实现以下两个功能时使用静态变量:
        • 在对象之间共享值时
        • 方便访问变量时
    3)static代码块
    static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
    为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。

  • 相关阅读:
    Linux 安装网络yum地址
    MYSQL登录错误:mysqladmin: connect to server at ‘localhost’ failed
    linux 中截取字符串
    screen 调到后台使用
    Yum 安装memcached 与缓存清空
    LAMP 环境搭建
    DELL--R420 CPU报警“CPU0000 cpu2 internal error (IERR)contact support”
    解决vim粘贴时格式混乱的问题
    DELL 管理软件安装
    windows 使用SVN命令
  • 原文地址:https://www.cnblogs.com/de-ming/p/12849860.html
Copyright © 2011-2022 走看看