Java_静态(Static)

一 基本特征

静态(Static)的意义:即使没有创建对象,也能使用属性和调用方法

静态的内存是固定的,相对来说省资源;新建一个实例,就要新开辟一个内存,耗费资源

static内部只能出现static变量和其他static方法

二 静态变量

在类加载的时候就加载到方法区,而且在方法区会被赋予有默认值

静态变量是先于实例化对象出现的,在创建对象前就可以使用了,故习惯上用类名来调用

静态变量只能定义在类(就是最外层的{})中,不能定义在任何代码块中

非静态变量必须在实例化(new)之后才能分配内存,才可调用

三 静态方法

在类加载的时候就加载到方法区,但在方法区只存储不执行,当其被调用的时候到栈内存中执行

静态方法属于类所有,先于对象存在,类实例化前即可使用

静态方法可以直接调用同类中的静态成员,但不能直接调用非静态成员。非静态方法可以直接访问类中的任何成员

静态方法效率上要比实例化高。但缺点是不自动进行销毁,而实例化的则可以做销毁

静态方法可以通过【类名.方法名】直接调用。普通方法需要创建一个实例,也就是new一个对象,然后通过 【对象名.方法名】的方式来调用

静态方法中还不能使用this等关键字

因为this代表的是对象的引用,它引用的是类的当前实例。而静态方法(加载到jvm的方法区)中没有实例变量(加载到jvm的堆中)

变量定义位置初始化值生命周期作用范围内存位置

 静态变量

也称类变量

类中方法外以static关键字声明有默认的初始化的值第一次访问时创建,在程序结束时销毁整个类中有效静态存储区

实例变量

也称成员变量

类中方法外有默认的初始化的值对象的存在而存在,随着对象的消失而消失整个类中有效堆内存
局部变量方法内不赋值不能用方法的调用而存在,方法调用完毕而消失所在方法有用栈内存

静态方法可以重载。可以被继承,但不可以被重写

重载(Overload)
如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。

重写(Override)
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。

四 静态类

静态类只能包含静态成员,否则会抛出编译错误;然而非静态类既可以包含非静态成员也可以包含静态成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值