java5 学习笔记2

原创 2007年09月17日 23:21:00


 今天粗略的看了generic,泛型的基本功能,在C++中早就有了,不过Java中的generic的确多了很多东西,但是也正如许多人批判的,一大堆尖括号让代码变丑了,呵呵,不过我才刚开始学,没有体会


 基本功能不废话了,今天觉得比较印象深刻的是generic的类型转换,也就是说:
 LinkedList<Float> ff = new LinkedList<Float>();
 LinkedList<Number> nn ;
 nn = ff;
 这样是错误的,虽然Number是Float的父类,generic的类型转换只限于

基础类型,也就是说
 List<Float> kk = ff;
 是正确的。同样,如果
 Number n = new Float(3.2);
 ff.add(n);
 这样同样不能通过编译。


 之所以generic本身不能有类型转换(也就是使用参数的父类),我个人觉得主要是因为generic这个功能本身是一种编译期间的检查,而不是JVM的一种

改进,所有的generic类型,都会在编译期间被erasure(擦除)掉,实际上,上

面的代码经过编译后,JVM实际看到的代码应该是
 LinkedList ff = new LinkedList();
 具体的generic是不存在的,被擦除了。还有没有其他原因,还要继续深入学习才行~


 generic也可以进行类型限制,即类似下面
 class gTest<TT extends Runnable>{
  public void get(TT tt){
   tt.run();
  }
 }
 这里有点奇怪的是,Runnable明明是接口,但是这里却不用implements,而是统一用extends。我手头这本书没有讲,下次要借本专门的书来看看
 最后,关注《Java in a Nutshell 第五版》

Java学习笔记--SSH框架整合(struts2、spring4、hibernate5)

一、SSH三大框架的概述   ssh为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。    集成SSH框架的系统从职责上分为四层:表...

疯狂JAVA讲义学习笔记5——面向对象2

包装类及其用法Java包含8种基本数据类型,不支持面向对象的编程机制。 为了将8种基本数据类型的变量当成Object类型变量使用,Java提供了包装类(Wrapper Class)。 基本数据类...
  • xundh
  • xundh
  • 2017年01月04日 22:52
  • 308

Java学习笔记(5):2.面向对象之对象的this引用

对象的this引用
  • June94
  • June94
  • 2015年12月16日 23:12
  • 805

Cocos2D-X2.2.3学习笔记5(UI系统)

  • 2014年05月12日 22:29
  • 785KB
  • 下载

Spark2.x学习笔记:5、Spark On YARN模式

Spark学习笔记:第5章Spark On YARN模式有些关于Spark on YARN部署的博客,实际上介绍的是Spark的 standalone运行模式。如果启动Spark的master和wor...

良葛格Java_JDK_5[1].0学习笔记

  • 2012年03月02日 15:48
  • 8.54MB
  • 下载

java学习笔记极品5

  • 2008年04月26日 22:29
  • 1.02MB
  • 下载

h5学习笔记(2)this 、循环赋值引用问题

这几天开始练习js,js写法让我无法适应,一方面是弱引用,更多方面本身对js不熟悉,于是我连续踩坑了几次。踩坑日志一第一次踩坑是关于this 这个在闭包函数的时候指向的问题,第一次在使用egret的时...

《Java学习笔记 JDK 5》 林信良 著作

  • 2009年02月07日 21:02
  • 8.54MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: java5 学习笔记2
举报原因:
原因补充:

(最多只允许输入30个字)