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();
}
。
}
问题4:String str与String str = null等价!
理论上说,String str=null比String str=""效率高,但String str=""可以避免空指针异常,具体应用使用方式要看具体应用~~问题5:我觉得还在要看具体应用才能决定,从理论上讲用参数传效率肯定高~~
同意问题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一个或者少数几个,还是在方法里创建的好。因为,这样可以保证新创建的对象触及性为最弱(相比与作为类的一个属性)。
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)来读取流的原因
问题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的有效性,如果失效,重新创建一次即可.
2.执行效率应该没什么区别,不过第二种被你浪费内存了
3.没错
问题4:String str与String str = null等价的,但是执行一次赋值为null操作也是要花机器时间的:) 如果你能确定str的初值,请在声明的时候初始化赋值.如果不能确定初值,建议使用String str;
4,串
5、java中传参就是传递参数引用,形参和实参是不同的存储空间,当形参变化时,实参不一定变化,但是如果传递的是数组或者对象(其实数组也是一种对象),这时传递的是引用,引用不会被修改,但是它所指向的对象却会被修改
/**方式一*/
new ClassName().getMethodOne();
new ClassName().getMethodTwo();
new ClassName().getMethodThree();
/**方式二*/
ClassName className= new ClassName ();
className.getMethodOne();
className.getMethodTwo();
className.getMethodThree();
**********************************************************
getMethodOne(); //得到女朋友
getMethodTwo();//得到房子
getMethodThree(); //得到了汽车问题一:就不存在效率的可比性啊。怎么比啊?方式一:是三个不同的对象调用了三个不同的方法,从而三个对象得到了三个不同的结果。
方式二:是一个对象调用了不同三个方法,一个对象最终得到了三个结果。
如果方式一和方式二执行的目的,执行完产生的结果是完全一样的,那么根据执行时间可以使用一个时间短效率高的方法。但现在方式一和方式二完全是不一样的,怎么比啊?
说不定你的事务逻辑还只是允许方式一,虽然如果在程序中占的行数一样,貌似也一样,但差别太大了。你能用方式二去替换方式一嘛?答案是不行的。
你今天面向对象了吗?^_^
,基本类型就是内存的copy,数组和类传得是地址copy,这里要注意一下。