发布者认证信息(营业执照和身份证)未完善,请登录后完善信息登录
成都Java高端培训课程哪家好?_陶陶网
首页 » 资讯 » 教育/运动 > 成都Java高端培训课程哪家好?

成都Java高端培训课程哪家好?

  发布时间 : 2018-12-24 14:15:24 10
内容提要
成都Java高端培训课程哪家好?千锋老师又来发福利啦,这次是关于泛型的知识哦~泛型(Generictype 或者 generics)是对 Java 语言的类

 

成都Java高端培训课程哪家好?

千锋老师又来发福利啦,这次是关于泛型的知识哦~

泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样.

可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使特别常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象.

因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:

Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");

要让程序能过,必须将 get() 的结果强制类型转换为 String,并且希望结果真的是一个 String.但是有可能某人已经在该映射中保存了不是 String 的东西,这样的话,上面的代码将会抛出 ClassCastException.

理想情况下,您可能会得出这样一个观点,即 m 是一个 Map,它将 String 键映射到 String 值.这可以让您消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中.这就是泛型所做的工作. 

泛型的好处

Java 语言中引入泛型是一个较大的功能增强.不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了.这带来了很多好处:

类型安全. 泛型的主要目标是提高 Java 程序的类型安全.用知道使用泛型定义的变量的类型-,编译器可以在一个高得多的程度上验证类型假设.没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中).

Java 程序中的一种流行技术是定义这样的集合,即它的元素或键是公共类型的,比如"String 列表"或者"String String 的映射".靠在变量声明中捕获这一附加的类型信息,泛型允许编译器实施这些附加的类型约束.类型错误现在就可以在编译时被捕获了,而不是在运行时当作 ClassCastException 展示出来.将类型检查从运行时挪到编译时有助于您更容易找到错误,并可提高程序的可靠性.

消除强制类型转换. 泛型的一个附带好处是,消除源代码中的许多强制类型转换.这使得代码更加可读,并且减少了出错机会.

尽管减少强制类型转换可以降低使用泛型类的代码的罗嗦程度,但是声明泛型变量会带来相应的罗嗦.比较下面两个代码例子.

该代码不使用泛型:

List li = new ArrayList();
li.put(new Integer(3));
Integer i = (Integer) li.get(0);


该代码使用泛型:

List<Integer> li = new ArrayList<Integer>();
li.put(new Integer(3));
Integer i = li.get(0);
    在简单的程序中使用一次泛型变量不会降低罗嗦程度.但是对于多次使用泛型变量的大型程序来说,则可以累积起来降低啰嗦程度.

潜在的性能收益. 泛型为较大的优化带来可能.在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中.但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能.

由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改.所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已.

想要学习更多的Java知识的话,还是来千锋教育吧!

千锋成都校区:http://cd.mobiletrain.org/

成都校区地址:成都市武侯区科华北路62号力宝大厦N(北楼)18楼

培训咨询专线:028-83178771  4008119990

咨  询  QQ  : 1660794050

面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、Java+云数据培训、大数据开发培训、VR/AR/Unity游戏开发培训、Python培训、Linux云计算培训、全栈软件测试培训、Android培训、iOS培训

 

 

 

 

 成都Java高端培训课程哪家好?

 


关键词: 成都Java高端
 
[ 资讯搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]
同类资讯
亿华供应产品推荐
亿华采购推荐
推荐图文
推荐资讯
VIP2 佛山到江阴港海运运输 418
VIP2 佛山到浙江港海运运输/海运公司/货运物流 260
点击排行
没有相关数据
最新VIP
VIP1 北京鸿业晶樽广告有限责任公司 北京
VIP1 苏州海景医药科技有限公司 江苏
VIP1 武汉亚太瑞斯会展服务有限公司 北京
VIP2 长沙阳宏电子科技有限公司 湖南
VIP2 长沙凯吉电子科技有限公司 湖南
VIP2 湖北中为励信招标咨询有限公司 湖北
layui

微信扫码关注 亿华联众 公众号