天天看点

[零基础学JAVA]Java SE应用部分-34.Java常用API类库

本季目标

1、StringBuffer类 

2、Runtime 类 

3、包装类与JDK 1.5的新特性——泛型 

4、日期的操作类 

5、Math类 

6、Random类

1、StringBuffer(重点) 

· String 类的时候说过:String 类的内容一旦声明则不可改变,改变的只是其地址。那么如果现在非要使用循环不断的修改String内容的时候,则就可以使用StringBuffer,也是一个字符串,但是可以修改。 

· String类中的字符串连接使用的是“+”,而StringBuffer中的连接使用的是append()方法。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774758dvMU.png"></a>

看下效果:

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774759erIk.png"></a>

在内容会不断修改的时候使用StringBuffer比较合适。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774761uiBn.png"></a>

现在再看下效果哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774764XdfK.png"></a>

StringBuffer是不能直接转成String 类对象,必须调用toString()方法才可以把一个StringBuffer 的对象变为String类的对象。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774766XX8P.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_12367747692x5w.png"></a>

2、Runtime表示运行时(了解) 

在一个JVM中只有一个运行时,可以通过此类调用本机的一些程序。 

此类中所有的构造方法对外部不可见,也就是说构造方法被私有化了,所以看不见。 

单态 --&gt; 在整个JVM中只能有一个运行时,所以其内部必然有一个方法可以取得Runtime对象。 

public static Runtime getRuntime()

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774770rq9h.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_12367747791iCU.png"></a>

Exec方法返回的是一个Process对象

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_123677478663F7.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774789IGVx.png"></a>

看下效果:记事本打开三秒后自动关闭了哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774791nvbY.png"></a>

3、包装类 

在JAVA 中提出了一种概念:一切皆对象,如果有此概念的话,则肯定有个矛盾点: 

基本数据类型是对象吗?肯定不是,那么此时如果要符合之前的理论,则必须把基本数据类型进行包装。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774792MSwV.png"></a>

看下效果:这就是典型包装类的使用哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774796nNtj.png"></a>

实际上包装类即可以把一个基本类型包装成对象,也可以把包装类变为基本数据类型。 

Integer --&gt; int:public int intValue()可以实现

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774800oxPA.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774802UY7c.png"></a>

以上的操作在 JDK 1.4之前都是这样做的,必须手工进行装箱或拆箱操作,而且包装类是不能直接进行++或—操作的。

在JDK 1.5之后提供了自动的装箱和拆箱操作,用户不用像之前那样必须直接调用方法完成了。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774803FtIr.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774806TmoC.png"></a>

3、包装类与JDK 1.5的新特性——泛型

思考题: 

现在要求实现一个坐标的操作类,有以下三种坐标: 

· 整数:x = 30 ; y = 50 

· 小数:x = 30.3 ; y = 50.5 

· 字符串:东经,北纬 

考虑点: 

对于用户而言,肯定只关心x和y的设置,你不能说让用户自己去选择设置整数或小数等。 

以上问题我通过方法的重载做?我们验证一下使用方法的重载哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774809vNhG.png"></a>

此处就可以使用JDK 1.5提供的新功能 —— 泛型,在运行的时候由外部指定具体的操作类型。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774813gKN9.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774816aqim.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774819Xjlx.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774824u1m7.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774828n6DK.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774831nOd2.png"></a>

4、日期的操作类

取得当前的日期

可以直接使用java.util.Date类完成。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774832dRKs.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774833IHav.png"></a>

打印的时间:Tue Mar 10 21:05:44 CST 2009 

这样的时间看起来很别扭,不太符合我们中国人的习惯。一般直接使用此类的话,得到的时间不是很舒服,可以直接使用另外一个类——Calendar,此类可以把时间精确到毫秒。 

Calendar是一个抽象类,如果是抽象类,则此处肯定使用其子类完成。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774844onPz.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774864j8jM.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774882iFqO.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774896ciol.png"></a>

下面我们有选择滴进行删减哈~ 

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_12367749089ax3.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774918J37I.png"></a>

(2)日期的格式化类

例如,现在有以下一个时间: 

2009-3-10 21:18:30:345 

将以上的时间格式显示为: 

2009年3月10日 21点18分30 秒345毫秒 

把之前的日期格式重新格式化了一下。 

如果要完成上面的功能,则就可以使用SimpleDateFormart类,此类可以使用固定的模板把时间扣出来。

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774933c3hU.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774959pcp8.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774978XWTc.png"></a>

看下效果哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774981HuZB.png"></a>

5、Math类

数学操作类,但是在面试中里面有一个方法比较常见:round()方法,这个方法主要就是四舍五入哈~~~

四舍五入的操作类

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774987wlfS.png"></a>

来看下效果哈~

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236774996T8AK.png"></a>

6、Random类,取得随机数

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236775008dt7n.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236775014HaPr.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/11/27212_1236775029fY2c.png"></a>

#######################Michael分割线#######################

本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/137834,如需转载请自行联系原作者