IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> Java/JSP

“老虎”来了 J2SE1.5新功能一览

【 作者:李娟编译    来源:天极网  更新时间:2004-9-22 | 字体:

  增强的 for循环

  Collections API经常使用Iterator类。 Iterator类提供在 Collection 中遍历导航的机制。当在集合和数组中遍历时,新的增强的 for 循环可取代 iterator。编译器生成必要的循环代码,因为利用范型,所以不需要额外的类型转换。

  以前

ArrayList<Integer> list = new ArrayList<Integer>();
for (Iterator i = list.iterator(); i.hasNext();)
{
 Integer value=(Integer)i.next();
}


  现在

ArrayList<Integer> list = new ArrayList<Integer>();
for (Integer i : list)
{
  ...
}


  枚举类型

  当使用 static final 型常量时,该类型提供枚举的类型。如果你以前在你自己的应用程序中使用过enum标识符,那么在利用J2SE1.5进行编译时需要修改源代码。

public enum StopLight
{
 red, amber, green
};


  静态导入

  静态导入特性实现了"import static",允许您从一个类引用静态常量,而不需要继承它。例如,我们添加一个组件的时候不需要每次都使用BorderLayout.CENTER,而是只引用CENTER就可以了。

import static java.awt.BorderLayout.*;
getContentPane().add(new JPanel(), CENTER);


  格式化输出

  开发者现在可以选择使用printf类型的函数来生成格式化输出。这样有助于将C语言应用程序中移植到Java上,这样文本布局可以基本没有什么变化。

  大部分公用的C语言的printf的格式标识符都可以用,此外一些Java类像Date和BigInteger也有了格式化规则。

System.out.printf("name count%n");
System.out.printf("%s %5d%n", user,total);


  格式化输入

  scanner应用编程接口提供了用于从系统控制台或者任何数据流读出数据的基本输入功能。下面的示例从标准输入读取一个字符串。

  如果没有数据可用的话,像next和nextInt这样的方法将阻塞。如果你需要处理更加复杂的输入,那么还有模式匹配算法,可以从java.util.Formatter类中获得。

Scanner s= new Scanner(System.in);
String param= s.next();
int value=s.nextInt();
s.close();


  可变参数

  可变参数功能允许多个参数作为传入方法的参数。它只需要简单的"..."表示法,该符号用于接收参数列表的方法,并且它还被用于实现 printf 所需参数的灵活数量。

void argtest(Object ... args)
{
 for (int i=0;i <args.length; i++) { }
}
argtest("test", "data");


  并行性实用程序

  并行实用程序库由Doug Lea定义在 JSR-166 中,是一个J2SE 1.5平台中公用的并发程序包的特殊版本。它提供了强大的,高级的线程构成器,包括executors(这是一个线程任务框架)、线程安全队列、Timers、锁(包括原子锁)和其他同步原语。

  著名的旗语(semaphore)是这样一个锁。semaphore和现在使用的wait的使用方式相同,用于限制对代码块的访问。Semaphore更加灵活,可以允许许多并发的线程访问,还允许在获得一个锁定之前测试它。下面的示例只使用了一个semaphore,也称二元semaphore。

final private Semaphore s= new Semaphore(1, true);
s.acquireUninterruptibly();
//for non-blocking version use
s.acquire()try
{
 balance=balance+10; //protecte
 d value} finally
 {
  s.release();
  //return semaphore token
 }
}


  rmic - - RMI编译程序

  你不必再使用rmic——rmi编译程序工具——来生成远程接口程序了。动态代理的引入意味着由程序正常提供的信息可以在运行期间显示。

文章共5页,当前在第3页 9 7 [1] [2] [3] [4] [5] 8 :
相 关 文 章
没有相关文章
相 关 软 件
没有相关下载
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.