以前对jdk1.5后的一些新用法不感冒,现在发现就新式for-each来看,功能实现了,而代码更优雅:
package com.duben.spring.client;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ForTest
{
public static void main(String args[])
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
/**
* 旧式写法
*/
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
/**
* 新式写法
*/
for (int a : arr)
System.out.println(a);
String arr2[] = {"真","好","用","!!"};
for(String a2 : arr2)
System.out.println(a2);
int arr3[][] = {{1,2,3},{4,5,6,},{7,8,9}};
for(int a31[] : arr3)
{
for(int a32 : a31)
{
System.out.println(a32);
}
System.out.println();
}
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
/**
* 根据集合类长度遍历
*/
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
/**
* 根据迭代器遍历
*/
for(Iterator i = list.iterator();i.hasNext();)
{
System.out.println(i.next());
}
/**
* 根据新式for-each遍历
*/
for(String element : list)
{
System.out.println(element);
}
}
}
除此之外,还有一些新特性,简要列举出来:
以下来自CSDN博客,出处:
http://blog.csdn.net/touchSea/archive/2006/09/11/1210425.aspx
1. 自动装箱与拆箱 对应C#
例1.1
Integer i = 10;
int j = i; //隐匿地把基本类型int转换为Integer对象
2.加泛型 对应C++模板
import java.util.*;
ArrayList<String> animals = new ArrayList<String>();
animals.add("Dog");
animals.add("Cat");
animals.add("Chick");
animals.add("Cow");
for(String option : animals) {
System.out.println(option);
}
3.参数可变的方法和printf
例3.1
定义:
public int sum(int... n) { //传过来n为一个int型数组
int tempSum;
for(int option : n) {
tempSum+=option;
}
/*
for(int i = 0; i < n.length; i++) {
tempSum+=n[i];
}
*/
return tempSum;
}
调用1: sum(1);
调用2: sum(1,2);
调用3: sum(1,2,3,4);
例3.2 printf方法, 对应c语言的printf
int x = 10;
int y = 20;
int sum = x + y;
System.out.printf("%d + %d = %d",x,y,sum);
4. 枚举
例4.1
public enum MyColors {
red,
black,
blue,
green,
yellow
}
MyColors color = MyColors.red;
for(MyColors option : color.values()) {
System.out.println(option);
}
/**不能在switch语句里这样写case MyColors.red:
*这样编译器不会让你通过*/
switch(color) {
case red: System.out.println("best color is "+red); break;
case black: System.out.println("NO " + black); break;
default:
System.out.println("What");
break;
}
5.静态引用
例5.1
1.5版本以前的写法是:
import java.lang.Math; //程序开头处
...
double x = Math.random();
1.5版本中可以这样写
import static java.lang.Math.random; //程序开头处
...
double x = random();
分享到:
相关推荐
JDK1.5引入了一些重要的新特性,如: 1. **Generics(泛型)**:允许在类、接口和方法中使用类型参数,增强了类型安全性和代码重用性。 2. **Autoboxing and Unboxing(自动装箱与拆箱)**:自动将基本类型与对应的...
标题中的“jdk1.5 jdk1.6 反编译 工具”指的是用于对Java字节码进行反编译的软件,这类工具能够将Java的.class文件转换回可读的.java源代码形式,这对于理解和学习已有的Java类库或者进行逆向工程非常有帮助。...
标题"jacob1.9,jdk1.5适用"明确指出,这个RAR压缩包提供的Jacob库版本是1.9,且已针对JDK 1.5进行了优化和测试。在Java世界里,版本的兼容性至关重要,因为不同版本的JDK可能支持不同的API,或者存在与特定库的不...
标题中的“利用Retrotranslator将Jdk1.5项目迁移到1.4”是指使用Retrotranslator工具将基于Java 1.5版本的代码库转换为兼容Java 1.4的代码。这是因为某些环境或者旧系统可能只支持早期版本的Java,而新项目可能已经...
尽管这些版本相对较旧,但在升级前需要考虑以下几点: 1. **测试**:在生产环境中使用新版本之前,必须进行全面的兼容性和性能测试。 2. **文档**:查阅官方文档和社区论坛,了解已知问题和解决方案。 3. **维护**...
JDK 1.5 主要的新特性包括泛型、枚举类型、可变参数、自动装箱/拆箱以及增强的 for 循环等。 ### 2. 泛型 (Generics) 在 JDK 1.5 中,泛型是一个重要的新特性,它允许开发者在类、接口和方法的上下文中声明类型...
在进行此类重构时,需要考虑以下几点: - **识别可泛型化的类或方法**:分析现有代码,找出哪些类或方法可以受益于泛型。 - **逐步添加泛型支持**:可以从简单的方法或类开始,逐步扩展到更复杂的部分。 - **确保...
在使用JDK 1.5.0_09时,需要注意以下几点: - 验证解压后的文件完整性,确保所有必要的文件都在。 - 调整环境变量设置,确保操作系统能够找到JDK的可执行文件。 - 定期更新JDK到最新版本,以获取性能提升和安全修复...
在JDK API 1.5中,有几个显著的更新和增强,这些知识点对于Java开发者来说至关重要: 1. **泛型(Generics)**:这是JDK 1.5引入的一项重大改进,允许在类、接口和方法中使用类型参数,提高了代码的类型安全性,...
JDK1.6是Java发展史上的一个重要版本,它在JDK1.5的基础上进行了大量的改进和优化,提供了更多的特性和功能。 ### 二、JDK1.6的主要特性 1. **性能优化**:JDK1.6对垃圾回收机制进行了改进,提升了程序运行时的...
在使用这两个库时,开发者需要注意以下几点: 1. **版本兼容性**:确保库版本与使用的Java版本兼容,避免因版本不匹配导致的问题。 2. **依赖管理**:在大型项目中,合理管理依赖关系,避免冲突。如果只使用了基础...
例如,JDK 1.5引入了泛型、枚举等新特性;JDK 8增加了Lambda表达式和支持流处理的新特性。随着Java技术的不断发展,Sun Java JDK也在不断地更新和完善,为开发者提供了更加高效、强大的开发工具。 #### 七、社区...
安装JDK 1.5.0_22的步骤通常包括以下几点: 1. 解压缩下载的zip文件。 2. 对于自解压脚本,使用`sudo ./jdk-1_5_0_22-linux-amd64.bin`执行安装,然后按照提示进行。 3. 对于RPM包,使用`sudo rpm -ivh jdk-1_5_0_...
JavaAgent 和 Instrumentation 是 JDK 1.6 中的新特性,提供了强大的功能,可以实现虚拟机级别的 AOP 功能。通过使用 JavaAgent 和 Instrumentation,我们可以实现各种功能,例如:监测程序的运行、修改类的定义、...
- **版本兼容性**:虽然这个版本是针对JDK1.5的,但随着Java版本的更新,可能需要升级到更高版本的Json-lib以获取更好的兼容性和新特性。 总的来说,"Json-lib-2.4.jdk15.jar" 是一个实用的JSON处理工具,为Java...
在进行这些操作时,需要注意以下几点: - 使用版本管理工具(如Maven或Gradle)可以帮助你更方便地管理依赖关系和版本。 - 在升级JDK时,确保所有第三方库和框架都支持新版本。有时,一些老的库可能不再更新,不...
文档进一步展示了JDK 1.5中引入的新特性——增强的for循环(也称为“foreach”循环),用于遍历`Map`: ```java Map m = new HashMap(); for (Object o : m.keySet()) { m.get(o); } ``` 这种方法通过`keySet()`...
在使用这些库时,开发者需要注意以下几点: 1. 导入依赖:在Java项目中,你需要将对应的JAR文件添加到项目的类路径中,或者如果你使用的是Maven或Gradle,可以添加对应的依赖配置。 2. 安全性:尽管Bouncy Castle...
在使用`json-lib`时,需要注意以下几点: 1. **依赖管理**:如果你使用的是Maven,可以在pom.xml文件中添加对应的依赖项,以便在构建项目时自动下载和管理`json-lib`库。 2. **性能考虑**:虽然`json-lib`是一个...
以上总结了IT面试中常见的知识点,涵盖了进程与线程状态、输入输出流、集合框架、Java内存模型、多态、JDK 1.5新特性、设计模式、Java中的锁机制、JVM基础知识以及异常处理等多个方面。通过掌握这些核心概念和技术,...