日期:2014-05-19  浏览次数:20849 次

调用类的一些非静态方法时,那种方法好
需要调用类的一些非静态方法时
            如:     TblCustomerDao   customer   =   new   TblCustomerDao();
                      customer.GetCustomerName();
                      customer.SelectAll();

            和       new   TblCustomerDao().GetCustomerName();
                      new   TblCustomerDao().SelectAll();

两者在效率上有区别么?

------解决方案--------------------
区别是1个生成2对象,1个生成1对象,如果这个对象正好很大的话。。。
------解决方案--------------------
区别是1个生成2对象,1个生成1对象,如果这个对象正好很大的话。。。

----------------

说的对,而且如果这个对象涉及初始化,就可能造成错误.
------解决方案--------------------
new TblCustomerDao().GetCustomerName();
这种会不会该语句结束就删除对象了?
---------------------------------
不知道,回收机制控制
再说有必要关注这个吗,不管是不是结束就删除,这个对象都是曾经创建过


只调用一次时,那个效率更好呢?
如: TblCustomerDao customer = new TblCustomerDao();
customer.GetCustomerName();

和 new TblCustomerDao().GetCustomerName();
-----------------------------------------------
这个应该效率一样吧,不大清楚,第1种多了个customer ,我想下面的虽然没有customer ,但是生成一个对象,程序应该会有个类似customer 来指向新建立对象的。愚见,希望ls达人解释
------解决方案--------------------
第1种是始终对一个对象操作,如果这个操作会影响对象本身(例如修改了对象的字段的值),
那这个影响会持续到对象被销毁。

第2种是,每次都创建一个新的对象,每次调用方法使用的都是对象的初始数据(假如方法要用到对象的数据),而调用完之后这个对象就被销毁了。(逻辑上来说,它是被销毁了)