一、StringBuffer类
和String一样可以存储和操作字符串,存储的字符串值是可变的,可以看成一个字符串缓冲
注:如果要频繁操作字符串,将字符串转换成StringBuffer类型进行操作
原因:在StringBuffer中用于存储字符串的char[] 没有使用final修饰,说明初始化过后,值是可变的,当我们改变字符串的值时,不会开辟新的空间,直接在原有的空间上改变字符串的值,使用节省空间消耗
1、常用的方法
append(String str):将字符串拼接到尾部
replace(int Start,int end,String str):指定下标[start,end)范围进行字符串替换
setCharAt(int index,char c):替换指定下标的字符
toString():将StringBuffer类型转换成String类型
reverse():翻转
2、StringBuffer的比较
不能使用equals去比较StringBuffer类型的字符串内容
因为StringBuffer中没有重写equals方法,调用的是Object中的方法,使用的是"=="进行比较
比较时:转换成String类型进行equals进行比较
如:str.toString().equals(str2.toString())
3、StringBuilder类
StringBuilder和StringBuffer的用法基本一致
StringBuilder和StringBuffer的区别:
StringBuilder线程是不安全的,StringBuffer线程是安全的
二、Date类
Java里面用来获取并操作时间的类
方法:
long getTime():表示的是从1970年01月01日0点0分0秒0毫秒到现在为止的毫秒数
SimpleDateFormat格式化Date
可以用Date对象格式化后得到格式规定的字符串数据表示
用于传递时间格式:yyyy年MM月dd日 HH:mm:ss
年:yyyy
月:MM
日:dd
时:HH
分:mm
秒:ss
format(Date date):调用format方法将日期对象按照指定日期格式转换成日期字符串
parse(String s):将指定的日期字符串转换成Date类型对象。
注:字符串所表示的日期,格式必须和构造函数传递的格式一致
三、Calendar类
Calendar也是用于操作时间,大部分情况下使用Calendar替换Date
1、创建对象
Calendar c = Calandar.getInstance();
2、方法
得到年
int year = c.get(Calendar.YEAR);
得到月,从0开始算起
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);//表示一个月中的某天
int day = c.get(Calendar.DAY_OF_MONTH);//表示一个月中的某天
int day = c.get(Calendar.DAY_OF_WEEK);//表示一个星期中的第几天
int day = c.get(Calendar.DAY_OF_WEEK_IN_MONTH);//表示一个月中的第几周
int day = c.get(Calendar.DAY_OF_YEAR);//表示一年中的第几天
int hour = c.get(Calendar.HOUR);//以12小时计算
int hour2 = c.get(Calendar.HOUR_OF_DAY);//以24小时计算
修改calendar封装的时间
calendar.add(Calendar.HOUR_OF_DAY,3);//3小时以后
calendar.add(Calendar.MINUTE,15);//15分钟以后
calendar.add(Calendar.MINUTE,-30);//30分钟以前
......
calendar.setTime(new Date());//使用Date对象重置时间