zoukankan      html  css  js  c++  java
  • day01(静态、代码块、类变量和实类变量辨析 )

    静态:

               关键字:static

                概述 使用static关键字修饰的成员方法、成员变量称为静态成员方法、静态成员变量。

          优缺点

              优点:使用时不用创建对象,节约了空间。使得代码的简洁。

              缺点:局限性(静态方法只能调用静态方法和静态成员变量)

         使用场景:  一般情况做工具类使用

          ①.如果成员方法没有使用成员变量或不调用成员方法时

          ②.如果多个对象调用同一个变量时,我们应该共享此变量(使用static修饰达到共享数据的效果)

        规则:

          建议:静态调用静态,非静态调用非静态。

            (非静态可以调用任何状态)

          内存图

                           查看时请放大

                         

      

    代码块  

           静态代码块:

                格式:类中方法外  static{   }

              生命周期:类加载的时候执行  类加载到方法区中的时候会执行

                作用:加载驱动

           构造代码块:

                格式:类中方法外   {   }

              生命周期:new 动作之后 构造方法执行之前

                作用: 抽取构造方法(有参构造和无参构造)中相同的代码

                        局部代码块:

                格式:方法中    {  }

              生命周期:大括号执行完就结束

                作用:节约内存

              执行次序:静态代码块 > 构造代码块 > 局部代码块

     类变量与实例变量辨析

    A:类变量:其实就是静态变量

     

         定义位置:定义在类中方法外

     

         所在内存区域:方法区

     

        生命周期:随着类的加载而加载

     

        特点:无论创建多少对象,类变量仅在方法区中,并且只有一份

     

    B:实例变量:其实就是非静态变量

     

         定义位置:定义在类中方法外

     

         所在内存区域:堆

     

         生命周期:随着对象的创建而加载

     

         特点:每创建一个对象,堆中的对象中就有一份实例变量

     

  • 相关阅读:
    mysql u root p 等这些常用的参数
    关于类对象大小的 sizeof 计算问题
    sql like用法
    链表队列
    Zend Studio安装教程
    #define和inline 的区别
    ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
    Ubuntu 10.04下LAMP环境的配置与使用教程
    win7保护视力的电脑设置
    sql between and 用法
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/static_fjk.html
Copyright © 2011-2022 走看看