学习猛虎(JDK1.5)的新特性

由于《EJB3 in action》里的代码是基于JDK1.5的,所以在此将猛虎的新特性列举如下,本文引自天极网,由于写的简单易懂,特收藏之,适合给初学者一个"simple glance"(当然,我就是初学者啦:P)
1.泛型(Generic)
  C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
[code]Collection<String> c = new ArrayList();
c.add(new Date()); [/code]
  编译器会给出一个错误:
add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)

2.For-Each循环
  For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。典型的代码为:
[code]void processAll(Collection c){
    for(Iterator i=c.iterator(); i.hasNext();){
        MyClass myObject = (MyClass)i.next();
        myObject.process();
    }
} [/code]
  使用For-Each循环,我们可以把代码改写成:
[code]void processAll(Collection<MyClass> c){
    for (MyClass  myObject :c)
        myObject.process();
} [/code]
  这段代码要比上面清晰许多,并且避免了强制类型转换。

3.自动装包/拆包(Autoboxing/unboxing)
  自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
  自动装包:基本类型自动转为包装类.(int >> Integer)
  自动拆包:包装类自动转为基本类型.(Integer >> int)
  在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了我们的问题。
[code]int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.

Integer b = new Integer(2);
c.add(b + 2); [/code]
  这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.

4.枚举(Enums)
  JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。 
[code]public enum Color
{
   Red,
   White,
   Blue
} [/code]
  然后可以这样来使用Color myColor = Color.Red.
  枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地使用它们,例如
[code]for (Color c : Color.values())
            System.out.println(c); [/code]

5.可变参数(Varargs)
  可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中的最后一个参数。假设我们要写一个简单的方法打印一些对象,
[code]util.write(obj1);
util.write(obj1,obj2);
util.write(obj1,obj2,obj3);
… [/code]  
在JDK1.5之前,我们可以用重载来实现,但是这样就需要写很多的重载函数,显得不是很有效。如果使用可变参数的话我们只需要一个函数就行了
[code]public void write(Object... objs) {
   for (Object obj: objs)
      System.out.println(obj);
} [/code]
  在引入可变参数以后,Java的反射包也更加方便使用了。对于c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0])),现在我们可以这样写了c.getMethod("test").invoke(c.newInstance()),这样的代码比原来清楚了很多。 

6.静态导入(Static Imports)
  要使用用静态成员(方法和变量)我们必须给出提供这个方法的类。使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
[code]import static java.lang.Math.*;
…….
r = sin(PI * 2); //无需再写r = Math.sin(Math.PI); [/code]
  不过,过度使用这个特性也会一定程度上降低代码地可读性。


还有就是annotation了,由于比较复杂,内容比较多,以后用到时,再把详细的总结单独列出
jdk1.5 windows版本 64位 jdk1.5 windows版本 64位 Java开发依赖环境 立即下载

相关推荐

jdk1.5下载

jdk1.5 比较稳定版本

水仙花数(3位水仙花、100-999之内的所有水仙花、三位及以上水仙花)

水仙花数问题描述3位水仙花输出100-999之内的所有水仙花三位及以上水仙花 问题描述 水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身,例如:13+53+3^3=153。 3位水仙花 代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.p

仔仔木的博客 7万+

JDK1.5版本免费下载

这个是32位的版本

熟悉猛虎脾气-JDK1.5新特性介绍

“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。  下面我们简单介绍一下这些新特性。  1.泛型(Generic)  C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类

王道JAVA 1105

用PyCharm+Scrapy打造你的第一个爬虫:从安装到实战(附完整代码)

本文详细介绍了如何使用PyCharm和Scrapy框架从零开始构建高效网络爬虫。通过环境配置、项目创建、核心爬虫逻辑编写到数据处理与存储的完整流程,帮助Python开发者快速掌握爬虫开发技巧,并附有实战代码示例。特别适合想要学习Scrapy框架和提升爬虫技能的开发者。

weixin_29038345的博客 868

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1835

JDK 1.5 新特性

JDK1.5一个重要主题就是通过新增一些特性来简化开发。

yy139926的博客 1100

Tlsr8258开发-程序烧写

开源一小步,进步一大步

自学嵌入式 1774

Java JDK1.5: 泛型 新特性的讲解说明

java5.0

weixin_52437323的博客 539

STM32CubeMX——循迹传感器TCRT5000的使用

前言 人生如逆旅,我亦是行人。 ————苏轼《临江仙·送钱穆父》 一、介绍 TCRT5000描述:(带有晶体管输出的反射光学传感器) TCRT5000是一种反射式光学传感器,它包括一个红外发射器和一个3.5mm引线封装的光电晶体管,可阻挡可见光。还具有1mA 典型被测输出电流,2.5mm峰值工作距离,可应用传感与仪表,工业等行业。 TCRT5000具有紧凑的结构,其中发射光源和探测器布置在同一方向,通过使用来自物体的反射红外光束来感知物体的存在。工作波长为950毫米,探测器由光电晶体管组成

