博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java静态变量、非静态变量、成员变量、的区别
阅读量:6771 次
发布时间:2019-06-26

本文共 906 字,大约阅读时间需要 3 分钟。

hot3.png

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

转载于:https://my.oschina.net/liuyuanyuangogo/blog/1806185

你可能感兴趣的文章
数据分析--布林带策略(择时)
查看>>
二十年后的回眸(6)——中途夭折的初次创业
查看>>
DB2日常运维之总结
查看>>
用hadoop中的libhdfs和fuse-dfs构建快速云存储
查看>>
Redis实战(6)数据类型四Sets
查看>>
Android Studio第八期 - 自定义布局无网有网状态
查看>>
读《Go并发编程实战》第4章 流程控制方式
查看>>
IT168:数据库安全审计用户需求调查报告
查看>>
Lync Server 2010不同规模拓扑图详解
查看>>
验证控件收藏
查看>>
安装配置Varnish3.0手记
查看>>
舌尖上的职场(三)我来买单!
查看>>
HighChartS cpu利用率动态图(Java版)
查看>>
让人头疼的关键用户
查看>>
DBMS_REPAIR example
查看>>
初识linux
查看>>
ORA-07445 [SIGBUS] [Object specific hardware error]错误一例
查看>>
Yii2的Html,Request组件详解
查看>>
使用ASP.NET实现Windows Service定时执行任务
查看>>
Linux下查看nginx、mysql、php的安装路径和编译参数
查看>>