本季目标
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中只有一个运行时,可以通过此类调用本机的一些程序。
此类中所有的构造方法对外部不可见,也就是说构造方法被私有化了,所以看不见。
单态 --> 在整个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 --> 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,如需转载请自行联系原作者