9 个解决方案
#1
我也用*
#2
好象用*对效率没有影响吧?
#3
对于一些jdk自带的包。我会用*
但是在工作中,如果系统多性能要求比较高的时候,或是用到自己开发的包的时候,会用具体引用类,节省装载时间!
但是在工作中,如果系统多性能要求比较高的时候,或是用到自己开发的包的时候,会用具体引用类,节省装载时间!
#4
如果你能确定需要引用的类包那当然是将具体的包引用近来就好了,这样可以提高装载的速度,否则还是用*吧
#5
我认为两种写法没有任何区别,假设我有一个这样的类:
import java.util.*;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
import java.util.*;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
#6
在import的时候是用“*” 只对编译时的效率有影响,对运行效率没有影响。因为编译时需要在路径去寻找匹配的类名,而编译后的class文件里会自动在你的类名中加上全称,如编码时写 Vector,而在生成的class文件中会写成java.util.Vector 。
所以大可不必担心运行效率。
在import的时候是用“*” 要注意的问题只是要小心类名相同造成编译错误,而且大部分的开发工具都会有提示。
我还是喜欢用 *
所以大可不必担心运行效率。
在import的时候是用“*” 要注意的问题只是要小心类名相同造成编译错误,而且大部分的开发工具都会有提示。
我还是喜欢用 *
#7
对不起,按错键了。呵呵
继续上面的用javap反变异由javac产生的Test.class,结果:
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
看到了吗?Java的编译器会自动把这个类的绝对路径加上去,而且还注意到了吗?根本上就是忽略了第一句“import java.util.*;”
然后,我把上面的Test类改成如下:
import java.util.Vector;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
你可以用UltraEdit比较一下,根本没有区别!
所以,我认为写成类的绝对路径只有两个好处:
1.更加明确,不会出现:假如你有一个类名叫:com.myself.Vector,这个Package在Java编译器可以找得到的地方。如果你的程序里这样写:
import java.util.*;
import com.myself.*;
那么Java编译器会报错,它不知道你要用哪一个Vector类,是自己的还是Sun的。
2.明确写成类的绝对名称,可以加快编译的速度,但是并不能提高运行速度!(不要想当然)
我说完了,各位开骂
继续上面的用javap反变异由javac产生的Test.class,结果:
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
看到了吗?Java的编译器会自动把这个类的绝对路径加上去,而且还注意到了吗?根本上就是忽略了第一句“import java.util.*;”
然后,我把上面的Test类改成如下:
import java.util.Vector;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
你可以用UltraEdit比较一下,根本没有区别!
所以,我认为写成类的绝对路径只有两个好处:
1.更加明确,不会出现:假如你有一个类名叫:com.myself.Vector,这个Package在Java编译器可以找得到的地方。如果你的程序里这样写:
import java.util.*;
import com.myself.*;
那么Java编译器会报错,它不知道你要用哪一个Vector类,是自己的还是Sun的。
2.明确写成类的绝对名称,可以加快编译的速度,但是并不能提高运行速度!(不要想当然)
我说完了,各位开骂
#8
我同意ganh(水水水)!
其实,应该是我先贴出来的。因为要写例子,比你慢了!呵呵!
其实,应该是我先贴出来的。因为要写例子,比你慢了!呵呵!
#9
同意ganh(水水水)!
#1
我也用*
#2
好象用*对效率没有影响吧?
#3
对于一些jdk自带的包。我会用*
但是在工作中,如果系统多性能要求比较高的时候,或是用到自己开发的包的时候,会用具体引用类,节省装载时间!
但是在工作中,如果系统多性能要求比较高的时候,或是用到自己开发的包的时候,会用具体引用类,节省装载时间!
#4
如果你能确定需要引用的类包那当然是将具体的包引用近来就好了,这样可以提高装载的速度,否则还是用*吧
#5
我认为两种写法没有任何区别,假设我有一个这样的类:
import java.util.*;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
import java.util.*;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
#6
在import的时候是用“*” 只对编译时的效率有影响,对运行效率没有影响。因为编译时需要在路径去寻找匹配的类名,而编译后的class文件里会自动在你的类名中加上全称,如编码时写 Vector,而在生成的class文件中会写成java.util.Vector 。
所以大可不必担心运行效率。
在import的时候是用“*” 要注意的问题只是要小心类名相同造成编译错误,而且大部分的开发工具都会有提示。
我还是喜欢用 *
所以大可不必担心运行效率。
在import的时候是用“*” 要注意的问题只是要小心类名相同造成编译错误,而且大部分的开发工具都会有提示。
我还是喜欢用 *
#7
对不起,按错键了。呵呵
继续上面的用javap反变异由javac产生的Test.class,结果:
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
看到了吗?Java的编译器会自动把这个类的绝对路径加上去,而且还注意到了吗?根本上就是忽略了第一句“import java.util.*;”
然后,我把上面的Test类改成如下:
import java.util.Vector;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
你可以用UltraEdit比较一下,根本没有区别!
所以,我认为写成类的绝对路径只有两个好处:
1.更加明确,不会出现:假如你有一个类名叫:com.myself.Vector,这个Package在Java编译器可以找得到的地方。如果你的程序里这样写:
import java.util.*;
import com.myself.*;
那么Java编译器会报错,它不知道你要用哪一个Vector类,是自己的还是Sun的。
2.明确写成类的绝对名称,可以加快编译的速度,但是并不能提高运行速度!(不要想当然)
我说完了,各位开骂
继续上面的用javap反变异由javac产生的Test.class,结果:
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
看到了吗?Java的编译器会自动把这个类的绝对路径加上去,而且还注意到了吗?根本上就是忽略了第一句“import java.util.*;”
然后,我把上面的Test类改成如下:
import java.util.Vector;
public class Test {
public static void main(String [] args) {
Vector test = new Vector();
}
}
Compiled from Test.java
public class Test extends java.lang.Object {
public Test();
public static void main(java.lang.String[]);
}
Method Test()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #2 <Class java.util.Vector>
3 dup
4 invokespecial #3 <Method java.util.Vector()>
7 astore_1
8 return
你可以用UltraEdit比较一下,根本没有区别!
所以,我认为写成类的绝对路径只有两个好处:
1.更加明确,不会出现:假如你有一个类名叫:com.myself.Vector,这个Package在Java编译器可以找得到的地方。如果你的程序里这样写:
import java.util.*;
import com.myself.*;
那么Java编译器会报错,它不知道你要用哪一个Vector类,是自己的还是Sun的。
2.明确写成类的绝对名称,可以加快编译的速度,但是并不能提高运行速度!(不要想当然)
我说完了,各位开骂
#8
我同意ganh(水水水)!
其实,应该是我先贴出来的。因为要写例子,比你慢了!呵呵!
其实,应该是我先贴出来的。因为要写例子,比你慢了!呵呵!
#9
同意ganh(水水水)!