本季目标
1、StringBuffer类
2、Runtime 类
3、包装类与JDK 1.5的新特性——泛型
4、日期的操作类
5、Math类
6、Random类
1、StringBuffer(重点)
· String 类的时候说过:String 类的内容一旦声明则不可改变,改变的只是其地址。那么如果现在非要使用循环不断的修改String内容的时候,则就可以使用StringBuffer,也是一个字符串,但是可以修改。
· String类中的字符串连接使用的是“+”,而StringBuffer中的连接使用的是append()方法。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_02
在内容会不断修改的时候使用StringBuffer比较合适。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_03
现在再看下效果哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_04
StringBuffer是不能直接转成String 类对象,必须调用toString()方法才可以把一个StringBuffer 的对象变为String类的对象。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_05
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_06
2、Runtime表示运行时(了解)
在一个JVM中只有一个运行时,可以通过此类调用本机的一些程序。
此类中所有的构造方法对外部不可见,也就是说构造方法被私有化了,所以看不见。
单态 --> 在整个JVM中只能有一个运行时,所以其内部必然有一个方法可以取得Runtime对象。
public static Runtime getRuntime()
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_07
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_08
Exec方法返回的是一个Process对象
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_09
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_10
看下效果:记事本打开三秒后自动关闭了哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_11
3、包装类
在JAVA 中提出了一种概念:一切皆对象,如果有此概念的话,则肯定有个矛盾点:
基本数据类型是对象吗?肯定不是,那么此时如果要符合之前的理论,则必须把基本数据类型进行包装。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_12
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_13 
看下效果:这就是典型包装类的使用哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_14
实际上包装类即可以把一个基本类型包装成对象,也可以把包装类变为基本数据类型。
Integer --> int:public int intValue()可以实现
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_15
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_16
以上的操作在 JDK 1.4之前都是这样做的,必须手工进行装箱或拆箱操作,而且包装类是不能直接进行++或—操作的。
在JDK 1.5之后提供了自动的装箱和拆箱操作,用户不用像之前那样必须直接调用方法完成了。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_17
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_18
3、包装类与JDK 1.5的新特性——泛型
思考题:
现在要求实现一个坐标的操作类,有以下三种坐标:
· 整数:x = 30 ; y = 50
· 小数:x = 30.3 ; y = 50.5
· 字符串:东经,北纬
考虑点:
对于用户而言,肯定只关心x和y的设置,你不能说让用户自己去选择设置整数或小数等。
以上问题我通过方法的重载做?我们验证一下使用方法的重载哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_19
此处就可以使用JDK 1.5提供的新功能 —— 泛型,在运行的时候由外部指定具体的操作类型。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_20
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_21
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_22
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_23
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_24
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_25
4、日期的操作类
取得当前的日期
可以直接使用java.util.Date类完成。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_26
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_27
打印的时间:Tue Mar 10 21:05:44 CST 2009
这样的时间看起来很别扭,不太符合我们中国人的习惯。一般直接使用此类的话,得到的时间不是很舒服,可以直接使用另外一个类——Calendar,此类可以把时间精确到毫秒。
Calendar是一个抽象类,如果是抽象类,则此处肯定使用其子类完成。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_28
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_29
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_30
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_31
下面我们有选择滴进行删减哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_32
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_33
(2)日期的格式化类
例如,现在有以下一个时间:
2009-3-10 21:18:30:345
将以上的时间格式显示为:
2009年3月10日 21点18分30 秒345毫秒
把之前的日期格式重新格式化了一下。
如果要完成上面的功能,则就可以使用SimpleDateFormart类,此类可以使用固定的模板把时间扣出来。
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_StringBuffer_34
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_35
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_36
看下效果哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_37
5、Math类
数学操作类,但是在面试中里面有一个方法比较常见:round()方法,这个方法主要就是四舍五入哈~~~
四舍五入的操作类
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_38
来看下效果哈~
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_JAVA_39
6、Random类,取得随机数
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_零基础学JAVA_40
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_Runtime_41
看下效果:
[零基础学JAVA]Java SE应用部分-34.Java常用API类库_API_42
#######################Michael分割线#######################
#######################Michael分割线#######################