当前位置: 技术问答>java相关
一个比较难理解的问题(关于Java类的概念)
来源: 互联网 发布时间:2015-01-01
本文导语: 当声明一个Java类为静态类(static)时,表示什么意思? 我能够理解定义一个方法或变量为static的含义,请诸位帮忙解释一下,谢谢! | static 静态函数,即在该类对象没有被生成之前即可以...
当声明一个Java类为静态类(static)时,表示什么意思?
我能够理解定义一个方法或变量为static的含义,请诸位帮忙解释一下,谢谢!
我能够理解定义一个方法或变量为static的含义,请诸位帮忙解释一下,谢谢!
|
static 静态函数,即在该类对象没有被生成之前即可以直接调用的函数,
有STATIC类,STATIC的作用就是不必生成类的实例可以直接调用,不管是函数,类,还是变量,作用有点类似于C/C++的全局函数和变量
在Java中,把static的方法直接当成是C/C++中的全局函数,static的变量当成是C/C++中的全局变量,区别在于:
C/C++中的全局变量是在程序运行时就一定存在的(专业一点是指在main入口点之前就得初始化),java中static变量是要用到这个类的时候才会去初始化才存在的,更节约?:)
C/C++中的全局函数也一样是程序一运行就存在的,java 中的static 方法一样要等到使用这个类时才存在,而且拥有这个类的命名空间,比C/C++中更方便,因为不同的类可以有一模一样名称的static方法,可以从类名来分开这两个全局函数(这就是命名空间的用法)。
从技术一点的角度来说,static 的方法的参数表中不象其他类中的方法一样有一个隐含的this指针,所以在编译时就确定下来,不在类的vtable里出现,不需动态绑定,是静态绑定。
有静态类的存在,一样是不用不存在,用的时候就创建,其它一切同上。
有STATIC类,STATIC的作用就是不必生成类的实例可以直接调用,不管是函数,类,还是变量,作用有点类似于C/C++的全局函数和变量
在Java中,把static的方法直接当成是C/C++中的全局函数,static的变量当成是C/C++中的全局变量,区别在于:
C/C++中的全局变量是在程序运行时就一定存在的(专业一点是指在main入口点之前就得初始化),java中static变量是要用到这个类的时候才会去初始化才存在的,更节约?:)
C/C++中的全局函数也一样是程序一运行就存在的,java 中的static 方法一样要等到使用这个类时才存在,而且拥有这个类的命名空间,比C/C++中更方便,因为不同的类可以有一模一样名称的static方法,可以从类名来分开这两个全局函数(这就是命名空间的用法)。
从技术一点的角度来说,static 的方法的参数表中不象其他类中的方法一样有一个隐含的this指针,所以在编译时就确定下来,不在类的vtable里出现,不需动态绑定,是静态绑定。
有静态类的存在,一样是不用不存在,用的时候就创建,其它一切同上。