仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 767|回复: 18
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Jdk5.0新特征Generic Types(泛型)

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
J2ME在手机游戏开发的作用也是无用质疑的。至于桌面程序,可能有人说java不行,界面不好看,但是请看看net网页编程Beans和Eclipse吧,他们都是利用java开发的,而他们的界面是多么的华丽,所以界面决不是java的缺点。还有一个不得不提的优点就是大多java人员都挂在嘴边的java的跨平台性,目前这确实也是java优点之一。
1.先容
2.界说复杂Java泛型
实在Java的泛型就是创立一个用范例作为参数的类。就象我们写类的办法一样,办法是如许的method(Stringstr1,Stringstr2),办法中参数str1、str2的值是可变的。而泛型也是一样的,如许写classJava_Generics<K,V>,这里边的K和V就象办法中的参数str1和str2,也是可变。上面看看例子:
importjava.util.Hashtable;
classTestGen0<K,V>{
 publicHashtable<K,V>h=newHashtable<K,V>();
 publicvoidput(Kk,Vv){
  h.put(k,v);
 }
 publicVget(Kk){
  returnh.get(k);
 }
 publicstaticvoidmain(Stringargs[]){
  TestGen0<String,String>t=newTestGen0<String,String>();
  t.put("key","value");
  Strings=t.get("key");
  System.out.println(s);
 }
}
准确输入:value
这只是个例子,不外看看是否是创立一个用范例作为参数的类,参数是K,V,传进的“值”是String范例。这个类他没有特定的待处置型别,之前我们界说好了一个类,在输出参数有所流动,是甚么型其余有请求,可是如今编写程序,完整能够不制订参数的范例,详细用的时分来断定,增添了程序的通用性,像是一个模板。
3.泛型通配符
起首,上面是一个例子,感化是打印出一个汇合中的一切元素,我们起首用老版本jdk1.4的编码划定规矩,代码以下:
voidprintColleciton(Collectionc){
iteratori=c.iterator();
for(k=0;k<c.size();k++){
System.out.pritnln(i.next();
}
然后,我们用jdk5.0泛型来重写下面这段代码(轮回的语法是新版本的语法):
voidprintCollection(Colleciton<Object>c){
for(Objecte:c){
System.out.print(e);
}
}
这个新版本其实不比老版本的很多多少少,老版本能够用恣意一种汇合范例作为参数来挪用,而新版本仅仅持有Collection<Object>范例,Colleciton<Object>并非恣意范例的Collection的超类。
那末甚么是一切Colleciton范例的超范例呢?它是Collection<?>如许一个范例,读作“未知Colleciton”。它的意义是说Colleciton的元素范例能够婚配恣意范例,我们把它称作通配符范例,我们如许写:
voidprintCollection(Colleciton<?>c){
for(Objecte:c){
System.out.println(e);
}
}
如今我们用恣意范例的汇合来挪用它了,必要注重的是外部办法printColleciton(),我们任能够从c中来读出元素,而且这些元素是Object范例,并且是平安的,由于不管汇合中是甚么范例,它总包含Object,可是将恣意对象加到汇合中是不平安的:
Colleciton<?>c=newArrayList<String>();
c.add(newObject());//编译时毛病
因为我们不晓得c持有的是甚么范例的元素,我们不克不及加object到汇合中往。add()办法用范例E作为参数,(汇合的元素范例)认真正的参数范例是?的时分,它代表的是一些未知范例。任何传送给add()办法的参数必需是这个未知范例的子范例。因为我们不晓得未知范例,以是我们传送给它任何工具。次要的破例是null,它是每个范例的成员。
<p>另外一方面,假定给一个List<?>,我们挪用get()而且充实使用了局。了局范例是未知范例。可是我老是晓得它是一个Object,因而分派一个从get()掏出来的了局到一个object的变量是平安的,大概作为一个参数传送到一个必要object范例的中央。
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,net网页编程Beans等等,但是我认为如果java想超越.net网页编程,那么他首先要解决的就是IDE工具的整合。
小魔女 该用户已被删除
沙发
发表于 2015-1-21 10:19:16 来自手机 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
透明 该用户已被删除
板凳
发表于 2015-1-24 12:35:45 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
若相依 该用户已被删除
地板
 楼主| 发表于 2015-1-24 16:01:03 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
深爱那片海 该用户已被删除
5#
发表于 2015-2-2 08:22:29 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
爱飞 该用户已被删除
6#
发表于 2015-2-7 17:20:18 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
变相怪杰 该用户已被删除
7#
发表于 2015-2-7 18:39:35 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
活着的死人 该用户已被删除
8#
发表于 2015-2-9 05:49:47 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
不帅 该用户已被删除
9#
发表于 2015-2-9 07:04:28 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
老尸 该用户已被删除
10#
发表于 2015-2-20 03:52:19 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
admin 该用户已被删除
11#
发表于 2015-3-6 16:08:16 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
若天明 该用户已被删除
12#
发表于 2015-3-13 04:09:19 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
因胸联盟 该用户已被删除
13#
发表于 2015-3-20 12:15:30 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
14#
发表于 2015-3-22 04:07:52 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
愤怒的大鸟 该用户已被删除
15#
发表于 2015-3-22 17:08:24 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
简单生活 该用户已被删除
16#
发表于 2015-3-25 08:19:13 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
谁可相欹 该用户已被删除
17#
发表于 2015-3-28 22:59:12 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
冷月葬花魂 该用户已被删除
18#
发表于 2015-3-30 06:34:44 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
莫相离 该用户已被删除
19#
发表于 2015-4-3 13:57:46 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 19:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表