java static关键字得理解!看完秒懂!!!

一.变量当一个变量前面有了static这个修饰符,内存会为它分配唯一的一块存储空间。程序跑起来的时候,变量就存在在内存里了。谁要用它,就去访问一下它所在的内存。假如内存是澡堂子,static变量就像一坨肥皂,一整个澡堂子的人都共用之。。不管澡堂子里有没有人,肥皂总是在这里。编译器想拿出肥皂来玩一玩,直接吼出肥皂的名字就好了。如果这是一个非static的变量,则是对每个对象有一份存储空间。程序跑刚起来的时候,是没有这个变量的。相当于一个澡堂子里每个人都有一坨肥皂。如果没有人,也就没有肥皂。编译器想要用肥皂来做点什么,必须先制造一个手持肥皂的人。

public class XX{  final static double PI = 3.14; 
final double E=2.71; 
public static void main(String[] args) {   
 //下面要使用static变量PI了 System.out.print(PI);//直接粗来了有木有!!!    
 //下面要使用非static变量E   
  XX b = new XX();   
  System.out.print(b.E)
 ;//要用b牵着才粗来真是羞涩  }}

二.方法假如一个方法被static修饰,可直接访问。不被static修饰,就需要用对象来访问了。和变量是差不多的感觉。。

`public class XX{ 
public static void method1(){  }  
public void method2(){  }  
public static void main(String[] args) {    
method1();    
XX b = new XX();   
 b.method2()//嗯,又一个牵着才出来的。  }}-`

---------肥来再写一个---------三.程序块形如:static{ balabala…;}首先给题主看一段代码写这段代码的目的是为了看看静态块、非静态块和构造函数出现的先后顺序。运行结果如下可以看出是以 静态块–>非静态块–>构造函数的顺序执行的事实上,静态块的加载是在main()函数以前的,并且只执行一次(从anotherObject的加载情况可以看出)加载静态块时为它分配固定的内存,程序结束时内存才被释放。而非静态块和构造函数则是new一次执行一次。----------每天一写----------
四.静态导入(慎用)形如import static 完全限定名称eg: import static java.long.System.out;平时import一般是导入的类,而静态导入是导入静态变量和静态方法。被静态导入的方法和变量在当前类可以被直接访问。由于很多人觉得过多使用静态导入会降低代码的可读性,故最好只在有很多重复调用时使用。上图:// 将要被静态导入的玩意儿~// 开始静态导入啦// 运行结果
五.嵌套类占坑。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值