【JAVA】static用法

static:用法:
1、是一个修饰符,用于修饰成员(成员变量,成员函数)。
2、当成员被静态修饰后,出了可以被对象调用外,还可以被类名调用。类名.静态成员。
static String country="CN"
每个对象都能访问,被对象所共享,不在堆内存中每个对象空间中存在,存储在方法区(共享区,数据区)节约了存储空间。

static特点:

1,随着类的加载而加载(静态会随着类的消失而消失,说明它的生命周期最长)

 2,优先于对象存在 

3,被所有对象共享 

4,可以被类名直接调用。

被static修饰的成员变量叫静态成员变量(类变量)  不被static修饰的变量为成员变量(实例变量)
实例变量和类变量的区别:
1、存放位置:类变量随着类的加载而存在于方法区中,实例变量随着对象建立存在于堆内存中
2、生命周期:类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象消失而消失。
静态注意事项:
1、静态方法只能访问静态成员(变量,函数);非静态方法既可以访问静态也可以访问非静态
2、静态方法中不可以定义this,super关键字,因为静态优先于对象存在
3、主函数是静态的

主函数:

是一个特殊的函数,作为程序的入口,被JVM调用

定义:
public:代表函数访问权限是最大的
static:代表主函数随着类的加载就已经存在了
void:主函数没有具体返回值
main:不是关键字,是一个特殊的可被jvm识别的函数名
(String[] arr):函数的参数为一个字符串类型的数组
主函数格式是固定的,jvm识别
利弊:
利处:对对象的共享数据进行单独空间的存储,节省空间;可以直接被类名调用。
弊处:生命周期过长;访问局限性(只能访问静态)
什么时候使用静态?
什么时候定义静态变量
当对象中出现共享数据时,该数据被静态所修饰,对象中的特有数据要定义成非静态存在于堆内存中
什么时候定义静态函数
当功能内部没有访问到非静态数据(对象的特有数据),该功能可以定义成静态的。 
工具类(类中函数都定义为静态,可直接通过类名调用。但该类还是可以被其他程序建立对象,为了更严谨,强制让该类不能建立对象,可以将构造函数私有化)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值