zoukankan      html  css  js  c++  java
  • Java初学(五)

    一、成员变量和局部变量区别(成员变量默认为包内访问权限,即使是子类,不在一个包内也无法访问) 

      1、在类中的位置不同

        成员变量:在类中方法外;

        局部变量:在方法定义中或者方法声明上

      2、在内存中的位置不同

        成员变量:在堆内存

        局部变量:在栈内存

      3、生命周期不同

        成员变量:随便对象的创建而存在,随着对象的消失而消失

        局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

      4、初始化值不同

        成员变量:有默认初始值

        局部变量:没有默认初始值,必须定义,赋值,才能使用

      注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

    二、图解内存中对象的创建及其方法执行

    三、static特点:(可以修饰成员变量,也可以修饰成员方法)

      1、随着类的加载而加载

      2、优先于对象存在

      3、被类的所有对象共享(如果一个类的成员变量对所有对象共享,所以建议定义为它为静态的)

      4、可以通过类名调用(也可以通过对象调用,由于它是类成员,所以推荐使用类名调用)

    四、static内存图解

    五、static关键字注意事项:

      1、在静态方法中是没有this关键字的

        静态是随着类的加载而加载,this是随着对象的创建而存在;

        静态比对象先存在

      2、静态方法只能访问静态成员变量和静态的成员方法

        非静态方法静态非静态的成员变量和方法都能访问

      总之:静态只能访问静态

    六、静态变量和成员变量区别

      1、所属不同

        静态变量属于类,所以也称为类变量

        成员变量属于对象,所以也称为实例变量(对象变量)

      2、内存中位置不同

        静态变量存储于方法区的静态区

        成员变量存储于堆内存

      3、内存中出现时间不同

        静态变量随着类的加载而加载,随着类的消失而消失

        成员变量随着对象的创建而存在,随着对象的消失而消失

      4、调用不同

        静态变量可以通过类名调用,也可以通过对象调用

        成员变量只能通过对象调用

  • 相关阅读:
    Web性能压力测试工具之ApacheBench(ab)详解
    微服务监控之三:Prometheus + Grafana Spring Boot 应用可视化监控
    Sentinel-dashboard
    Java8之默认方法和静态接口方法
    蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别
    JAVA8 十大新特性详解
    Java链式方法 连贯接口(fluent interface)
    分布式计算概念一览
    Gradle学习
    Java堆外内存之七:JVM NativeMemoryTracking 分析堆外内存泄露
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4519361.html
Copyright © 2011-2022 走看看