好像都说本质上不一样,那么到底有什么不一样的,网上关于两者区别的说明好像也不是很多他们的关键区别在哪里呢,实现上有什么本质区别,思想上有什么本质区别??或者哪个帖子或哪本书上有详解说明两者区别的内容,介绍给我,我再去看

解决方案 »

  1.   

    java里没有模板啊,是c++的概念啊!
      

  2.   

    应该是一回事吧  c++里叫模板,java叫泛型
      

  3.   

    那么,JAVA的泛型真的是和C++中的模板一样吗,还是加强了的模板??或者只是形似而已??
      

  4.   

    泛型类的语法表面上类似于 C++ 中的模板工具。但是二者之间有着本质的区别。例如,Java 语言中的泛型不能接受基本类型作为类型形参 —— 只能接受引用类型。这意味着可以定义 List<Integer>,但是不可以定义 List<int>。(然而,自动装箱可以有助于使 List<Integer> 在行为上类似于一个 int List。) C++ 模板是有效的宏命令;当您使用 C++ 模板时,编译器使用提供的类型形参扩充模板。为 List<A> 生成的 C++ 代码不同于为 List<B> 生成的代码,因为 A 和 B 可能具有不同的运算符重载或内联方法。并且在 C++ 中,List<A> 和 List<B> 实际上是两个不同的类。Java 泛型类以不同的方式实现。类型 ArrayList<Integer> 和 ArrayList<String> 的对象共享相同的类,并且只存在一个 ArrayList 类。编译器实施类型约束,并且运行时没有关于泛型的类型形参的任何信息。这是通过擦除 来实现的,