zoukankan      html  css  js  c++  java
  • java函数加不加static有何不同

    java中声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。静态方法不能被子类的静态方法覆盖。
    例如:
    static class CompanyEmployee{
    public static string GetCompanyName(string name) { ... }
    public static string GetCompanyAddress(string address) { ... }
    }
    一般来说,类中标注了static的函数能在类外直接引用,比如说:
    String M_string1 =CompanyEmployee.GetCompanyName(M_string2)
    而没有标注static的函数则必须声明一个类的实体,有实体来引用。比如说:
    static class CompanyEmployee{
    public string GetCompanyName(string name) { ... } //没有Staticpublic static string GetCompanyAddress(string address) { ... }
    }
    CompanyEmployee M_CompE = new CompanyEmployee();
    String M_string1 =M_CompE.GetCompanyName(M_string2);//静态类


    说白了,就是调用时候方便 不加static是非静态函数,访问需要new出该类的对象来调用,加上static是静态函数 可直接访问或者通过类名访问

    你也知道,static method是类的方法,也就是在Class Loader 类加载的时候JVM会生成相应的字节码。它的生命周期是整个application。所以会一直占用内存。如果不经常使用,没有必要用static。

    不加static的method就是对象的方法,必须用对象的实例来调用。并随着对象的消亡而消亡。如果频繁使用该方法,内存会不断地开辟空间、释放空间,性能会受影响。

    如果一个方法在多处被调用,而且该方法的功能是一些Utility功能,比如格式化等,对于这类方法可以声明为static。

    如果方法和对象关系比较紧密,需要用到对象的某些属性,就声明为该对象的方法。
  • 相关阅读:
    vimrc 配置 史上最牛
    nmap 黑客 端口扫描(转)
    linux export 命令(转)
    【引用】linux下编译静态库ranlib有什么用
    vim map nmap(转)
    vim 自定义命令 自定义快捷键(转)
    vimrc初学 vim 快捷键 map(转)
    vim 取消 查找 高亮
    Java内存模型(JMM)学习总结
    Struts2和Spring整合
  • 原文地址:https://www.cnblogs.com/manhuidhu/p/7217163.html
Copyright © 2011-2022 走看看