fkjava

BlogJava 首页 新随笔 联系 聚合 管理
  49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

Java运行环境交互

SunJava提供了丰富的基础类库,Java SE提供了三千多个基础类(包括第7章介绍的集合框架),通过这些基础类库可以提高开发效率,降低开发难度。对于合格的Java程序员而言,至少要熟悉Java SE70%以上的类(当然,笔者并不是让读者去背诵Java API文档),但在反复查阅API文档的过程中,大脑会自动记住大部分类的功能、方法,因此程序员一定要多练,多敲代码。

    Java提供了StringStringBufferStringBuilder来处理字符串,它们之间存在少许差别,本章会详细介绍它们之间的差别,以及如何选择合适的字符串类。Java还提供了DateCalendar来处理日期、时间,其中Date是一个已经过时的API,通常推荐使用Calendar来处理日期、时间。

    正则表达式是一个强大的文本处理工具,通过正则表达式可以对文本内容查找、替换、分割等操作。从JDK1.4以后,Java也增加了对正则表达式的支持,包括新增的PatternMatcher两个类,并改写了String类,让String类增加了正则表达式支持,增加了正则表达式功能后的String类更加强大。

    Java还提供了非常简单的国际化支持,Java使用Locale对象封装一个国家、语言环境,再使用ResourceBundle根据Locale加载语言资源包,当ResourceBundle加载了指定Locale对应的语言资源文件后,ResourceBundle对象就可调用getString方法来取出指定key所对应的消息字符串。

与用户互动

    如果一个程序总是按既定的流程运行,无须处理用户动作,这个程序总是比较简单的。实际上,绝大部分程序都需要处理用户动作,包括接受用户的键盘输入、鼠标动作等。因为现在还未涉及图形用户接口(GUI)编程,故本节主要介绍程序如何获得用户的键盘输入。

运行Java程序的参数

回忆Java程序的入口:main方法的方法签名:

//Java程序入口:main方法

public static void main(String[] args){….}

    现在可以详细讲解main方法为什么采用这个方法签名:

    1public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main方法,所以使用public修饰符把这个方法暴露出来。

    2static修饰符:JVM调用这个主方法时,不可能先创建该主类的对象,然后通过对象来调用该主方法。JVM直接通过主类来调用主方法,因此使用static修饰该主方法。

    3void返回值:因为主方法被JVM调用,该方法的返回值将返回给 JVM,这没有任何意义,因此main方法没有返回值。

    上面方法中还包括一个字符串数组形参,根据前面介绍方法调用的规则:谁调用方法,谁负责为形参赋值。也就是说,main方法由JVM调用,即args形参应该由JVM负责赋值。但JVM怎么知道如何为args数组赋值呢?我们先看下面程序:

程序清单:codes/09/9- 1/TestArgs.java

public class TestArgs

{

public static void main(String[] args)

{

//输出args数组的长度

System.out.println(args.length);

//遍历args数组的每个元素

for(String arg:args)

{

System.out.pringln(arg);

}}}   

上面程序几乎是最简单的“HelloWorld”程序,只是这个程序增加了输出args数组的长度,遍历args数组元素的代码。使用java TestArgs命令运行上面程序,看到程序仅仅输出一个0,这表明args数组是一个长度为0的空数组—这是合理的:因为计算机是没有思考能力的,它只能忠实地执行用户交给它的任务,既然我们没有给args数组设定参数值,那么JVM就不知道args数组的元素,所以JVM以将args数组设置成一个长度为。的数组。

改为如下命令来运行上面程序:

java TestArgs Java Spring

看到如图9.1所示的运行结果:


9.1main方法的形参数组赋值

从图9.1中可以看出,如果运行Java程序时在类名后紧跟一个或多个字符串(多个字符串之间以空格隔开)JVM就会把这些字符串依次赋给args数组元素。运行Java程序时的参数与args数组之间的对应关系如图9.2所示:


9.2运行Java程序时参数和args数组的关系

如果某参数本身包含了空格,则应该将该参数用双引号(“)括起来,否则JVM会把这个空格当成参数分隔符,而不是当成参数本身。例如采用如下命令来运行上面程序:

 java TestArgs “Java Spring”

运行上面命令,看到args数组的长度是1,只有一个数组元素,其值是Java Spring

摘自《疯狂java讲义》

posted on 2012-05-08 15:55 疯狂软件 阅读(231) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: