- 5
- 0
- 约1.07万字
- 约 15页
- 2018-05-30 发布于河南
- 举报
java1.5新特性
jdk 1.5新特性说明
“JDK1.5”的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。
一. 首先简单介绍一下各种特性及其使用
1.泛型(Generic)C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
“JDK1.5”的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。
一. 首先简单介绍一下各种特性及其使用
1.泛型(Generic)C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
1 CollectionString c = new ArrayList();2 c.add(new Date());
编译器会给出一个错误:
add(java.lang.String) in java.util.Collectionjava.lang.String cannot be applied to (java.util.Date)
2.For-Each循环For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。典型的代码为:
1 void processAll(Collection c){2 for(Iterator i=c.iterator(); i.hasNext();){3 MyClass myObject = (MyClass)i.next();4 myOcess();5 }6 }
使用For-Each循环,我们可以把代码改写成:
1 void processAll(CollectionMyClass c){2 for (MyClass myObject :c)3 myOcess();4 }
这段代码要比上面清晰许多,并且避免了强制类型转换。
3.自动装包/拆包(Autoboxing/unboxing)自动装包/拆包大大方便了基本类型数据和它们包装类地使用。自动装包:基本类型自动转为包装类.(int Integer)自动拆包:包装类自动转为基本类型.(Integer int) 在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了我们的问题。
1 int a = 3;2 Collection c = new ArrayList();3c.add(a);//自动转换成Integer.4 Integer b = new Integer(2);5c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.4.枚举(Enums)JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。
1 public enum Color2 {3 Red,4 White,5 Blue6 }
然后可以这样来使用Color myColor = Color.Red. 枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地使用它们,例如
1 for (Color c : Color.values())2 System.out.println(c);
5.可变参数(Varargs) 可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中的最后一个参数。假设我们要写一个简单的方法打印一些对象,
util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3);…
在JDK1.5之前,我们可以用重载来实现,但是这样就需要写很多的重载函数,显得不是很有效。如果使用可变参数的话我们只需要一个函数就行了
1 public void write(Object... objs) {2 for
您可能关注的文档
- 2.11理化检验方法汇编(糖检验).doc
- 高一物理期中复习练习上传版本.doc
- 现代文阅读课堂实录1.doc
- 朔城区四年级语文第八周集体备课初稿.doc
- 提高农业综合开发在农村工作中的地位,推进农村经济持续快速健康发展.doc
- 历年考博生化题.doc
- 多媒体数据挖掘 -2.doc
- 肿瘤1复习题.ppt
- 使用苹果设备时记下的一些基础知识.doc
- 奥巴马上海讲话.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)