关于Java成员变量的一点小常识

Java语言中根据定义变量位置的不同,可以将变量分为两大类:成员变量和局部变量。两种变量运行机制存在较大差异,这里首先谈谈成员变量。

首先要认识到,成员变量指的是在类里面定义的变量,只要是一个合法的标识符即可。成员被分成两种:有static修饰的为类变量,没有static修饰的则为实例变量。

类变量比实例变量的生存周期要长,可以从该类的准备阶段起开始存在,直到系统完全销毁这个类。而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,类的实例肯定会比类的生存周期要短,所以类变量比实例变量的生存周期要长。

下面通过代码感受下两种变量的区别

public class Test {

public static void main(String[] args){

System.out.println("Person中类变量eyeNum初始化的值+"+Person.eyeNum);

//此时输出值为0(默认的)

Person p = new Person();

System.out.println("Person中实例变量name初始化的值+"+p.name);

//此时输出值为null(默认的)

//为两种变量直接赋值

Person.eyeNum=2;

p.name="库里";

System.out.println("Person中类变量eyeNum赋值后的值+"+Person.eyeNum);

System.out.println("Person中实例变量name赋值后的值+"+p.name);

//上面的输出值分别为2和库里

//通过person对象访问eyeNum的值

System.out.println("通过person对象访问eyeNum的值+"+p.eyeNum);

Person p2 = new Person();

System.out.println("新创建的实例能否访问上一个实例的值+"+p2.name);

//不能访问但编译能够通过,此时的值为null

System.out.println("新创建的实例能否访问上一个类变量的值+"+p2.eyeNum);

//此时输出值为2,证明了类变量存在着,上个实例变量已然销毁

}

}

class Person {

//创建一个类变量

public static int eyeNum;

//创建一个实例变量

public String name;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,734评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,578评论 19 139
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,265评论 0 62
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 598评论 0 1
  • 每个人都会有很多很多的想法和愿望,希望自己能够做这个,希望自己能够学那个。那么多 的想法和欲望,那么你是否有真正下...
    P尐c阅读 218评论 0 0

友情链接更多精彩内容