- 浏览: 138089 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (137)
- java (138)
- c# winform (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格 (1)
- Android平台下实现一个进程管理器 (1)
- 装饰模式 (1)
- 【转】介绍线性代数 (1)
- fqueue初步分析 (1)
- 千万级sql优化 (1)
- 开源项目 (1)
- js弹出遮罩层【并弹出提示信息】 (1)
- 代码高亮、源码格式、iteye代码格式的种种方法 (1)
- Drupal学习笔记(四)warning: array_key_exists(): The first argument should be either a string or an integer (1)
- 2011年Java EE生产力报告 (1)
- java(j2se)学习笔记----类注释文档编写方法? (1)
- ubuntu 添加应用程序 到快速启动 (1)
- JPA注解配置实例 (1)
- C++著名内裤 (1)
- Android笔试或者面试的几个题目 (1)
- Ajax&&GWT (1)
- IHS静默安装(转) (1)
- WIN98下运行DOTNET程序的一些问题 (1)
- 开启新的项目——基于电子邮件的知识管理系统 (1)
- 这里的BLOG服务器也太不稳定了 (1)
- MapXtreme2004代码 读取TAB表中的元素 (1)
- 终于把我的大部分BLOG复制到这里来了 (1)
- 2011NOKIA笔试题目 (1)
- Ajax实现省市二级联动(源代码) (1)
- mxgraph之保存图片 (1)
- sso单点登录 (1)
- Android开发之SurfaceView (1)
- Android开发之ListView (1)
- SQL SERVER 2008 中分页方法集锦 (1)
- 2011-12-2 (1)
- 分页组件 (1)
- Myeclipse自动加入struts 2 Core Libraries导致antlr错误 (1)
- jbpm4在tomcat6中EL错误 (1)
- c++中有关数组和指针的若干问题 (1)
- rails 上传文件和删除文件 (1)
最新评论
-
mazongfei:
就是有点乱,不过还是不错的
sso单点登录 -
xiaokang1582830:
写得这么乱,地球人是无法看得懂的...
sso单点登录 -
shenyu:
大侠,下回分解在哪里啊?
mxgraph之保存图片 -
GZQ0821:
为啥不编译后贴出来呢!
SQL SERVER 2008 中分页方法集锦 -
evil9999:
http://belives2012.blog.163.com ...
千万级sql优化
<h1><span lang="en-us">why</span><span>,java为什么需要泛型?</span></h1>
<h1><span lang="en-us">how</span><span>,擦除,一种折中方案</span></h1><p class="msonormal"><span>泛型其实算不上是一种语言特性,它只是</span><span lang="en-us">java</span><span>实现泛型技术的一种折中,至于为什么选择擦除,我猜可能是为了保持向后兼容,使得泛型代码和非泛型代码能够共存。为了保持向后兼容,泛型对</span><span lang="en-us">jvm</span><span>是不可见的,也就是</span><span lang="en-us">jvm</span><span>根本不需要做很多变化,因为既然你实现泛型的主要目标是提供编译时期的类型检查安全,那么很多工作都应该在编译时期做,实际上也是这样的,擦除也就是这么一个原理,在运行时期看不见任何泛型参数,</span><span lang="en-us">jvm</span><span>执行泛型代码就像执行以前的普通代码一样!(当然不做任何改变也是不可能的,可以参考</span><span lang="en-us">http://icyfenix.iteye.com/blog/1021949</span><span>)。</span>
list<string > list = new arrarylist<string>();list.add(“cantellow”);int integer = list.get(0);//compile error
<span>然后,将参数化类型中的类型参数</span><span lang="en-us">"</span><span>擦除</span><span lang="en-us">"</span><span>(</span><span lang="en-us">erasure</span><span>)掉,并且将类型变量用</span><span lang="en-us">"</span><span>上限(</span><span lang="en-us">upper bound</span><span>)</span><span lang="en-us">"</span><span>取代,通常情况下这些上限是</span><span lang="en-us"> object</span><span>。这里的类型变量是指实例域,本地方法域,方法参数以及方法返回值中用来标记类型信息的</span><span lang="en-us">"</span><span>变量</span><span lang="en-us">"</span><span>,例如:实例域中的变量声明</span><span lang="en-us"> a elem;</span><span>,方法声明</span><span lang="en-us"> node (a elem){};</span><span>,其中,</span><span lang="en-us">a </span><span>用来标记</span><span lang="en-us"> elem </span><span>的类型,它就是类型变量。</span>
<p class="msonormal"><span lang="en-us"> </span>
list<integer> li = new arraylist<integer>(); list<number> ln = li; // illegal ln.add(new float(3.1415));
<span>因为</span><span lang="en-us"> ln</span><span>是</span><span lang="en-us"> list<number></span><span>,所以向其添加</span><span lang="en-us"> float</span><span>似乎是完全合法的。但是如果</span><span lang="en-us"> ln</span><span>是</span><span lang="en-us"> li</span><span>的别名,那么这就破坏了蕴含在</span><span lang="en-us"> li</span><span>定义中的类型安全承诺</span><span lang="en-us"> —— </span><span>它是一个整数列表,这就是泛型类型不能协变的原因。</span>
<h2><span>获取泛型类型</span></h2><p class="msonormal"><span>更多信息可以参考讨论:</span><span lang="en-us">http://www.iteye.com/topic/585900</span>
发表评论
-
rails 上传文件和删除文件
2012-02-07 14:33 1121文件上传,页面代码: <%form_tag '/ ... -
c++中有关数组和指针的若干问题
2012-02-07 14:13 822<pre class="reply-t ... -
jbpm4在tomcat6中EL错误
2012-02-04 14:03 1089? jbpm4 在tomcat6 下面ssh2 这个错 ... -
Myeclipse自动加入struts 2 Core Libraries导致antlr错误
2012-02-04 13:29 995解决方法: 选择windows---preferenc ... -
分页组件
2012-02-03 12:23 927撒地方阿斯顿的撒啊受到爱上 ... -
2011-12-2
2012-02-02 15:34 752ubuntu系统root默认密码,每次开机会随机产生默 ... -
SQL SERVER 2008 中分页方法集锦
2012-02-01 09:34 1406<span style="font-s ... -
Android开发之ListView
2012-01-31 13:53 1271<p><br></p&g ... -
Android开发之SurfaceView
2012-01-11 15:34 1262<h1>Android开发 ... -
sso单点登录
2012-01-11 12:44 3961SSO单点登录 目 ... -
mxgraph之保存图片
2011-12-28 18:38 24501、写在前端:任何情况下,保存图片不可能只通过前台代码 ... -
Ajax实现省市二级联动(源代码)
2011-12-28 16:23 5021<span style="font-f ... -
2011NOKIA笔试题目
2011-12-21 09:29 1078今天去NOKIA机试,纯粹打酱油,没什么准备,题目貌似 ... -
终于把我的大部分BLOG复制到这里来了
2011-12-16 16:22 1041本来我的BLOG都在博客中国的<img src= ... -
MapXtreme2004代码 读取TAB表中的元素
2011-12-15 12:14 957<?xml:namespace prefix = ... -
这里的BLOG服务器也太不稳定了
2011-12-14 20:53 699<p class="MsoPlainT ... -
开启新的项目——基于电子邮件的知识管理系统
2011-12-14 19:59 944</span></font>& ... -
WIN98下运行DOTNET程序的一些问题
2011-12-14 17:24 814</span></font>& ... -
IHS静默安装(转)
2011-12-13 11:59 1336<span style="col ... -
Ajax&&GWT
2011-12-13 10:14 680工作的久了,一直忙于公司相关的技术和业务上,对于如今流 ...
相关推荐
Java泛型技术的发展历程及其在JDK1.4中的实现,是IT领域特别是软件开发与设计中的一个重要里程碑。本文将深入探讨泛型技术的概念、历史背景、与其它编程概念的区别,以及其在Java语言中的具体应用。 ### 泛型技术...
- 对于希望深入了解泛型编程和范畴论的读者来说,本文档提供了一个很好的起点。 - 通过本文档的学习,读者不仅能掌握伴随的基本概念,还能了解到其在编程实践中的具体应用。 综上所述,伴随不仅是一种理论上的构造,更是...
### 泛型程式设计与STL #### 一、概览与重要性 - **标题与描述中的核心概念**:标题“泛型程式设计与STL”与描述中提到的“欢迎下载”,简明地表达了这份文档的主要内容是关于泛型编程与标准模板库(STL)的介绍和...
它不仅提供了常见的数据结构和算法,还引入了一种新的编程方法论——泛型编程。通过STL,C++开发者可以更容易地实现复杂的数据处理任务,同时保持代码的简洁和高效。 ### 总结 STL是C++编程中不可或缺的一部分,它...
随着计算机科学的发展,软件开发的方法论也在不断地进步和完善。《泛型编程与设计新思维》这一文档深入探讨了泛型编程的概念及其在现代软件工程中的应用。本文将根据提供的文档信息,详细解释泛型编程的基本原理、...
在描述中提到的“高抽象的泛型机制”可能指的是更加抽象层面的泛型编程方法,它有助于简化泛型程序的设计和描述,同时提高泛型构件的可重用性和可靠性。 在提供的文件内容摘录中,作者提到了一个名为“Apla”的抽象...
本文探讨了在Java Web程序中应用泛型DAO模式的作用和意义。首先,文章明确了Java Web技术的定义和在互联网领域中的重要性,阐述了随着软件功能需求的不断提高,Java Web技术也在不断升级和改造。随后,文章指出泛型...
标题《Distributed Systems Principles and Paradigms》(分布式系统原理与泛型)第二版英文版表明,本书是一本专注于分布式系统理论与设计的教材。从Andrew S. Tanenbaum的介绍中,我们可以得知作者是计算机科学界...
Erlang 是一种为并发、分布式和容错系统设计的编程语言,它的核心特点在于其纯函数式编程范式以及强大的泛型编程能力。下面将详细介绍这两个方面。 ### 1. 纯函数式编程 在 Erlang 中,函数式编程的核心理念是避免...
《C#本质论》是C#编程领域的一部经典之作,专为想要深入理解C#语言的程序员设计。这本书详细地介绍了C#的核心概念、语法结构以及编程实践,旨在帮助读者掌握C#的本质,从而更好地利用这一强大的面向对象语言进行软件...
《C#本质论》是一本深入探讨C#编程语言核心概念和技术的经典著作,分为中文版和英文版。这本书由著名编程专家撰写,旨在帮助读者理解C#语言的本质,从而更好地运用到实际开发中。以下是对书中主要知识点的详细阐述:...
### 泛型编程在科学计算中的应用:C++、Java与C#的比较 #### 摘要概览 本文是一篇关于泛型编程在科学计算领域应用的研究论文。研究对比了Java、C#和C++三种语言在实现泛型(参数化类型)方面的表现,并重点介绍了...
《C#本质论》是一本深入探讨C#编程语言核心概念和技术的中文书籍。C#是由微软公司开发的一种面向对象的、类型安全的编程语言,主要用于构建Windows平台上的应用程序,尤其是.NET框架下的应用。这本书旨在帮助读者...
3. **泛型**:C#的泛型允许创建可重用的类型安全组件,书中有专门章节讨论泛型类、泛型接口、泛型方法和泛型委托,以及它们在集合类型中的应用。 4. **C#高级特性**:涵盖匿名类型、动态类型、Lambda表达式、LINQ...
4. **递归泛型(Recursive Generics)**:允许在泛型类或接口中引用未定义的自身,为复杂数据结构的设计提供了更多灵活性。 5. **throw表达式(Throw Expressions)**:可以在表达式中直接抛出异常,而不需要括号...
6. 泛型:泛型允许在不指定具体类型的情况下定义类和方法,从而实现了类型参数化,提高了代码的复用性和安全性。 7. 动态编程:C# 4.0引入了动态类型,允许在运行时确定对象的类型,使C#能够更好地与非.NET平台的库...