静态static修饰符
2016-02-21 00:45
197 查看
1.static修饰函数的作用:
该函数没有访问过对象中的属性(对象的成员变量)时,可以通过静态修饰,将该函数放至在方法区中,这样不比在每一次建立对象时开辟空间给该函数,减少不必要的内存消耗;
以下通过类名.成员方法名的方式,可以直接调用该方法,前提是sleep方法被static 修饰。
2.特点:
被静态修饰的成员,可以直接被类名所调用
静态成员变量优先于对象存在(注意这里不是说有限于类)
随着类的加载而加载,类的消失而消失,所以静态成员生命周期很长
3.内存中的体现:
![](http://img.blog.csdn.net/20160221003605639)
4.注意事项:
静态方法只能访问静态成员,不能访问非静态成员,这是静态方法的访问局限性;
静态方法不能出现this或者super关键字;(可以这样推理,既然静态的特点说了,静态成员优先于对象存在,那么这个时候的this是没有指向的对象的,因为还没创建)
主函数是静态的;
5.什么时候使用静态修饰呢?
成员变量:当成员的属性在所有的对象中都一样时,直接用静态修饰;
成员函数:如果成员函数没有访问过对象中的属性数据时,改函数则是静态的;
6.静态变量和成员变量的区别?
名称(所属):
静态变量所属于类,也称为 类变量。
成员变量所属于对象,也称为 实例变量。
内存位置:
静态变量存储于方法区中的静态区中。
成员变量存储于堆内存的对象中。
加载先后:
静态变量随着类的加载而加载,随着类的消失而消失。
成员变量随着对象的加载而加载,随着对象的消失而消失。
7.静态代码块:
它的作用是类加载中而加载此代码块,是初始化类,而且只执行一次,而静态修饰构造函数,是初始化对象;
8.调用成员方法的方式有两种:
对象.方法名();
类名.方法名(); //这种要求对应方法被static修饰
该函数没有访问过对象中的属性(对象的成员变量)时,可以通过静态修饰,将该函数放至在方法区中,这样不比在每一次建立对象时开辟空间给该函数,减少不必要的内存消耗;
以下通过类名.成员方法名的方式,可以直接调用该方法,前提是sleep方法被static 修饰。
public class Demo
{ public static void main(String[] args) { Person.sleep(); } } class Person { public static void sleep() { System.out.println("haha"); } }
2.特点:
被静态修饰的成员,可以直接被类名所调用
静态成员变量优先于对象存在(注意这里不是说有限于类)
随着类的加载而加载,类的消失而消失,所以静态成员生命周期很长
3.内存中的体现:
4.注意事项:
静态方法只能访问静态成员,不能访问非静态成员,这是静态方法的访问局限性;
静态方法不能出现this或者super关键字;(可以这样推理,既然静态的特点说了,静态成员优先于对象存在,那么这个时候的this是没有指向的对象的,因为还没创建)
主函数是静态的;
5.什么时候使用静态修饰呢?
成员变量:当成员的属性在所有的对象中都一样时,直接用静态修饰;
成员函数:如果成员函数没有访问过对象中的属性数据时,改函数则是静态的;
6.静态变量和成员变量的区别?
名称(所属):
静态变量所属于类,也称为 类变量。
成员变量所属于对象,也称为 实例变量。
内存位置:
静态变量存储于方法区中的静态区中。
成员变量存储于堆内存的对象中。
加载先后:
静态变量随着类的加载而加载,随着类的消失而消失。
成员变量随着对象的加载而加载,随着对象的消失而消失。
7.静态代码块:
class demo
{ static { system.out.println("hello") }
}
它的作用是类加载中而加载此代码块,是初始化类,而且只执行一次,而静态修饰构造函数,是初始化对象;
8.调用成员方法的方式有两种:
对象.方法名();
类名.方法名(); //这种要求对应方法被static修饰
相关文章推荐
- Unity插件-NGUI学习笔记
- 10分钟搞懂树状数组
- [maya学习笔记(8)] 物体的复制与对齐
- objective c, category 和 protocol 中添加property
- 矩阵分解方法
- asp.net mvc 5 微信接入VB版 - 获取AccessToken
- 《敏捷软件开发》《企业应用架构模式》读后感
- 基于矩阵分解的隐因子模型
- 《Android源码设计模式》读书笔记 (9) 第9章 责任链模式
- 线程池线程数与(CPU密集型任务和I/O密集型任务)的关系
- 构建自己的PHP框架--定义ORM的接口
- Android 实现可以暂停旋转的ObjectAnmition动画
- 20160208.CCPP体系详解(0018天)
- 20160208.CCPP体系详解(0018天)
- ami bios设置图解
- 20160208.CCPP体系详解(0018天)
- poj 3628 Bookshelf 2
- 搜索JAR包,找类库
- BIOS设置图解教程 Award Bios类型设置详解
- IdentityServer3——入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 术语