Java基础---------Static的简单总结

Java基础---------Static的简单总结

Static修饰的成员变量:

static修饰的成员变量是其所属类的所有对象共享;

Static修饰的成员变量是随着类的加载就在内存方法区的静态区开辟空间了,优先与非静态;

Static修饰的成员变量既可以通过对象来访问,也可以通过类名访问。

  class Test

{

Public static int temp=5;

}

Class Demo

{

Public static void main(String[] args)

{

System.out.println(Test.temp); //输出5

System.out.println(new Test().temp);//输出5

}

}

静态成员变量与非静态成员变量的区别:

存储的数据:非静态成员变量存储的是其所属类每个对象特有属性;静态成员变量存储的是其所属类的所有对象共享属性的数据。

存储的位置:非静态成员变量是随着对象的创建在堆中开辟内存;静态成员变量是随着类的加载在方法区的静态区开辟内存的。

生命周期:非静态成员变量是当其所属的对象被创建时才开辟内存的,对象被垃圾回收时就释放内存了;静态成员变量是随着类的加载在方法区的静态区开辟内存,程序退出时才释放内存。

访问方式:非静态成员变量只能通过对象来访问;静态成员变量即可以通过对象来访问,也可以通过类名直接访问。

Static修饰静态成员函数:

静态函数内部只能使用静态变量,不可以使用非静态变量;

静态函数在加载类时同时被加载到方法区的静态区;

静态函数可以直接通过类名访问。

class Test

{

Public static void show()

{

System.out.println(“hello world!”);

}

}

Class Demo

{

Public static void main(String[] args)

{

Test.show();//输出hello world

new Test().show();输出hello world

}

}

静态的应用:

可以运用在工具类,直接类名.方法名调用,如果该工具类不想被实例化,可以让该类的构造函数私有化,就只能同过类名来访问。

静态代码块:随着类的加载就执行,且只执行一次,优先于main函数的执行.

class Test

{

static

{

System.out.println("Hello World!");

}

public void static void main(String[] args)

{

}

}         //执行这段代码会输出:Hello World!

静态代码块的作用:可以实现类的初始化。

在继承中,父类的方法如果是静态的,子类重写这个方法也要是静态的;

在内部类中,如果含有静态成员,那么该内部类必须也是静态的;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值