关于Java中static的一点思考

	static所修饰的方法和变量是属于类本身,不属于对象,无论创建多少个对象实例都是共用一个方法和变量.
	静态的方法不可以调用非静态的方法,非静态的方法可以调用静态的方法.书上一般都这么写,但是作为入门的同学来说,记忆起来也很容易混淆起来。但仔细想想,也很容易理解。静态方法之所以不能调用非静态方法,是因为非静态方法属于某一个对象,而不是属于类,非静态方法的调用只能通过创建对象来调用。同样,静态方法也不能使用非静态变量。类比,我们很容易知道,非静态类可以调用静态方法。为什么呢?如果还不清楚,就补一下一下知识:静态方法及静态变量和普通方法变量的加载顺序来说明吧。
	静态方法是在类加载前进行加载,在程序结束时才销毁。在某种意义上说,静态变量的生命周期取决于对应类的生命周期。
其次,和普通方法比,静态方法存在于整个程序的生命周期,不会因为使用完毕而销毁,对内存上的消耗是比较大的,对内存要求比较高时,要慎用static,那么static也不是一无是处。当一个对象需要频繁创建或销毁时,对系统的开销比较大,这时候,static的优势就体现出来了。因为static的代码块已经存在内存当中了,所以调用的速度要优于创建对象调用方法的速度。如何取舍,小伙伴们现在清楚了吧~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值