使用static方法有什么好处? 在项目中,对于频繁使用的方法,使用static修饰会提高效率吗?请各位阐述下使用静态方法的好处。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个我清楚,我想知道它能够是程序提高效率吗?static 修饰变量也好,方法也好,都应该慎用吧。 主要是看你的需要,即使是频繁使用,但方法属于对象而非类的话,也不能改用static修饰. 就是直接生成实例,不再随便new 正如LZ所说的,在使用频繁的方法中使用可以这样理解使用static修饰的成员不再归对象所以,而是属于类 可以理解为是共有的也就说只要通过类名就可以访问,不需要耗费资源反复创建对象因为在程序第一次加载的时候就已经在内存中了,直到程序结束该内存才会释放如果不是static修饰的成员在使用完之后该内存就会被回收所以说static要慎用,根据实际情况而定 如果这个方法是作为一个工具来使用,就声明为static,不用new一个对象出来就可以使用了,比如连接到数据库,我声明一个getConnection()的方法,就定义为静态的,因为连接到数据库不是某一个对象所特有的。它只作为一个连接到数据库的工具。至于提高效率的也未必,要看具体的方法的用处,去定义这个方法是不是静态的。 static对于类来说只有一份...这样的好处很多吧....比如说调用方法就不需要new了直接用类调用就可以了 不建议使用太多,只要是公用的方法,属性,类常常用到才申明为static其它最好不用,内存用的太多影响其它业务 还是要看具体情况的。如果是工具方法,方法只为了表示属于这个类,执行时候和具体对象没什么关系的,就用static修饰,像java类库中,Integer类的getInteger()方法就是这样。如果本对象要参与方法的操作,那就该让他附属于对象,而不是类了。 stati修饰表示静态的,在类加载时虚拟机就会把它放到方法区。被本类以及本类所以实例共用的如果一个方法是所有实例公共的,那么声明为static能够节省空间,否则每个实例初始化时方法都要分配到内存 减少了不同实例调用时,对内存的开销,以及构造对象时的消耗。但从另一方面将,如果你new了一个,然后一直用他来调用,那么你知道有什么后果吗?在多线程里面,多个线程共用一个类的实例,是很危险的。如果你的方法不依赖类的实例,那么他就是一个static得。 您的意思是我创建了该类的对象,然后用对象调用该类的静态方法吗?想您请教另外的问题,下面的as类中有个dayArray,它也会被频繁使用public class DayModel extends BasicModel { [Bindable] private static var _instance:DayModel; public static function getInstance():DayModel { if(_instance == null){ _instance = new DayModel(); } return _instance; } [Bindable] public var dayArray:Array=new Array();//如果用static修饰会占用内存吗?还是最好不用new,不new的话会报空指针异常。不知您有什么建议。 } 不用new一个对象,节省堆内存空间 用static肯定可以洁身时间啊,可以节省内存,下次调用时,就相当于把原还输的代码直接放入... 好处肯定是有的:首先,用static修饰的类方法,不仅可以用类声明的对象调用而且可以直接用类名调用;至于对内存的开销,我想那只是针对类的成员变量而言吧; static 修饰类的属性时,这个属性所有成员共享,内存只分配一次,多线程的时候要注意了,很可能不是按照你设想的去执行的.大多使用都与final配合,表示一个常量.static 修饰类方法的时候,直接用类名调用.非静态方法使用实例去调用,实例本身是一个隐藏的参数被传递给非静态方法,也就是在非静态方法中的this,而静态方法没有this.从面向对象的角度看,static失去了继承,多态.无论是静态方法还是非静态方法,在内存中都只分配一份内存,也就是所占内存空间大小是一样的.工具类中,使用static修饰方法较多. 画出的圆形或者弧怎么总是有锯齿 请问多看多写JAVA的实际小例子是不是很容易就会提高自己的编程能力的啊? 一段非常简单代码出错了。不知各位有没有碰到过,我该如何解决? 在jtree结点上的双击事件 getRunStart和getRunLimit的使用,难道就没有人知道吗? 我想在java程序中加一个定时器 概念请教,一定给分,谢谢各位 初学java应该从何处入手? java动态代理测试报错 面向对象中的一些问题 equals与hashCode 求一个正则表达式
static 修饰变量也好,方法也好,都应该慎用吧。
可以这样理解使用static修饰的成员不再归对象所以,而是属于类 可以理解为是共有的
也就说只要通过类名就可以访问,不需要耗费资源反复创建对象
因为在程序第一次加载的时候就已经在内存中了,直到程序结束该内存才会释放
如果不是static修饰的成员在使用完之后该内存就会被回收
所以说static要慎用,根据实际情况而定
比如说调用方法就不需要new了
直接用类调用就可以了
它放到方法区。被本类以及本类所以实例共用的
如果一个方法是所有实例公共的,那么声明为static
能够节省空间,否则每个实例初始化时方法都要分配到
内存
但从另一方面将,如果你new了一个,然后一直用他来调用,那么你知道有什么后果吗?
在多线程里面,多个线程共用一个类的实例,是很危险的。
如果你的方法不依赖类的实例,那么他就是一个static得。
{
[Bindable]
private static var _instance:DayModel;
public static function getInstance():DayModel
{
if(_instance == null){
_instance = new DayModel();
}
return _instance;
}
[Bindable]
public var dayArray:Array=new Array();//如果用static修饰会占用内存吗?还是最好不用new,不new的话会报空指针异常。不知您有什么建议。
}
大多使用都与final配合,表示一个常量.static 修饰类方法的时候,直接用类名调用.非静态方法使用实例去调用,实例本身是一个隐藏的参数被传递给非静态方法,也就是在非静态方法中的this,而静态方法没有this.
从面向对象的角度看,static失去了继承,多态.
无论是静态方法还是非静态方法,在内存中都只分配一份内存,也就是所占内存空间大小是一样的.
工具类中,使用static修饰方法较多.