Java中static

 

Static

 

What

Static 静态修饰符,

static关键字的中文意思是静态的,该修饰符可以修饰成员变量,成员常量和成员方法。

 

Why(特点)

  1. 静态会随着类的加载而加载,消失而消失,所以他的生命周期和类一样长
  2. 优先于对象存在,静态先存在,对象后存在
  3. 被所有实例对象共享
  4. 直接被类名调用

 

静态变量(类变量)和实例变量区别

  1. 存放位置:类变量随着类的消失而消失,存在方法区中,实例变量随着对象的建立而存在与堆内存中
  2. 生命周期:静态会随着类的加载而加载,消失而消失;实例变量随着对象的加载而加载,消失而消失

 

Where  

那么静态修饰符static用在哪里呢?

如果有数据需要共享给所有对象使用,那么就用static修饰数据(成员变量);他的调用方式有两种:

  • 使用对象进行访问     对象名.变量名
  • 使用类名进行访问     类名.变量名

 

思考?

1、那么非静态的成员变量如何访问呢?

2、什么时候用static呢?





 

1答案:非静态的成员只能使用对象进项访问,不能使用类名进行访问   对象名.变量名

2答案:治党当成员变量需要被共享的时候才使用static

 

代码体现:

  1. classStudent{  
  2.    static Stringname;  //非静态成员变量  
  3.    static String  country = "中国";   //静态的成员变量  
  4.    public Student(String name){  
  5.       this.name = name;  
  6.    }  
  7. }  

 


 静态方法

讲完了静态修饰符,再来讲讲静态方法吧

What

静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。

 

Why(特点)

  • 静态代码块随着累的加载而加载,只执行一次,优先于主函数,用于给类初始化
  • 带static的main函数是主函数,是程序的入口,可以被jvm识别
  • 静态方法中不能使用this和super关键字(为什么呢?

        首先理解this和super是什么?

         1、this是对当前对象的引用(具体看博客内容:

http://blog.csdn.net/yanwenwennihao/article/details/79375611

                  2、super是指父类对象的引用

                  上面已经讲了,静态成员优先于兑现更加再到内存中,他是随着累的加载而加载的,如果静态方法中有this和super,那么当静态方法被加载到内存中,其中的this和super还没被初始化,所以加载时会报错

                   以此类推,静态成员和静态方法都不能用this和super关键字

          

 

static函数和普通函数的区别

  1. static函数,只限定在本源代码使用,不能被本源吗以外的文件调用;普通函数默认是extern(外来的,外面的),可以被其他代码文件使用
  2. 静态函数不能访问非静态成员变量,只能访问静态变量,但是非静态函数可以方位静态变量

 

 

代码体现:

  1. public static void main(String[] args){  
  1.   
  2. }  

 

最后一个问题 :Java中的方法和函数的区别是什么

 

 

 

 

 

 

 

 

 

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值