W_Oilpicture的博客 1万+

一份针对零基础学习AI Agent详细学习计划

以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

sexy19910923的博客 1904

JDK1.5新特性

JDK1.5新特性1. 泛型1.1 好处泛型方法泛型类类型通配符2. 增强For循环2.1 传统for和高级for有什么区别呢?3. 可变参数4. 静态导入 1. 泛型 由于集合可以存储不同类型的数据,所以取元素时有可能会导致类型转换错误 JDK1.5增加了新特性泛型,为了减少操作集合时出错的几率 集合一旦声明了泛型,便只能存储同一类型的对象了 1.1 好处 将运行时期出现问题ClassCastException,转移到了编译时期。方便于程序员解决问题。让运行时问题减少,安全。 避免了强制转换麻烦。

输入技术、输出想法 612

【Unity】Pico VR 开发实战:从环境搭建到交互实现

本文是一份详细的Unity Pico VR开发实战指南,涵盖从环境搭建到核心交互实现的全流程。详细讲解了如何集成Pico Unity Integration SDK与XR Interaction Toolkit,配置开发环境,并重点解析了手柄输入处理、射线交互以及VR UI操作三大核心模块的代码实现与优化技巧,帮助开发者快速上手Pico VR应用开发。

rice5的博客 1175

JDK1.5 与 JDK1.6的新特性

 一、JDK1.5的新特性        了解Java语言的特色及相关术语        泛型:泛型、通配符、有限制通配符、泛型方法        加强循环        自动装箱/拆箱        枚举        可变参数        静态引入        元数据        控制台输入        改变返回类型        格式化I/

lixiaolong_b的专栏 1778

TongWeb微服务部署实战:Nacos注册与网关路由的疑难解析

本文分享了将Spring Cloud微服务迁移至TongWeb应用服务器时,解决Nacos服务注册失败与Spring Cloud Gateway路由失效的实战经验。针对Nacos注册问题,通过实现ApplicationRunner接口并利用JMX获取容器端口,实现了手动注册;针对网关路由问题,建议将基于WebFlux的Gateway模块改为JAR包独立部署,以保障其原生运行环境。文章为在TongWeb上进行微服务部署提供了关键的问题排查思路与混合架构部署的最佳实践。

weixin_29209801的博客 240

手把手教你学Simulink--四翼无人机滑模控制器设计与仿真

四翼无人机(Quadcopter)滑模控制(Sliding Mode Control, SMC)是一种鲁棒性很强的非线性控制方法,特别适用于存在模型不确定性和外部扰动的情况。滑模控制器通过强制系统状态进入并保持在一个预定义的滑模面上,从而实现对期望轨迹或姿态的精确跟踪。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个基于滑模控制策略的四翼无人机系统。

MHD0815的博客 184

总结:JDK1.5-JDK1.8各个新特性

JDK1.5-JDK1.8各个新特性 JDK各个版本的新特性 要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8部分特性。 JDK1.5新特性 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。 自动拆箱...

热爱生活,向往自由。 450

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JDK各个版本的新特性jdk1.5-jdk1.8

JDK各个版本的新特性   对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。 JDK1.5新特性:  1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类

wxzyzydd的博客 1279

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jdk1.5 jdk1.6 jdk1.7 jdk1.8 特性

JDK各个版本的新特性   对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。 JDK1.5新特性:   1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就

zhou280648461的博客 1667

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA的JDK1.5新特性

JDK1.5 新特性 JDK1.5一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。   下面我们简单介绍一下这些新特性。   1.泛型(Generic)   C++通过模板技术可以指定集合的元素类型,而Java...

少年阿宏 639

jdk1.5~jdk8新特性整理

JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。 JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型...

permike的专栏 332

JAVA基础加强 --学习心得二(关于JDK1.5新特性)

<br />“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。 <br />  下面我们简单介绍一下这些新特性。<br /><br />1.泛型(Generic)<br /><br />    C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时

294

JDK1.5新特性介绍

“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。    下面我们简单介绍一下这些新特性。    1.泛型(Generic)  C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任

亮—JAVA菩提树 454

-java jdk1.5新特性

在学习中经常会看到jdk1.5的新特性,所以我将1.5的新特性总结了一下,分享给大家,如果 “JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-else 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。   下面我们简单介绍一下这些新特性。   1.泛型(Generi

MFSGSS3432的专栏 996

JDK 1.5~1.8版本 新特性

JDK各个版本的新特性 以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8主要部分特性。仅供参考。 JDK1.5新特性 1:自动装箱与拆箱: 自动装箱:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。 自动拆箱:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。 自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。 自动拆箱,只需将该对象值赋给一个基本类型即可。 java——

tyroscz的博客 353
上一篇: BNF范式和EBNF范式
下一篇: 《EJB3 in action》
unique5945
博客等级 码龄20年 4粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值