当前位置:  技术问答>java相关

大家认为Java是否有必要加入模版呢?

    来源: 互联网  发布时间:2015-10-17

    本文导语:  有两年没有看C++了,最近狂看了几个月C++,发现自己的知识真的过时了。C++还真的是很有活力,现在的C++已经不是我上大学时候的C++了。 加入了高级模版特性的C++,用起来觉得非常的高级。更重要的是没有运行时开...

有两年没有看C++了,最近狂看了几个月C++,发现自己的知识真的过时了。C++还真的是很有活力,现在的C++已经不是我上大学时候的C++了。

加入了高级模版特性的C++,用起来觉得非常的高级。更重要的是没有运行时开销。大家认为Java是不是也应该加入模版呢?

|
java之所以取消了模板,因为java和c相比,java有单根继承的特性
(所有的java类都继承object,如果你不明确写extends那么默认,继承object,
这样作的好处是如果你定义一个object的引用,那么它可以接受所有的对象。

比如myVvector.add(Object o);,想想模板的作用是什么。
很多时候因为type的改变,要从类的模板定义一个新的模板类。来适应type的改变。java的单根特性可以取代模板的一部分作用的。

但是java这样设计,方便了开发者。也牺牲了部分性能,由于object可以接受所有的class对象引用,所以也许你需要的是一个int对象的Vector,但放进去一个string对象的引用也不会编译期错误,很多bug会不好查。:((

我的了解就这些了。不一定对的。参考而已。

|
发个例子

import java.util.*;

interface Compare {
  boolean lessThan(Object lhs, Object rhs);
  boolean lessThanOrEqual(Object lhs, Object rhs);

//////////////////////////////////////////////////////////////////////
class SortVector extends Vector {
  private Compare compare; // To hold the callback
  public SortVector(Compare comp) {
    compare = comp;
  }
  public void sort() {
    quickSort(0, size() - 1);
  }
  private void quickSort(int left, int right) {
    if(right > left) {
      Object o1 = elementAt(right);
      int i = left - 1;
      int j = right;
      while(true) {
        while(compare.lessThan(
              elementAt(++i), o1))
          ;
        while(j > 0)
          if(compare.lessThanOrEqual(
             elementAt(--j), o1))
            break; // out of while
        if(i >= j) break;
        swap(i, j);
      }
      swap(i , right);
      quickSort(left, i-1);
      quickSort(i+1, right);
    }
  }
  private void swap(int loc1, int loc2) {
    Object tmp = elementAt(loc1);
    setElementAt(elementAt(loc2), loc1);
    setElementAt(tmp, loc2);
  }

//////////////////////////////////////////////////////////////////////////
public class StringSortTest {

  static class StringCompare implements Compare {
    public boolean lessThan(Object l, Object r) {
      return ((String)l).toLowerCase().compareTo(
        ((String)r).toLowerCase()) 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在公司做JAVA程序,大家认为最重要的是什么???
  • 大家认为Linux Mendrake8.2好还是RedHat Linux7.3好
  • 当今普遍认为性能最好的Unix是哪个版本的!?
  • linux的可靠性真的可以?我不太认为
  • 大家推荐自己认为最好的一个jsp学习网站,好么?100分相求~~~~~~
  • 我认为我一经装了需要的包,但包倚赖还是没解决.
  • 大家认为从开机到内核加载最没有必要的步骤是什么?
  • 想报考软件工程硕士,不知道程序员哥们们认为这个东西怎么样?有没有真正的含金量??
  • Jbuilder的安装问题,认为自己是高手的请进来,一定给分!!
  • 你认为最好的中文JAVA网站或有大量优秀JAVA源代码免费下载的网站是哪里???送分!!!
  • 请大家帮我介绍一两本目前你认为最好的和最容易上手的Corba开发书籍
  • 大家认为国产Linux好不好,和国外有什么差距!国产Linux哪一家的比较好点?
  • redhat9安装的网络配置问题(很奇怪的现象,我认为)
  • 可不可以这样认为!c语言是一道唯一指向操作系统的语言,精通了它,就了解了操作系统?
  • 一个我认为比较难的问题,我希望,能够引起您的兴趣!!!
  • 如何欺骗别人,使他用ping命令误认为我的操作系统不是linux?
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • IP地址数字互转 iis7站长之家
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?
  • 评论:ZDNET:研究认为Java和.Net都是一场灾难


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3