第五章:StringBuffer/Build和日期
本期知识点:
- StringBuffer操作字符串
- Date类和Calendar类操作日期时间
- SimpleDateFormat类格式化日期时间
一,StringBuffer类和StringBuild类
对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率。
StringBuffer声明
- StringBuffer sb = new StringBuffer();
- StringBuffer sb = new StringBuffer(“aaa”);
可以看到StringBuffer的声明和String一致,不同点做字符串修改时,底层的执行不一样,我们只需要知道StringBuffer在执行字符串频繁修改时,他是节省java空间的。
StringBuffer的使用
StringBuffer是有额外的几个关于字符串修改的方法的。
sb.toString(); //转化为String类型
sb.append("xx"); //在字符串末尾追加字符串
sb.insert (index, "xx"); //在下标为index的位置插入字符串
注意:
- StringBuffer和StringBuild的使用是一致的。
- StringBuffer是线程安全的,我们在多线程的情况下要使用StringBuffer。
- String是不可变对象,经常改变内容的字符串最好不要使用String。
- StringBuffer是可变的字符串,字符串经常改变的情况可使用StringBuffer,更高效。
- JDK5.0后提供了StringBuilder,等价StringBuffer。
二,日期类及其相关类
Date类
Date类在java.util包下,表示日期和时间,内部提供了操作日期和时间各组成部分的方法。
//创建日期对象
Date date = new Date();
System.out.println(date);//输出时间为英文格式,对国人有点不友好,一般要格式化
SimpleDateFormat类
SimpleDateFormat类在java.text包下,用于格式化时间格式。
//创建日期对象
Date date = new Date();
//定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");//定义格式
String now = formater.format(date);
System.out.println(now);//输出已经格式化的日期。
Calendar类
Calendar类是一个抽象类位于java.util包下,用于设置和获取日期/时间数据的特定部分。
Calendar类内部使用的单例模式,所以我们不能实例化,只能通过方法去获得实例对象。
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年-MM月-dd日");
System.out.println(simpleDateFormat.format(date));
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date d = sdf.parse("2015-04-06");
c.setTime(d);
System.out.println("2015年4月6日是一年中的第"+c.get(Calendar.WEEK_OF_YEAR)+"个星期");
} catch (ParseException e) {
e.printStackTrace();
}
我们得到实例对象之后,我们使用setTime()
方法,传入一个Date对象,就可以通过get()
方法,传入想得到的内部定义好的常量,就好了。