|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)j2se年夜凡用过C/C++的伴侣对“泛型”这个词都不会生疏吧?我信任有过一些Java编码履历的伴侣或多或少也碰到过利用汇合类的办法时必需要手工做范例转换的情形。看上面的例子:
importjava.util.ArrayList;
importjava.util.Iterator;
publicclassMyGenerics{
publicstaticvoidmain(String[]args){
useNonGenerics();
useGenerics();
}
privatestaticvoiduseNonGenerics(){
ArrayListaList=newArrayList();
aList.add(newInteger(7));
aList.add(newInteger(17));
intsum=0;
Iteratoriter=aList.iterator();
while(iter.hasNext()){
sum+=((Integer)iter.next()).intValue();
}
System.out.println(sum);
}
privatestaticvoiduseGenerics(){
ArrayList<Integer>aList=newArrayList<Integer>();
aList.add(newInteger(7));
aList.add(newInteger(17));
intsum=0;
Iterator<Integer>iter=aList.iterator();
while(iter.hasNext()){
sum+=iter.next().intValue();
}
System.out.println(sum);
}
}
在这个例子中我供应了两个分歧办法来完成一样的事,例子自己有无意义不主要,我只是想让你看到一些实践在Java中利用泛型的代码。
泛型的优点在于它能够制止那些我们本不必要往思索的范例转换,而且能够供应编译期的范例平安反省。(注重,在下面的例子中,假如不利用泛型,那末我们能够把iter.next()前往的对象转换成恣意范例,然后挪用谁人范例的办法而不会抛出任何编译期非常)同时,泛型的引进也为模板类和模板办法的呈现奠基了基本。
假如偶然间,倡议人人把新的java.util.Collection的源码拿上去看一看,你完整能够完成本人的撑持泛型的API。
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。 |
|