java static关键字 以及使用注意事项

写代码的时候,有两种情况是new一个对象的方法无法解决的。
1.只想在某一个特定的域分配一个单独的存储空间,不用去考虑究竟要创建多少对象,甚至于不用创建对象。
2.希望某一个方法不与存在有这个方法的类的任何一个对象有关联。
也就是说,不用创建对象来调用这个方法。这时候,我们可以用static关键字来解决。

Static 静态的;可以也只能用来修饰类的属性 (成员变量)、方法、代码块。

    当你用static修饰成员变量的时候,你不实例化这个类也可以使用该成员变量,JVM只为静态变量分配一次内存,所有使用该对象的类的这个成员变量都共享一个地址,每个类操作的地址都是一样的。所以说,在开发的时候,当你的这个静态属性不想被其他类直接修改的话最好前面再加上final修饰,一般用于全局变量。


    当你用static描述方法的时候,你不实例化这个类也可以使用该方法,但是静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
    因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。一般项目里面公共类会写成静态方法,这样方法就与所属类无关了,比如说时间操作类、数字计算类等等,或者对字符串做一些共同的操作。

    当你用过static描述代码块的时候,这时候这个代码块会被jvm加载类的时候执行,一般用来初始化类属性的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值