美文网首页
static&final&代码块

static&final&代码块

作者: hey_leex | 来源:发表于2018-01-05 17:09 被阅读0次

    static

    静态

    1. 随着类的加载而加载

    2. 优先于对象存在

    3. 被类的所有对象共享

    4. 可以通过类名调用

    注意

    • 在静态方法中是没有this关键字
    • 静态的属性存在于方法区的静态区

    静态变量和成员变量的区别

    1. 所属不同
      • 静态变量属于类也属于对象,还有其所有的子类及子类对象,所以也称为为类变量
      • 成员变量属于对象,所以也称为实例变量(对象变量)
    2. 内存中位置不同
      • 静态变量存储于方法区的静态区
      • 成员变量存储于堆内存
    3. 内存出现时间不同
      • 静态变量随着类的加载而加载,随着类的消失而消失
      • 成员变量随着对象的创建而存在,随着对象的消失而消失
    4. 调用不同
      • 静态变量可以通过类名调用,也可以通过对象调用
      • 成员变量只能通过对象名调用

    静态代码块

    做些初始化

    工具类

    javadoc命令生成说明书

    final

    最终的

    1. final+变量(局部变量 成员属性) 变量就变成了常量

    2. final+方法:该方法不能被重写

    3. final 类:该类不能被继承 String类 就是一个final

    基本类型,是值不能被改变
    引用类型,是地址值不能被改变,对象中的属性可以改变

    A:final概述
    B:final修饰特点
    修饰类,类不能被继承
    修饰变量,变量就变成了常量,只能被赋值一次
    修饰方法,方法不能被重写
    C:案例演示
    final修饰特点

    代码块

    在java中,使用{}括起来的代码被称为代码块

    根据位置和声明的不同,分为4类

    局部代码块

    方法中局部位置,用于限制变量的生命周期

    public static void main(String[] args)
    {
        {
            int i = 1;
            system.out.println(i);
        }//i被释放销毁
    }
    

    构造代码块

    在类中的成员位置。每次调用构造方法是都会先执行构造代码块中的代码

    可以把多个构造方法的共同代码放到一起执行,每次调用构造函数之前执行

    class Code{
        {
            system.out.println("构造代码块");
        }
        public Code(){
            system.out.println("构造函数");
        }
    
    }
    //输出
    构造代码块
    构造函数
    

    静态代码块

    在类中的成员位置,用static修饰
    只在类加载的时候可以执行一次

    class Code{
        static{
            system.out.println("静态代码块");
        }
        {
            system.out.println("构造代码块");
        }
        public Code(){
            system.out.println("构造函数");
        }
    
    }
    //输出
    静态代码块
    构造代码块
    构造函数
    

    同步代码块

    多线程内容

    相关文章

      网友评论

          本文标题:static&final&代码块

          本文链接:https://www.haomeiwen.com/subject/bfusnxtx.html