java 静态变量和非静态_Java静态变量、非静态变量、成员变量、的区别

静态变量 用static修饰的变量叫静态变量(类变量)。 静态变量不需要new出对象引用来调用,它可以直接用类名直接调用。当然用对象引用也能调它,只是没必要。

非静态变量 非静态变量则必须用对象引用进行调用。

区别

1 成员变量所属于对象(实例),所以也称为实例变量。 静态变量所属于类,所以也称为类变量。

2 成员变量存在于堆内存中。 静态变量存在于方法区中。

3 成员变量随着对象创建而存在,随着对象被回收而消失内存空间中只有一份,也永远只有一份,大家共享)。 静态变量随着类的加载而存在,随着类的消失而消失(new出一个对象引用就会在内存中分配一份空间给它)。

4 成员变量只能被对象所调用 。 静态变量可以被对象调用,也可以被类名调用。 所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

成员变量 成员变量是在类体的变量部分中定义的变量,也称为属性。 实例变量、类变量、常量都属于成员变量。

public class Clothes

{

String id; //实例变量

private String colorType; //实例变量

private int size; //实例变量

private static String depart; //类变量

final String Design="yangzi"; //常量

}

成员变量又根据修饰符区分:

修饰符说明

public 公开,成员变量可以被项目中的任何方法访问;

protected 保护,同包内可访问,子类也可访问(即使不在同包内);

缺省 默认,没有修饰符的情况,只在同包内可访问;

private 私有,只在同一个类中可访问;(实例变量)

static (类变量)其值为该类的所有对象共享,不会因类的对象不同而不同;

final 最终成员变量,其值保持不变,即常量;

transient 当对象被持久化时(例如写入数据库),该成员变量的值不需要保存

volatile 同步多线程访问的成员变量的值,以便使不同的线程总是得到 该成员变量的同一个值。关于线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值