Java中静态属性和非静态属性有什么区别?

一、什么是静态属性和非静态属性?

        静态属性是指被static修饰符修饰的类、方法、变量或代码块等。
        非静态属性是指没有被static修饰的。
二、静态属性和非静态属性的特点是什么?
       静态属性特点:
       1. 一声明就被存储在栈中,直接占据内存,可以快速稳定的调用。
       2. 生命周期长,从jvm加载开始到jvm加载结束。
       3. 全局唯一,在一个运行环境中,静态变量只有一个值,任何一次修改都是全局性的影响。
       4. 占据内存,程序中应该包含尽量少的static
       非静态属性特点:
       1. new的时候占据内存,实例化后才能调用。
       2. 非静态变量赋值不发生冲突。

三、静态变量和非静态变量的区别

       静态变量是用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 同步多线程访问的成员变量的值,以便使不同的线程总是得到 该成员变量的同一个值。

 

 

 

 

 

 

  • 18
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值