1、这两种方式那种效率高啊!
     new ClassName().getMethodOne();
     new ClassName().getMethodTwo();
     new ClassName().getMethodThree();

     ClassName className= new ClassName ();
     className.getMethodOne();
     className.getMethodTwo();
     className.getMethodThree();
     2、这两种方式那种效率高啊!
// List[] list = new List[ArrayName.length];
// Map[] map= new Map[ArrayName.length];
         
        int ArrayLength = ArrayName.length;
        Map[] map= new List[ArrayLength ];
        List[] list =new Map[ArrayLength ]
         
     3、下面这种写法有错吗?
     int intName= (int) (Double.parseDouble(Map.get("Key").toString()));
     
    4、声明和初始化的时候是直接初始化好还是赋值好呢!下面那种方式好呢?
     String  str;
     String  str = null;
     String  str = "";
     那种方式好呢?   5、一个方法里面要调用其他5个方法,而这5个方法没个方法都同时需要一个对象!像这种时候
      是每个方法里面都得到一次该对象,还是在调用这五个方法的方法里面得到该对象把该对象当成
      参数依次传给那五个方法好呢?      public class   ClassName
{

public void mainMethod(){


Connection con = new Connection();
//是把con当成参数传进去效率高还是没个方法都生成一次效率高呢?
methodOne(con);
methodTwo(con)

}

public void methodOne(){
//每个方法里面都需要这个con啊!
Connection con = new Connection();

}
public void methodTwo(){
//每个方法里面都需要这个con啊!
Connection con = new Connection();
}

}
                

解决方案 »

  1.   

    问题1:第二种效率高,第二种方法只新建了一个对象~~问题2:仅仅只是新建空的Map和List对象,效率应该没什么差别~~Map和List在对不同的数据进行处理 时才有效率差别~~问题3应该是对的~~
    问题4:String  str与String  str = null等价!
           理论上说,String str=null比String str=""效率高,但String str=""可以避免空指针异常,具体应用使用方式要看具体应用~~问题5:我觉得还在要看具体应用才能决定,从理论上讲用参数传效率肯定高~~
      

  2.   

    我钟情于String  str = null;
      

  3.   

    问题1:第二种效率高,第二种方法只新建了一个对象~~
    同意问题2:仅仅只是新建空的Map和List对象,效率应该没什么差别~~Map和List在对不同的数据进行处理 时才有效率差别~~
    误解了楼主的意思,不过效率确实一样。问题3应该是对的~~
    不同意,有可能产生错误,long和double字长都是int的两倍,截取的时候可能会有错误。问题4:String  str与String  str = null等价!
           理论上说,String str=null比String str=""效率高,但String str=""可以避免空指针异常,具体应用使用方式要看具体应用~~
    补充:变量在JAVA中使用的最好方法是在使用前初始化,减少内存消耗。不过这样对程序员要求比较高问题5:我觉得还在要看具体应用才能决定,从理论上讲用参数传效率肯定高~~
    补充:方法分为动态方法和静态方法,所以要看调用何种方法。
          这里也可以考虑到垃圾收集机制,同问题4,如果这5个方法中一般只调用1一个或者少数几个,还是在方法里创建的好。因为,这样可以保证新创建的对象触及性为最弱(相比与作为类的一个属性)。
      

  4.   

    第一个问题应该没有疑问.第二个问题我觉得要看具体的应用环境,因为map和list两个接口的用法都是不一样的,所以没有特定的语境没法比较第三个也没法说对或错,要看Map.get("Key").toString()如何来取值,比如取值为:"er4w"那就错了,如果取得134.22那就对了第四个这个也没法说谁好谁坏,但是
         String  str;
         String  str = null;这两种方式是一样的,其实给不给初始值就是说在对象创建时为不为他分配存储空间,比如我这样写try{
        String str = "";
    }
    catch(Exception w){
       
    }
    这样的话我的str只能在try中使用,
    我如果这样写
    String str;
    try{
        str = ""
    }
    catch(Excepton w){}
    那么两者就完全不同了
    5、这个问题没问好,我说说原理吧,其实在java中传参就是传递参数引用,形参和实参是不同的存储空间,当形参变化时,实参不一定变化,但是如果传递的是数组,情况就不一样了,这时传递的是地址,形参和实参同时变化,这就是为什么io包中用read(btye byte[],int offset,int len)来读取流的原因
      

  5.   

    问题1:第二种效率高,第二种方法只新建了一个对象
    问题2:第二种方法多了四个字节的内存(int ArrayLength所占内存)
    问题3: 写法肯定有错,因为Double.parseDouble()得到double型,double型是8个字节,可以为浮点数,而int型是4个字节,不可为浮点数,所以,double型不能赋值给int
    问题4:String  str与String  str = null等价的,但是执行一次赋值为null操作也是要花机器时间的:) 如果你能确定str的初值,请在声明的时候初始化赋值.如果不能确定初值,建议使用String str;
    因为这样声明的时候,如果你在使用之前没有对str赋值,编译器会报错来提醒你对之赋值.
    问题5:强烈支持把con当成参数传进去,而不是在每个方法生成一次.生成数据库连接对于服务器来说数比较好资源的一种,对于一个Web服务器来说,它生成的数据库连接的数目是一定的,还存在着处理同步,处理文件句柄的问题.(eg:Tomcat同时刻稳定处理不超过100左右的数据库处理的连接.)如果你只是生成一次数据库连接,然后作为参数传递到每个使用这个连接的方法中,这样能大大减轻服务器的压力.当然在方法中使用con之前,请检查con的有效性,如果失效,重新创建一次即可.
      

  6.   

    问题1:第二种效率高,第二种方法只新建了一个对象
    2.执行效率应该没什么区别,不过第二种被你浪费内存了
    3.没错
    问题4:String  str与String  str = null等价的,但是执行一次赋值为null操作也是要花机器时间的:) 如果你能确定str的初值,请在声明的时候初始化赋值.如果不能确定初值,建议使用String str;
    4,串
    5、java中传参就是传递参数引用,形参和实参是不同的存储空间,当形参变化时,实参不一定变化,但是如果传递的是数组或者对象(其实数组也是一种对象),这时传递的是引用,引用不会被修改,但是它所指向的对象却会被修改
      

  7.   

    1、
         /**方式一*/
         new ClassName().getMethodOne(); 
         new ClassName().getMethodTwo(); 
         new ClassName().getMethodThree(); 
         /**方式二*/
         ClassName className= new ClassName ();
         className.getMethodOne();
         className.getMethodTwo();
         className.getMethodThree();
    **********************************************************
    getMethodOne(); //得到女朋友
    getMethodTwo();//得到房子
    getMethodThree(); //得到了汽车问题一:就不存在效率的可比性啊。怎么比啊?方式一:是三个不同的对象调用了三个不同的方法,从而三个对象得到了三个不同的结果。
    方式二:是一个对象调用了不同三个方法,一个对象最终得到了三个结果。
    如果方式一和方式二执行的目的,执行完产生的结果是完全一样的,那么根据执行时间可以使用一个时间短效率高的方法。但现在方式一和方式二完全是不一样的,怎么比啊?
    说不定你的事务逻辑还只是允许方式一,虽然如果在程序中占的行数一样,貌似也一样,但差别太大了。你能用方式二去替换方式一嘛?答案是不行的。
    你今天面向对象了吗?^_^
      

  8.   

    同意 laughsmile(海边的星空) 的说法
      

  9.   

    其他没什么意见,唯一要注意的是,java传得参数,无论形参实参都是传得copy
    ,基本类型就是内存的copy,数组和类传得是地址copy,这里要注意一下。